private void AddPriceFileToList(string priceFile, bool ignoreDownloaded)
        {
            //Если файл имеет префикс "d", то значит он был закачан, поэтому он уже в очереди на обработку
            if (ignoreDownloaded && PriceProcessItem.IsDownloadedPrice(priceFile))
            {
                return;
            }

            var item = PriceProcessItem.TryToLoadPriceProcessItem(priceFile);

            if (item != null)
            {
                if (!PriceItemList.AddItem(item))
                {
                    //todo: здесь не понятно, что надо делать, т.к. прайс-лист не добавили по причине скаченного нового. Сейчас удаляю
                    try {
                        global::Common.Tools.FileHelper.FileDelete(priceFile);
                    }
                    catch (Exception ex) {
                        _logger.ErrorFormat("Не получилось удалить файл для формализации {0}\r\n{1}", priceFile, ex);
                    }
                }
            }
            else
            {
                _logger.WarnFormat(Settings.Default.UnknownPriceError, Path.GetFileName(priceFile));
                try {
                    global::Common.Tools.FileHelper.FileDelete(priceFile);
                }
                catch (Exception ex) {
                    _logger.ErrorFormat("Не получилось удалить неизвестный файл {0}\r\n{1}", priceFile, ex);
                }
            }
        }
示例#2
0
        public void Top_In_Inbound_List_Test()
        {
            var dtn         = DateTime.Now;
            var checkedItem = new PriceProcessItem(false, 5, null, 1, "jjj.AAA", null)
            {
                CreateTime = dtn.AddMinutes(50)
            };

            PriceItemList.AddItem(new PriceProcessItem(false, 1, null, 1, "jjj.123", null)
            {
                CreateTime = dtn.AddMinutes(10)
            });
            PriceItemList.AddItem(checkedItem);
            PriceItemList.AddItem(new PriceProcessItem(true, 2, null, 1, "jjj.345", null)
            {
                CreateTime = dtn.AddMinutes(100)
            });
            PriceItemList.AddItem(new PriceProcessItem(true, 3, null, 1, "jjj.789", null)
            {
                CreateTime = dtn.AddMinutes(100)
            });
            Assert.AreEqual(checkedItem.CreateTime, dtn.AddMinutes(50));
            var wcf = new WCFPriceProcessorService();

            wcf.TopInInboundList(checkedItem.GetHashCode());
            Assert.AreEqual(checkedItem.CreateTime, dtn.AddMinutes(10).AddSeconds(-5));
        }
示例#3
0
        public void Delete_ItemIn_Inbound_List_Test()
        {
            var checkedItem = new PriceProcessItem(false, 5, null, 1, "jjj.AAA", null);

            PriceItemList.AddItem(new PriceProcessItem(false, 1, null, 1, "jjj.123", null));
            PriceItemList.AddItem(checkedItem);
            PriceItemList.AddItem(new PriceProcessItem(true, 2, null, 1, "jjj.345", null));
            PriceItemList.AddItem(new PriceProcessItem(true, 3, null, 1, "jjj.789", null));
            Assert.IsTrue(PriceItemList.list.Any(l => l.FilePath == "jjj.AAA"));
            var wcf = new WCFPriceProcessorService();

            wcf.DeleteItemInInboundList(checkedItem.GetHashCode());
            Assert.IsFalse(PriceItemList.list.Any(l => l.FilePath == "jjj.AAA"));
        }
        public void SortListTest()
        {
            var a = new PriceProcessItem(true, 1, 1, 1, "test.txt", null);

            a.FileTime = DateTime.Now.AddHours(-1);
            PriceItemList.AddItem(a);
            var b = new PriceProcessItem(true, 1, 1, 1, "test.txt", null);

            b.FileTime = DateTime.Now;
            PriceItemList.AddItem(b);
            PriceProcessItem c = PriceItemList.GetLastestDownloaded(1);

            Assert.AreEqual(c, b, "Последний добавленный прайс-лист выбран некорреткно.");
        }
        public void NotRetransIfExistsItem()
        {
            var path = Path.Combine(Settings.Default.BasePath, priceItem.Id + ".dbf");

            PriceItemList.AddItem(new PriceProcessItem(false,
                                                       supplier.Prices[0].Id,
                                                       supplier.Prices[0].Costs[0].Id,
                                                       priceItem.Id,
                                                       path,
                                                       null));
            File.WriteAllBytes(path, new byte[0]);
            var ex = Assert.Throws <FaultException>(() => priceProcessor.RetransPrice(new WcfCallParameter {
                LogInformation = new LogInformation {
                    ComputerName = "test",
                    UserName     = "******"
                },
                Value = priceItem.Id
            }));

            Assert.That(ex.Message, Is.EqualTo("Данный прайс-лист находится в очереди на формализацию"));
        }