コード例 #1
0
        /// <summary>
        /// Fill subscriber datas
        /// </summary>
        /// <param name="subscriberNo"></param>
        public void FillDatas(string subscriberNo = null)
        {
            int             totalBlackList  = 0;
            FileParser      fileParser      = new FileParser();
            PaymentProvider paymentProvider = new PaymentProvider();
            string          targetPath      = @"Datas";

            Directory.CreateDirectory(targetPath);
            string[]          filesindirectory = Directory.GetFiles(targetPath);
            List <Subscriber> subscribers      = new List <Subscriber>();
            ImportData        importData;

            foreach (var item in filesindirectory)
            {
                importData = paymentProvider.ImportPayment(FileParser.ParseFile(item));
                subscribers.AddRange(importData.Subscribers);
                totalBlackList += importData.BlackList;
            }

            if (subscriberNo != string.Empty && subscriberNo != null)
            {
                subscribers = subscribers.Where(i => i.No == subscriberNo).ToList();
            }

            List <PaymentData> paymentDatas = new List <PaymentData>();
            List <InvoiceData> invoiceDatas = new List <InvoiceData>();

            foreach (var item in subscribers)
            {
                foreach (var payment in item.Payments)
                {
                    paymentDatas.Add(new PaymentData
                    {
                        Amount       = payment.Amount,
                        SubscriberNo = payment.Subscriber.No,
                        Date         = payment.Date
                    });
                }
                lblPayment.Text = paymentDatas.Sum(i => i.Amount).ToString();
                foreach (var invoice in item.Invoices)
                {
                    invoiceDatas.Add(new InvoiceData
                    {
                        DueDate      = invoice.DueDate,
                        InvoiceNo    = invoice.No,
                        Period       = invoice.Period,
                        SubscriberNo = invoice.Subscriber.No
                    });
                }
            }


            DataTable        dt = new DataTable();
            ConvertDataTable convertDataTable = new ConvertDataTable();

            dt = convertDataTable.ConvertToDataTable <InvoiceData>(invoiceDatas);
            dViewInvoices.DataSource = dt;

            DataTable        dt2 = new DataTable();
            ConvertDataTable convertDataTable2 = new ConvertDataTable();

            dt2 = convertDataTable.ConvertToDataTable <PaymentData>(paymentDatas);
            dViewPayments.DataSource = dt2;

            if (totalBlackList > 0)
            {
                MessageBox.Show($"{totalBlackList } datas could not be added to the system.");
            }
        }