Exemplo n.º 1
0
        internal override void DetachDataItem()
        {
            PW.DetachFromRootItem();
            if (XmlWorker != null)
            {
                XmlWorker.DetachDataItem();
            }

            // cancel any pending async requests.  If it has already completed,
            // but is now waiting in the dispatcher queue, it will be ignored because
            // we set _pending*Request to null.
            AsyncGetValueRequest pendingGetValueRequest = (AsyncGetValueRequest)GetValue(Feature.PendingGetValueRequest, null);

            if (pendingGetValueRequest != null)
            {
                pendingGetValueRequest.Cancel();
                ClearValue(Feature.PendingGetValueRequest);
            }

            AsyncSetValueRequest pendingSetValueRequest = (AsyncSetValueRequest)GetValue(Feature.PendingSetValueRequest, null);

            if (pendingSetValueRequest != null)
            {
                pendingSetValueRequest.Cancel();
                ClearValue(Feature.PendingSetValueRequest);
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// Конструктор класса
 /// </summary>
 public Settings()
 {
     //Инициализируем класс работы с параметрами
     xw = new XmlWorker();
     //Загружаем настройки из файла (или ставим дефолтные)
     settings = xw.loadSettings();
 }
Exemplo n.º 3
0
 internal override void OnCurrentChanged(ICollectionView collectionView, EventArgs args)
 {
     if (XmlWorker != null)
     {
         XmlWorker.OnCurrentChanged(collectionView, args);
     }
     PW.OnCurrentChanged(collectionView);
 }
Exemplo n.º 4
0
        public static void Main(string[] args)
        {
            var request = new ProcessRequest()
            {
                Account = "Administator",
                Id      = "00000000000000000000000001",
                Service = "totalService",
                Total   = 5100
            };

            XmlWorker.WriteXmlToDirectory(request);
            XmlWorker.WriteXmlToDirectoryWithEncoding(request, Encoding.UTF8);
        }
        public IActionResult RandomQuestion(string subject = "")
        {
            ProgrammingQuestionCollection questions = XmlWorker.GetQuestions(_env);

            ViewBag.Subjects = questions.Questions
                               .Select(q => new { Value = q.Subject, Text = q.Subject })
                               .Distinct()
                               .OrderBy(q => q.Text);

            if (subject != "")
            {
                return(View(questions.GetRandomQuestion(subject)));
            }

            return(View(questions.GetRandomQuestion()));
        }
Exemplo n.º 6
0
        internal override void AttachDataItem()
        {
            object item;

            if (XmlWorker == null)
            {
                item = DataItem;
            }
            else
            {
                XmlWorker.AttachDataItem();
                item = XmlWorker.RawValue();
            }

            PW.AttachToRootItem(item);

            if (PW.Length == 0)
            {
                ParentBindingExpression.SetupDefaultValueConverter(item.GetType());
            }
        }
        public void LoadSetting()
        {
            XmlMasterSettings  xmlTerminal;
            XmlPrinterSettings xmlPrinter;

            try
            {
                var xmlFile = XmlWorker.LoadXmlFile("Settings", "Setting.xml");
                if (xmlFile == null)
                {
                    return;
                }

                xmlTerminal = XmlMasterSettings.LoadXmlSetting(xmlFile);
                xmlPrinter  = XmlPrinterSettings.LoadXmlSetting(xmlFile);
            }
            catch (FileNotFoundException ex)
            {
                ErrorString = ex.ToString();
                return;
            }
            catch (Exception ex)
            {
                ErrorString = "ОШИБКА в узлах дерева XML файла настроек:  " + ex;
                return;
            }


            try
            {
                MasterTcpIp = new MasterTcpIp(xmlTerminal);
                PrintTicket = new PrintTicket(xmlPrinter);
            }
            catch (Exception ex)
            {
                ErrorString = ex.ToString();
            }
        }
Exemplo n.º 8
0
        /// <summary>
        /// Конструктор класса
        /// </summary>
        /// <param name="pl">Класс загрузки попапов</param>
        public mainWorker(PopupLoader pl)
        {
            //Записываем ссылку на класс загрузки попапов
            this.pl = pl;
            //Инициализируем сканер буфера обмена
            cs = new ClipboardScanner();
            //ИНициализируем класс сохранения/загрузки
            xw = new XmlWorker();
            //Инициализиурем список манги для загрузки
            dList = new DownloadList();
            //Ставим шаг в режим сбора ссылок
            workStep = DownloadStep.Steps.Сбор_ссылок;
            //Ставим время загрузки страницы в дефолтное
            averageLoadTime     = defaultAverageLoadTime;
            averageLoadInfoTime = defaultAverageLoadInfoTime;
            //Добавляем обработчик события нахождения ссылки в буфере обмена
            cs.findUrl += Cs_findUrl;

            //Запускаем загрузку манги
            loadManga();
            //Запускаем поиск ссылок
            cs.start();
        }
Exemplo n.º 9
0
        public void LoadSetting()
        {
            //ЗАГРУЗКА НАСТРОЕК----------------------------------------------------------------
            XmlListenerSettings       xmlListener;
            XmlSerialSettings         xmlSerial;
            XmlLogSettings            xmlLog;
            List <XmlCashierSettings> xmlCashier;

            try
            {
                var xmlFile = XmlWorker.LoadXmlFile("Settings", "Setting.xml"); //все настройки в одном файле
                if (xmlFile == null)
                {
                    return;
                }

                xmlListener = XmlListenerSettings.LoadXmlSetting(xmlFile);
                xmlSerial   = XmlSerialSettings.LoadXmlSetting(xmlFile);
                xmlLog      = XmlLogSettings.LoadXmlSetting(xmlFile);
                xmlCashier  = XmlCashierSettings.LoadXmlSetting(xmlFile);
            }
            catch (FileNotFoundException ex)
            {
                ErrorString = ex.ToString();
                return;
            }
            catch (Exception ex)
            {
                ErrorString = "ОШИБКА в узлах дерева XML файла настроек:  " + ex;
                return;
            }


            //СОЗДАНИЕ ЛОГА--------------------------------------------------------------------------
            LogTicket = new Log("TicketLog.txt", xmlLog);


            //СОЗДАНИЕ СЛУШАТЕЛЯ ДЛЯ ТЕРМИНАЛОВ-------------------------------------------------------
            Listener         = new ListenerTcpIp(xmlListener);
            ProviderTerminal = new Server2TerminalExchangeDataProvider();
            ProviderTerminal.PropertyChanged += (o, e) =>
            {
                var provider = o as Server2TerminalExchangeDataProvider;
                if (provider != null)
                {
                    if (e.PropertyName == "InputData")
                    {
                        TicketItem ticket;
                        provider.OutputData = provider.OutputData ?? new TerminalOutData();
                        switch (provider.InputData.NumberQueue)
                        {
                        //ПРИГОРОДНЫЕ КАСС
                        case 1:
                            switch (provider.InputData.Action)
                            {
                            //ИНФОРМАЦИЯ ОБ ОЧЕРЕДИ
                            case TerminalAction.Info:
                                provider.OutputData.NumberQueue   = provider.InputData.NumberQueue;
                                provider.OutputData.CountElement  = (ushort)QueueVilage.Count;
                                provider.OutputData.NumberElement = (ushort)(TicketFactoryVilage.GetCurrentTicketNumber + 1);
                                provider.OutputData.AddedTime     = DateTime.Now;
                                break;

                            //ДОБАВИТЬ БИЛЕТ В ОЧЕРЕДЬ
                            case TerminalAction.Add:
                                ticket = TicketFactoryVilage.Create((ushort)QueueVilage.Count);

                                provider.OutputData.NumberQueue   = provider.InputData.NumberQueue;
                                provider.OutputData.CountElement  = ticket.CountElement;
                                provider.OutputData.NumberElement = (ushort)ticket.NumberElement;
                                provider.OutputData.AddedTime     = ticket.AddedTime;

                                QueueVilage.Enqueue(ticket);
                                break;
                            }
                            break;

                        //ДАЛЬНЕГО СЛЕДОВАНИЯ КАССЫ
                        case 2:
                            switch (provider.InputData.Action)
                            {
                            //ИНФОРМАЦИЯ ОБ ОЧЕРЕДИ
                            case TerminalAction.Info:
                                provider.OutputData.NumberQueue   = provider.InputData.NumberQueue;
                                provider.OutputData.CountElement  = (ushort)QueueLong.Count;
                                provider.OutputData.NumberElement = (ushort)(TicketFactoryLong.GetCurrentTicketNumber + 1);
                                provider.OutputData.AddedTime     = DateTime.Now;
                                break;

                            //ДОБАВИТЬ БИЛЕТ В ОЧЕРЕДЬ
                            case TerminalAction.Add:
                                ticket = TicketFactoryLong.Create((ushort)QueueLong.Count);

                                provider.OutputData.NumberQueue   = provider.InputData.NumberQueue;
                                provider.OutputData.CountElement  = ticket.CountElement;
                                provider.OutputData.NumberElement = (ushort)ticket.NumberElement;
                                provider.OutputData.AddedTime     = ticket.AddedTime;

                                QueueLong.Enqueue(ticket);
                                break;
                            }
                            break;
                        }
                    }
                }
            };


            //СОЗДАНИЕ КАССИРОВ------------------------------------------------------------------------------------------------
            foreach (var xmlCash in xmlCashier)
            {
                var casher = new Сashier(xmlCash.Id, (xmlCash.Prefix == "A") ? QueueVilage : QueueLong, xmlCash.MaxCountTryHanding);
                DeviceCashiers.Add(new DeviceCashier(casher));
            }


            //СОЗДАНИЕ ПОСЛЕД. ПОРТА ДЛЯ ОПРОСА КАССИРОВ-----------------------------------------------------------------------
            MasterSerialPort       = new MasterSerialPort(xmlSerial);
            CashierExchangeService = new CashierExchangeService(DeviceCashiers, xmlSerial.TimeRespoune);
            MasterSerialPort.AddFunc(CashierExchangeService.ExchangeService);
            MasterSerialPort.PropertyChanged += (o, e) =>
            {
                var port = o as MasterSerialPort;
                if (port != null)
                {
                    if (e.PropertyName == "StatusString")
                    {
                        ErrorString = port.StatusString;
                    }
                }
            };
        }
Exemplo n.º 10
0
 public override void LoadStudentsCollection()
 {
     Students = XmlWorker.Deserialize();
 }
Exemplo n.º 11
0
        internal override bool IsPathCurrent()
        {
            object item = (XmlWorker == null) ? DataItem : XmlWorker.RawValue();

            return(PW.IsPathCurrent(item));
        }
        static void Main(string[] args)
        {
            var band = new Band()
            {
                Name     = "Pink Floyd",
                Vocalist = new Leader()
                {
                    Name = "Roger Waters"
                },
                Musicians = new List <Musician>()
                {
                    new Musician()
                    {
                        Name       = "Sid Barret",
                        Instrument = new Instrument()
                        {
                            Name = "Electic-Guitar",
                            Type = InstrumentType.keyboard
                        }
                    },
                    new Musician()
                    {
                        Name       = "Nick Mayson",
                        Instrument = new Instrument()
                        {
                            Name = "Drums",
                            Type = InstrumentType.drum
                        }
                    },
                    new Musician()
                    {
                        Name       = "Richard Wright",
                        Instrument = new Instrument()
                        {
                            Name = "Electic-Piano",
                            Type = InstrumentType.keyboard
                        }
                    },
                }
            };

            XmlWorker worker = new XmlWorker();

            worker.Create(band);
            worker.Delete(new Musician()
            {
                Name       = "Sid Barret",
                Instrument = new Instrument()
                {
                    Name = "Electic-Guitar",
                    Type = InstrumentType.keyboard
                }
            },
                          band);
            worker.Update(new Musician()
            {
                Name       = "David Gilmour",
                Instrument = new Instrument()
                {
                    Name = "Electic-Guitar",
                    Type = InstrumentType.keyboard
                }
            }, band);
            band = worker.Read();
            band.Info();
            Console.ReadKey();
        }
Exemplo n.º 13
0
        public void LoadSetting()
        {
            //ЗАГРУЗКА НАСТРОЕК----------------------------------------------------------------
            XmlListenerSettings       xmlListener;
            IList <XmlSerialSettings> xmlSerials;
            List <XmlCashierSettings> xmlCashier;
            List <XmlQueuesSettings>  xmlQueues;

            try
            {
                var xmlFile = XmlWorker.LoadXmlFile("Settings", "Setting.xml"); //все настройки в одном файле
                if (xmlFile == null)
                {
                    return;
                }

                xmlListener = XmlListenerSettings.LoadXmlSetting(xmlFile);
                xmlSerials  = XmlSerialSettings.LoadXmlSetting(xmlFile).ToList();
                xmlCashier  = XmlCashierSettings.LoadXmlSetting(xmlFile);
                xmlQueues   = XmlQueuesSettings.LoadXmlSetting(xmlFile);
            }
            catch (FileNotFoundException ex)
            {
                ErrorString = ex.ToString();
                return;
            }
            catch (Exception ex)
            {
                ErrorString = "ОШИБКА в узлах дерева XML файла настроек:  " + ex;
                return;
            }

            //РАЗРЕШИТЬ ЛОГГИРОВАНИЕ-----------------------------------------------------------
            Log.EnableLogging(true);

            //СОЗДАНИЕ ОЧЕРЕДИ-----------------------------------------------------------------------
            foreach (var xmlQueue in xmlQueues)
            {
                var queue = new QueuePriority(xmlQueue.Name, xmlQueue.Prefixes);
                QueuePriorities.Add(queue);
            }


            //СОЗДАНИЕ СЛУШАТЕЛЯ ДЛЯ ТЕРМИНАЛОВ-------------------------------------------------------
            Listener         = new ListenerTcpIp(xmlListener);
            ProviderTerminal = new Server2TerminalExchangeDataProvider(isSynchronized: true);
            ProviderTerminal.PropertyChanged += (o, e) =>
            {
                var provider = o as Server2TerminalExchangeDataProvider;
                if (provider != null)
                {
                    if (e.PropertyName == "InputData")
                    {
                        try
                        {
                            provider.OutputData = provider.OutputData ?? new TerminalOutData();

                            //Найдем очередь к которой обращен запрос
                            var prefixQueue = provider.InputData.PrefixQueue;
                            var nameQueue   = provider.InputData.NameQueue;
                            var queue       = QueuePriorities.FirstOrDefault(q => string.Equals(q.Name, nameQueue, StringComparison.InvariantCultureIgnoreCase));

                            if (queue == null)
                            {
                                return;
                            }

                            switch (provider.InputData.Action)
                            {
                            //ИНФОРМАЦИЯ ОБ ОЧЕРЕДИ
                            case TerminalAction.Info:
                                provider.OutputData.PrefixQueue   = provider.InputData.PrefixQueue;
                                provider.OutputData.CountElement  = (ushort)queue.GetInseartPlace(prefixQueue);
                                provider.OutputData.NumberElement = (ushort)(queue.GetCurrentTicketNumber + 1);
                                provider.OutputData.AddedTime     = DateTime.Now;
                                break;

                            //ДОБАВИТЬ БИЛЕТ В ОЧЕРЕДЬ
                            case TerminalAction.Add:
                                var ticket = queue.CreateTicket(prefixQueue);

                                provider.OutputData.PrefixQueue   = provider.InputData.PrefixQueue;
                                provider.OutputData.CountElement  = ticket.CountElement;
                                provider.OutputData.NumberElement = (ushort)ticket.NumberElement;
                                provider.OutputData.AddedTime     = ticket.AddedTime;
                                queue.Enqueue(ticket);
                                var logMessage = $"ДОБАВИТЬ БИЛЕТ В ОЧЕРЕДЬ (команда от терминала): {ticket.ToString()}   ";
                                _logQueueInput.Info(logMessage);
                                break;
                            }
                        }
                        catch (Exception ex)
                        {
                            _logQueueInput.Error($"Server2TerminalExchangeDataProvider:   {ex.ToString()}");
                        }
                    }
                }
            };

            //DEBUG------ИНИЦИАЛИЗАЦИЯ ОЧЕРЕДИ---------------------
            //Обязательно коментировать  _model.LoadStates(); иначе состояние очереди затрется
            //var queueTemp = QueuePriorities.FirstOrDefault(q => string.Equals(q.Name, "Main", StringComparison.InvariantCultureIgnoreCase));
            //var queueAdmin = QueuePriorities.FirstOrDefault(q => string.Equals(q.Name, "Admin", StringComparison.InvariantCultureIgnoreCase));
            //for (int i = 0; i < 200; i++)
            //{
            //    var ticketAdmin = queueTemp.CreateTicket("А");
            //    queueAdmin.Enqueue(ticketAdmin);

            //    var ticket = queueTemp.CreateTicket("К");
            //    queueTemp.Enqueue(ticket);

            //    ticket = queueTemp.CreateTicket("К");
            //    queueTemp.Enqueue(ticket);

            //    ticket = queueTemp.CreateTicket("Г");
            //    queueTemp.Enqueue(ticket);

            //    ticket = queueTemp.CreateTicket("И");
            //    queueTemp.Enqueue(ticket);

            //    ticket = queueTemp.CreateTicket("С");
            //    queueTemp.Enqueue(ticket);
            //}
            //DEBUG----------------------------------------------


            //СОЗДАНИЕ КАССИРОВ------------------------------------------------------------------------------------------------
            foreach (var xmlCash in xmlCashier)
            {
                var queue = QueuePriorities.FirstOrDefault(q => q.Name == xmlCash.NameQueue);
                if (queue != null)
                {
                    var logName = "Server.CashierInfo_" + xmlCash.Port;
                    var casher  = new Сashier(xmlCash.Id, xmlCash.Prefixs, queue, xmlCash.MaxCountTryHanding, logName);
                    DeviceCashiers.Add(new DeviceCashier(xmlCash.AddressDevice, casher, xmlCash.Port));
                }
            }
            AdminCasher = DeviceCashiers.FirstOrDefault(d => d.Cashier.Prefixes.Contains("А"));


            //СОЗДАНИЕ ПОСЛЕД. ПОРТА ДЛЯ ОПРОСА КАССИРОВ-----------------------------------------------------------------------
            var cashersGroup = DeviceCashiers.GroupBy(d => d.Port).ToDictionary(group => group.Key, group => group.ToList());  //принадлежность кассира к порту

            foreach (var xmlSerial in xmlSerials)
            {
                var logName     = "Server.CashierInfo_" + xmlSerial.Port;
                var sp          = new MasterSerialPort(xmlSerial, logName);
                var cashiers    = cashersGroup[xmlSerial.Port];
                var cashierExch = new CashierExchangeService(cashiers, AdminCasher, xmlSerial.TimeRespoune, logName);
                sp.AddFunc(cashierExch.ExchangeService);
                //sp.PropertyChanged += (o, e) =>
                // {
                //     var port = o as MasterSerialPort;
                //     if (port != null)
                //     {
                //         if (e.PropertyName == "StatusString")
                //         {
                //             ErrorString = port.StatusString;                     //TODO: РАЗДЕЛЯЕМЫЙ РЕСУРС возможно нужна блокировка
                //        }
                //     }
                // };
                MasterSerialPorts.Add(sp);
                CashierExchangeServices.Add(cashierExch);
            }
        }