예제 #1
0
        public void Test()
        {
            SiteContext.Current.Provider = new SingleThreadProvider();


            var reader = new InvoiceReader(new TransferManager());

            reader.Read(new DateRange(DateTime.Today.AddMonths(-2), DateTime.Today));
        }
예제 #2
0
        public void readFile()
        {
            // Setup
            var reader = new InvoiceReader("InvoiceDemo1.txt");

            // Execute
            var invoice = reader.GetInvoice();

            // Verify

            Assert.AreEqual("Beverages.com", invoice.WebAddress);
        }
예제 #3
0
        /// <summary>
        /// Searches the free trasfer.
        /// </summary>
        /// <param name="purse">The purse.</param>
        /// <param name="creationDate">The creation date.</param>
        /// <returns></returns>
        public Transfer SearchFreeTransfer(string purse, DateRange creationDate)
        {
            var transfers = GetFreeByPurseByCreationDate(purse, creationDate);

            if (transfers.Count > 0)
            {
                return(transfers[0]);
            }

            var reader = new InvoiceReader(this);

            reader.Read(creationDate);

            transfers = GetFreeByPurseByCreationDate(purse, creationDate);
            return(transfers.Count > 0 ? transfers[0] : null);
        }
예제 #4
0
        public void can_read_810_invoice_file_into_invoice()
        {
            string fileName = @"c:\810file.txt";

            var     reader  = new InvoiceReader();
            Invoice invoice = reader.ReadInvoiceFile(fileName);

            Assert.IsNotNull(invoice);
            Assert.IsNotNull(invoice.Customer);
            Assert.IsNotNull(invoice.Items);
            Assert.IsNotNull(invoice.PurchaseOrderNumber);
            Assert.IsNotNull(invoice.Total);
            Assert.IsNotNull(invoice.InvoiceDate);

            //TODO:Add more asserts based on data in sample file that is not yet created
            //for example:
            Assert.AreEqual("123", invoice.Customer.Id);
            Assert.AreEqual("PO3445", invoice.PurchaseOrderNumber);
        }
예제 #5
0
        private void WorkerOnDoWork(object sender, DoWorkEventArgs args)
        {
            IProgressWindow window = args.Argument as IProgressWindow;
            FileStream stream = new FileStream(InputFileName, FileMode.Open);

            long overallLength = stream.Length;

            InvoiceReader reader = new InvoiceReader(stream);
            reader.FinishedReadingLine += lineLength =>
                                              {
                                                  window.UpdateProgress(((double)lineLength / (double)overallLength));
                                              };

            List<Receipt> receipts = reader.GetReceipts();

            reader.FillMissingDates(receipts);

            FileStream magazineOutputStream =
                new FileStream(InputFileDir + "/" + reader.InvoiceMonth + "-" + reader.InvoiceNumber + " - Magazine" + ".csv",
                               FileMode.Create);
            TextWriter magazineTextWriter = new StreamWriter(magazineOutputStream);

            FileStream newspaperOutputStream =
                            new FileStream(InputFileDir + "/" + reader.InvoiceMonth + "-" + reader.InvoiceNumber + " - Newspaper" + ".csv",
                                           FileMode.Create);
            TextWriter newspaperTextWriter = new StreamWriter(newspaperOutputStream);

            Receipt previousNewspaper = receipts[0];
            Receipt previousMagazine = receipts[0];

            foreach (Receipt receipt in receipts)
            {
                if (receipt.Issue < 10000)
                {
                    if (!receipt.Distro.Equals(previousMagazine.Distro))
                    {
                        magazineTextWriter.WriteLine(",,,");
                    }

                    magazineTextWriter.WriteLine(receipt);
                    previousMagazine = receipt;

                }
                else
                {
                    if (!receipt.Distro.Equals(previousNewspaper.Distro))
                    {
                        newspaperTextWriter.WriteLine(",,,");
                    }

                    newspaperTextWriter.WriteLine(receipt);
                    previousNewspaper = receipt;
                }
            }

            magazineTextWriter.Close();
            magazineOutputStream.Close();

            newspaperTextWriter.Close();
            newspaperOutputStream.Close();

            window.WorkDone();
        }