public TicketViewModel(Ticket model, TicketTemplate ticketTemplate, bool forcePayment, ITicketService ticketService, IAutomationService automationService, IApplicationState applicationState) { _ticketService = ticketService; _forcePayment = forcePayment; _model = model; _ticketTemplate = ticketTemplate; _automationService = automationService; _applicationState = applicationState; _orders = new ObservableCollection<OrderViewModel>(model.Orders.Select(x => new OrderViewModel(x, ticketTemplate, _automationService)).OrderBy(x => x.Model.CreatedDateTime)); _itemsViewSource = new CollectionViewSource { Source = _orders }; _itemsViewSource.GroupDescriptions.Add(new PropertyGroupDescription("GroupObject")); SelectAllItemsCommand = new CaptionCommand<string>("", OnSelectAllItemsExecute); PrintJobButtons = _applicationState.CurrentTerminal.PrintJobs .Where(x => (!string.IsNullOrEmpty(x.ButtonHeader)) && (x.PrinterMaps.Count(y => y.DepartmentId == 0 || y.DepartmentId == model.DepartmentId) > 0)) .OrderBy(x => x.Order) .Select(x => new PrintJobButton(x, Model)); if (PrintJobButtons.Count(x => x.Model.UseForPaidTickets) > 0) { PrintJobButtons = IsPaid ? PrintJobButtons.Where(x => x.Model.UseForPaidTickets) : PrintJobButtons.Where(x => !x.Model.UseForPaidTickets); } }
public OrderViewModel(Order model, TicketTemplate ticketTemplate, IAutomationService ruleService) { _model = model; _ticketTemplate = ticketTemplate; _automationService = ruleService; ResetSelectedQuantity(); ItemSelectedCommand = new DelegateCommand<OrderViewModel>(OnItemSelected); UpdateItemColor(); }