public MainWindowViewModel(IWebApiService webApiService, SearchSortService searchService) { this.webApiService = webApiService; this.searchService = searchService; CurrentPageCount = Settings.Default.CountPerPage <= 0 ? 100 : Settings.Default.CountPerPage; CurrentSearchField = SearchFields.FirstOrDefault(x => x.FieldName == Settings.Default.SearchFieldName) ?? SearchFields[0]; LastPage = 1; CurrentPage = 1; CurrentPrinter = Printers.FirstOrDefault(x => x.PrinterName == Settings.Default.DefaultPrinter); }
/// <summary> /// Обновляет один принтер. /// </summary> /// <param name="editedPrinter">Отредактированный принтер</param> public void UpdatePrinter(PrinterDTO editedPrinter) { // Найти принтер, равный редактированному, в текущем списке всех принтеров. PrinterDTO printer = Printers.FirstOrDefault(x => x.Id == editedPrinter.Id); // Если принтер найден. if (printer != null) { // Присвоить значения свойств отредактированного картриджа текущему. foreach (var prop in printer.GetType().GetProperties()) { prop.SetValue(printer, prop.GetValue(editedPrinter)); } } }
/// <summary> /// 重新加载内存数据 /// </summary> /// <returns></returns> public async Task ReloadAsync() { using (var scope = DataBase.BeginLifetimeScope()) { var service = scope.Resolve <IUtilService>(); var orderService = scope.Resolve <IOrderService>(); Types.Clear(); Products.Clear(); DeskTypes.Clear(); Desks.Clear(); // 产品列表 (await service.GetProductTypeAsync())?.ForEach(a => { Types.Add(a); a.Products?.ForEach(b => Products.Add(b)); }); // 产品库存 (await service.GetProductStocksAsync())?.ForEach(a => { var product = Products.FirstOrDefault(b => b.Id == a.ProductId); if (product == null) { return; } product.Stock = a.Stock; }); // 桌台 (await service.GetDeskTypesAsync())?.ForEach(a => { DeskTypes.Add(a); a.Desks?.ForEach(b => Desks.Add(b)); }); // 未完成订单 orderService.GetUnfinishOrder()?.ForEach(order => { var desk = Desks.FirstOrDefault(a => a.Id == order.DeskId); if (desk == null) { return; } desk.Order = order; }); service.PubSubscribe("SystemMessage", "ResetDeskStatus"); var clientPrinters = await service.GetAllAsync <ClientPrinter>(); // 将删除的打印机关闭 var delPrinter = new List <Printer>(); Printers.ForEach(a => { var printer = clientPrinters?.FirstOrDefault(b => a.Device.Id == b.Id); if (printer != null) { return; } a.Close(); delPrinter.Add(a); }); delPrinter.ForEach(a => Printers.Remove(a)); clientPrinters?.ForEach(item => { var printer = Printers.FirstOrDefault(a => a.Device.Id == item.Id); if (printer == null) { printer = new Printer { Device = item }; Printers.Add(printer); } else { printer.Device = item; } if (printer.Device.State == 1) { printer.Open(); } else { printer.Close(); } }); } }
private string GetDefaultPrinter() { var localPrinter = _LocalPrintServer.DefaultPrintQueue; return(Printers.FirstOrDefault(p => p == localPrinter.FullName) ?? ""); }
public PrintQueue FindPrinterByShareName(string shareName) { return(Printers.FirstOrDefault(x => x.HostingPrintServer.Name + "\\" + x.ShareName == shareName)); }
internal PrintQueue FindPrinterByName(string printerName) { return(Printers.FirstOrDefault(x => x.FullName == printerName)); }