Files
BeWoPlaner/BeWo/View/Detail/MandatorView.xaml.cs
2020-09-15 13:14:43 +02:00

77 lines
2.5 KiB
C#

using System.Collections.Generic;
using System.Windows;
using BeWo.ServiceProxy;
using BeWo.ViewModel;
using BS.Shared.DataContracts;
using BS.Shared.Extensions;
namespace BeWo.View.Detail
{
public partial class MandatorView : BeWoView
{
private MandatorVM _Viewmodel;
public MandatorView(MandatorVM viewModel)
{
InitializeComponent();
ViewModel = viewModel;
}
public override bool IsDirty
{
get { return ViewModel != null && ViewModel.IsDirty; }
}
private MandatorVM ViewModel
{
get
{
return this._Viewmodel;
}
set
{
this.DataContext = value;
this._Viewmodel = value;
if (ViewModel.InvoiceNumberList.Count > 1)
{
lblSchema.Visibility = Visibility.Collapsed;
txtSchema.Visibility = Visibility.Collapsed;
lblNumber.Visibility = Visibility.Collapsed;
spinedit_number.Visibility = Visibility.Collapsed;
}
else
{
GridControlInvoiceNumbers.Visibility = Visibility.Collapsed;
}
}
}
protected override void Save()
{
var invoiceNumberList = new List<InvoiceNumberDC>();
foreach (var ivm in this.ViewModel.InvoiceNumberList)
{
invoiceNumberList.Add(ivm.CommitToDataContract());
}
ServiceFacade.DoAccountingServiceAsync(
s => s.UpdateInvoiceNumberList(invoiceNumberList),
inl => ServiceFacade.DoOperationsServiceAsync(
s => s.UpdateMandator(this.ViewModel.CommitToDataContract()),
m => this.Dispatch(
delegate
{
var vmList = new List<InvoiceNumberVM>();
foreach (var indc in inl)
{
vmList.Add(new InvoiceNumberVM(indc));
}
this.ViewModel = new MandatorVM(vmList, m);
BeWoApp.Mandator = m;
})));
}
}
}