public SelectAircraftsVm(SelectAircrafts selectAircraftsWindow, IPartService service) : base(service) { SelectAircraftsWindow = selectAircraftsWindow; CommitCommand = new DelegateCommand<object>(OnCommitExecute, CanCommitExecute); CancelCommand = new DelegateCommand<object>(OnCancelExecute, CanCancelExecute); #region 飞机 AircraftQueries = new QueryableDataServiceCollectionView<ContractAircraftDTO>(service.Context, service.Context.ContractAircrafts); AircraftQueries.FilterDescriptors.Add(_descriptor); AircraftQueries.LoadedData += (e, o) => { AircraftList = new ObservableCollection<ContractAircraftDTO>(); AircraftQueries.ToList().ForEach(AircraftList.Add); SelectAircraftList = new ObservableCollection<ContractAircraftDTO>(); if (_scn != null) { _scn.ApplicableAircrafts.ToList().ForEach(p => SelectAircraftList.Add(AircraftList.FirstOrDefault(t => t.Id == p.ContractAircraftId))); } else { Aircrafts.ForEach(p => SelectAircraftList.Add(AircraftList.FirstOrDefault(t => t.Id == p.Id))); } }; #endregion }
public SelectInvoicesVm(SelectInvoices selectInvoicesWindow, IPaymentService service) : base(service) { SelectInvoicesWindow = selectInvoicesWindow; CommitCommand = new DelegateCommand<object>(OnCommitExecute, CanCommitExecute); CancelCommand = new DelegateCommand<object>(OnCancelExecute, CanCancelExecute); Suppliers = new QueryableDataServiceCollectionView<SupplierDTO>(service.Context, service.Context.Suppliers); Currencies = new QueryableDataServiceCollectionView<CurrencyDTO>(service.Context, service.Context.Currencies); _supplierFilter = new FilterDescriptor("SupplierId", FilterOperator.IsEqualTo, 0); #region 发票 Invoices = new QueryableDataServiceCollectionView<BaseInvoiceDTO>(service.Context, service.Context.Invoices); Invoices.FilterDescriptors.Add(_supplierFilter); Invoices.LoadedData += (e, o) => { InvoiceList = new ObservableCollection<BaseInvoiceDTO>(); Invoices.ToList().ForEach(InvoiceList.Add); SelectInvoices = new ObservableCollection<BaseInvoiceDTO>(); if (!InvoiceList.Any()) return; _paymentNotice.PaymentNoticeLines.ToList().ForEach(p => { if (InvoiceList.Any(t => t.InvoiceId == p.InvoiceId)) SelectInvoices.Add(InvoiceList.FirstOrDefault(t => t.InvoiceId == p.InvoiceId)); }); }; #endregion }