public Batch() { NavigateOnShowCatalog = true; DisplayName = "АвтоЗаказ"; AddressSelector = new AddressSelector(this); Filter = new[] { "Все", "Заказано", " Минимальные", " Не минимальные", " Присутствующие в замороженных заказах", " Ограничен лимитом", "Не заказано", " Нет предложений", " Нулевое количество", " Прочее", " Не сопоставлено", " Лимит исчерпан" }; CurrentFilter = new NotifyValue <string>("Все"); SearchBehavior = new SearchBehavior(this); Lines = new NotifyValue <ObservableCollection <BatchLineView> >(new ObservableCollection <BatchLineView>()); ReportLines = new NotifyValue <ObservableCollection <BatchLineView> >(() => { var query = Lines.Value.Where(l => l.Product.CultureContains(SearchBehavior.ActiveSearchTerm.Value) && (l.OrderLine != null || !l.BatchLine.Status.HasFlag(ItemToOrderStatus.Ordered))); if (CurrentFilter.Value == Filter[1]) { query = query.Where(l => !l.IsNotOrdered); } else if (CurrentFilter.Value == Filter[2]) { query = query.Where(l => !l.IsNotOrdered && l.IsMinCost); } else if (CurrentFilter.Value == Filter[3]) { query = query.Where(l => !l.IsNotOrdered && !l.IsMinCost); } else if (CurrentFilter.Value == Filter[4]) { query = query.Where(l => !l.IsNotOrdered && l.ExistsInFreezed); } else if (CurrentFilter.Value == Filter[5]) { query = query.Where(l => l.IsSplitByLimit); } else if (CurrentFilter.Value == Filter[6]) { query = query.Where(l => l.IsNotOrdered); } else if (CurrentFilter.Value == Filter[7]) { query = query.Where(l => l.IsNotOrdered && !l.BatchLine.Status.HasFlag(ItemToOrderStatus.OffersExists)); } else if (CurrentFilter.Value == Filter[8]) { query = query.Where(l => l.IsNotOrdered && l.BatchLine.Quantity == 0); } else if (CurrentFilter.Value == Filter[9]) { query = query.Where(l => l.IsNotOrdered && l.BatchLine.Quantity > 0 && l.BatchLine.ProductId != null && l.BatchLine.Status.HasFlag(ItemToOrderStatus.OffersExists)); } else if (CurrentFilter.Value == Filter[10]) { query = query.Where(l => l.IsNotOrdered && l.BatchLine.ProductId == null); } else if (CurrentFilter.Value == Filter[11]) { query = query.Where(l => l.IsLimited); } return(query.OrderBy(l => l.Product).ToObservableCollection()); }, CurrentFilter, SearchBehavior.ActiveSearchTerm); CurrentReportLine = new NotifyValue <BatchLineView>(); CanDelete = CurrentReportLine.Select(l => l != null).ToValue(); SelectedReportLines = new List <BatchLineView>(); CanClear = Lines.CollectionChanged() .Select(e => e.Sender as ObservableCollection <BatchLineView>) .Select(v => v != null && v.Count > 0).ToValue(); CanReload = Lines.CollectionChanged() .Select(e => e.Sender as ObservableCollection <BatchLineView>) .Select(v => CanUpload && v != null && v.Count > 0).ToValue(); WatchForUpdate(CurrentReportLine.Select(l => l?.BatchLine)); ActivePrint = new NotifyValue <string>(); ActivePrint.Subscribe(ExcelExporter.ActiveProperty); CurrentFilter.Subscribe(_ => SearchBehavior.ActiveSearchTerm.Value = ""); ReportEditor = new ReportEditor(this); PrintMenuItems = new ObservableCollection <MenuItem>(); IsView = true; }