示例#1
0
        public void AddRecord()
        {
            WBService wBService = new WBService(new Logger("Log.log", "Testing"));

            List <byte> bytes   = new List <byte>();
            var         bytesAr = File.ReadAllBytes("Test.xml");

            foreach (var item in bytesAr)
            {
                bytes.Add(item);
            }

            XMLConverter converter = new XMLConverter(bytes, new Logger("Log.log", "Testing"));

            Assert.IsTrue(wBService.AddRecord(converter.GetWaybill()));
        }
示例#2
0
        public void GetWayBillSupplierNotExistTest()
        {
            List <byte> bytes   = new List <byte>();
            var         bytesAr = File.ReadAllBytes("Test (2).xml");

            foreach (var item in bytesAr)
            {
                bytes.Add(item);
            }

            XMLConverter converter = new XMLConverter(bytes, new Logger("Log.log", "Testing"));

            Waybill waybill         = converter.GetWaybill();
            Waybill expectedWayBill = new Waybill
            {
                Number       = "ТКУ8226918",
                ClientID     = 1,
                DocumentDate = new DateTime(2018, 8, 30),
                DownloadDate = waybill.DownloadDate,
                SupplierID   = 1
            };

            Assert.IsTrue(expectedWayBill.LikeAs(waybill));
        }
示例#3
0
        public void DownloadFiles(TradeObject tradeObject)
        {
            NetworkCredential   networkCredential = new NetworkCredential(tradeObject.FtpLogin, tradeObject.FtpPassword);
            FtpClientParameters parametres        = new FtpClientParameters();

            parametres.ConnectTimeout   = new TimeSpan(0, 0, timeoutSec);
            parametres.ReadWriteTimeout = new TimeSpan(0, 0, timeoutSec);
            parametres.Passive          = this.isPassive;

            using (var ftpClient = new FtpClient(this.FTPUri, networkCredential, parametres))
            {
                var files = ftpClient.ListEntries(FtpPath).Where(en => en.Type == FtpEntryType.File);
                this.logger.WriteLog("Document files count in directory: " + ftpClient.ListEntries(FtpPath).Count().ToString());
                foreach (var item in files)
                {
                    using (var stream = ftpClient.Retr(item.Path))
                    {
                        List <byte> byteList = new List <byte>();
                        int         curByte;

                        while ((curByte = stream.ReadByte()) != -1)
                        {
                            byteList.Add((byte)curByte);
                        }

                        try
                        {
                            this.logger.WriteLog(string.Format("{0} {1}", "Parsing waybill file", item.Name));
                            XMLConverter converter = new XMLConverter(byteList, this.logger);
                            if (!this.wBService.AddRecord(converter.GetWaybill()))
                            {
                                this.logger.WriteLog(string.Format("{0}: {1}", "Waybill or register writing error. File", item.Name), LogTypes.ERROR);
                            }
                        }
                        catch (XmlException ex)
                        {
                            this.logger.WriteLog(string.Format("{0}. File: {1}. {2}: {3}. {4}", "Waybill file parsing error", item.Name, ex.Source, ex.Message, ex.StackTrace), LogTypes.ERROR);
                        }
                        catch (Exception ex)
                        {
                            this.logger.WriteLog(string.Format("{0}. File: {1}. {2}: {3}. {4}", "Error adding waybill to db", item.Name, ex.Source, ex.Message, ex.StackTrace), LogTypes.ERROR);
                        }
                        try
                        {
                            File.WriteAllBytes(tradeObject.LocalFolder + "\\" + item.Name, byteList.ToArray());
                        }
                        catch (IOException ex)
                        {
                            this.logger.WriteLog(string.Format("{0}: {1}: {2}. {3}", "Error to save waybill file " + item.Name, ex.Source, ex.Message, ex.StackTrace), LogTypes.ERROR);
                        }
                        if (ftpClient.Dele(item.Path))
                        {
                            this.logger.WriteLog("File " + item.Path + " was deleted from FTP", LogTypes.INFO);
                        }
                        else
                        {
                            this.logger.WriteLog("File " + item.Path + " not deleted from FTP", LogTypes.WARNING);
                        }
                        this.logger.WriteLog("Saved waybill file " + item.Name, LogTypes.INFO);
                    }
                }
            }
        }