private ObservableCollection<ScreenCategoryButton> CreateCategoryButtons(ScreenMenu screenMenu) { if (screenMenu != null) { if (MenuItems != null) MenuItems.Clear(); _currentScreenMenu = screenMenu; var result = new ObservableCollection<ScreenCategoryButton>(); foreach (var category in screenMenu.Categories.OrderBy(x => x.SortOrder).Where(x => !x.MostUsedItemsCategory)) { var sButton = new ScreenCategoryButton(category, CategoryCommand); result.Add(sButton); } if (result.Count > 0) { var c = result.First(); if (_selectedCategory != null) c = result.SingleOrDefault(x => x.Category.Name.ToLower() == _selectedCategory.Name.ToLower()); if (c == null && result.Count > 0) c = result.ElementAt(0); if (c != null) OnCategoryCommandExecute(c.Category); } return result; } Reset(); return Categories; }
private ObservableCollection<ScreenMenuItemButton> CreateMostUsedMenuItems(ScreenMenu screenMenu) { if (screenMenu != null) { MostUsedItemsCategory = screenMenu.Categories.FirstOrDefault(x => x.MostUsedItemsCategory); if (MostUsedItemsCategory != null) { return new ObservableCollection<ScreenMenuItemButton>( MostUsedItemsCategory.ScreenMenuItems.OrderBy(x => x.SortOrder).Select(x => new ScreenMenuItemButton(x, MenuItemCommand, MostUsedItemsCategory))); } } return null; }
public void UpdateCurrentScreenMenu(int screenMenuId) { if (screenMenuId == 0) return; if (_currentScreenMenu != null && _currentScreenMenu.Id == screenMenuId) return; _currentScreenMenu = _cacheService.GetScreenMenu(screenMenuId); Categories = CreateCategoryButtons(_currentScreenMenu); MostUsedItemsCategory = null; MostUsedMenuItems = CreateMostUsedMenuItems(_currentScreenMenu); if (Categories != null && Categories.Count == 1) { OnCategoryCommandExecute(Categories[0].Category); Categories.Clear(); } RaisePropertyChanged(() => Categories); RaisePropertyChanged(() => CategoriesVerticalAlignment); RaisePropertyChanged(() => MostUsedMenuItems); RaisePropertyChanged(() => MostUsedItemsCategory); }
public void Reset() { if (MenuItems != null) MenuItems.Clear(); if (Categories != null) Categories.Clear(); _currentScreenMenu = null; }
private void OnDepartmentChanged(EventParameters<Department> department) { if (department.Topic == EventTopicNames.SelectedDepartmentChanged) { _currentScreenMenu = department.Value != null ? _cacheService.GetScreenMenu(department.Value.ScreenMenuId) : null; Categories = CreateCategoryButtons(_currentScreenMenu); MostUsedItemsCategory = null; MostUsedMenuItems = CreateMostUsedMenuItems(_currentScreenMenu); if (Categories != null && Categories.Count == 1) { OnCategoryCommandExecute(Categories[0].Category); Categories.Clear(); } RaisePropertyChanged(() => Categories); RaisePropertyChanged(() => CategoriesVerticalAlignment); RaisePropertyChanged(() => MostUsedMenuItems); RaisePropertyChanged(() => MostUsedItemsCategory); } }
public void CreateData() { CreateDefaultCurrenciesIfNeeded(); if (!ShouldCreateData()) return; var screen = new ScreenMenu(); _workspace.Add(screen); var ticketNumerator = new Numerator { Name = Resources.TicketNumerator }; _workspace.Add(ticketNumerator); var orderNumerator = new Numerator { Name = Resources.OrderNumerator }; _workspace.Add(orderNumerator); _workspace.CommitChanges(); var department = new Department { Name = Resources.Restaurant, ScreenMenuId = screen.Id, TicketNumerator = ticketNumerator, OrderNumerator = orderNumerator, IsAlaCarte = true }; _workspace.Add(department); var role = new UserRole("Admin") { IsAdmin = true, DepartmentId = 1 }; _workspace.Add(role); var u = new User("Administrator", "1234") { UserRole = role }; _workspace.Add(u); var ticketTemplate = new PrinterTemplate(); ticketTemplate.Name = Resources.TicketTemplate; ticketTemplate.HeaderTemplate = Resources.TicketTemplateHeaderValue; ticketTemplate.LineTemplate = Resources.TicketTempleteLineTemplateValue; ticketTemplate.GiftLineTemplate = Resources.TicketTemplateGiftedLineTemplateValue; ticketTemplate.FooterTemplate = Resources.TicketTemplateFooterValue; var kitchenTemplate = new PrinterTemplate(); kitchenTemplate.Name = Resources.KitchenOrderTemplate; kitchenTemplate.HeaderTemplate = Resources.KitchenTemplateHeaderValue; kitchenTemplate.LineTemplate = Resources.KitchenTemplateLineTemplateValue; kitchenTemplate.GiftLineTemplate = Resources.KitchenTemplateLineTemplateValue; kitchenTemplate.VoidedLineTemplate = Resources.KitchenTemplateVoidedLineTemplateValue; kitchenTemplate.FooterTemplate = "<F>-"; var invoiceTemplate = new PrinterTemplate(); invoiceTemplate.Name = Resources.InvoicePrinterTemplate; invoiceTemplate.HeaderTemplate = Resources.InvoiceTemplateHeaderValue; invoiceTemplate.LineTemplate = Resources.InvoiceTemplateLineTemplateValue; invoiceTemplate.VoidedLineTemplate = ""; invoiceTemplate.FooterTemplate = "<F>-"; _workspace.Add(ticketTemplate); _workspace.Add(kitchenTemplate); _workspace.Add(invoiceTemplate); var printer1 = new Printer { Name = Resources.TicketPrinter }; var printer2 = new Printer { Name = Resources.KitchenPrinter }; var printer3 = new Printer { Name = Resources.InvoicePrinter }; _workspace.Add(printer1); _workspace.Add(printer2); _workspace.Add(printer3); var t = new Terminal { IsDefault = true, Name = Resources.Server, SlipReportPrinter = printer1, }; var pm1 = new PrinterMap { Printer = printer1, PrinterTemplate = ticketTemplate }; _workspace.Add(pm1); var pj1 = new PrintJob { Name = Resources.PrintBill, ButtonText = Resources.PrintBill, LocksTicket = true, Order = 0, UseFromPaymentScreen = true, UseFromTerminal = true, UseFromPos = true, WhatToPrint = (int)WhatToPrintTypes.Everything, WhenToPrint = (int)WhenToPrintTypes.Manual }; pj1.PrinterMaps.Add(pm1); _workspace.Add(pj1); var pm2 = new PrinterMap { Printer = printer2, PrinterTemplate = kitchenTemplate }; var pj2 = new PrintJob { Name = Resources.PrintOrdersToKitchenPrinter, ButtonText = "", Order = 1, WhatToPrint = (int)WhatToPrintTypes.NewLines, WhenToPrint = (int)WhenToPrintTypes.NewLinesAdded }; pj2.PrinterMaps.Add(pm2); _workspace.Add(pj2); t.PrintJobs.Add(pj1); t.PrintJobs.Add(pj2); _workspace.Add(t); ImportMenus(screen); ImportTables(department); _workspace.CommitChanges(); _workspace.Dispose(); }
private void ImportMenus(ScreenMenu screenMenu) { var fileName = string.Format("{0}/Imports/menu{1}.txt", LocalSettings.AppPath, "_" + LocalSettings.CurrentLanguage); if (!File.Exists(fileName)) fileName = string.Format("{0}/Imports/menu.txt", LocalSettings.AppPath); if (!File.Exists(fileName)) return; var lines = File.ReadAllLines(fileName, Encoding.UTF8); var items = BatchCreateMenuItems(lines, _workspace); _workspace.CommitChanges(); var groupCodes = items.Select(x => x.GroupCode).Distinct().Where(x => !string.IsNullOrEmpty(x)); foreach (var groupCode in groupCodes) { var code = groupCode; screenMenu.AddCategory(code); screenMenu.AddItemsToCategory(groupCode, items.Where(x => x.GroupCode == code).ToList()); } }