コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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));
                }
            }
        }
コード例 #3
0
        /// <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();
                    }
                });
            }
        }
コード例 #4
0
ファイル: PrintSettings.cs プロジェクト: sh1ch/Samples
        private string GetDefaultPrinter()
        {
            var localPrinter = _LocalPrintServer.DefaultPrintQueue;

            return(Printers.FirstOrDefault(p => p == localPrinter.FullName) ?? "");
        }
コード例 #5
0
 public PrintQueue FindPrinterByShareName(string shareName)
 {
     return(Printers.FirstOrDefault(x => x.HostingPrintServer.Name + "\\" + x.ShareName == shareName));
 }
コード例 #6
0
 internal PrintQueue FindPrinterByName(string printerName)
 {
     return(Printers.FirstOrDefault(x => x.FullName == printerName));
 }