Esempio n. 1
0
        public void LineToPaymentSummary(string dataRow, string paymentId, bool isFirstLine)
        {
            decimal value   = 0;
            var     columns = dataRow.Split(',');

            // Skip Header
            if (isFirstLine)
            {
                if (!columns.Any(field => decimal.TryParse(field, out value)))
                {
                    return;
                }
            }

            var paymentSummary = new PaymentSummary()
            {
                Id           = paymentId,
                EmployeeInfo = new Employee()
                {
                    FirstName = columns[0], LastName = columns[1]
                }
            };

            if (decimal.TryParse(columns[2], out value))
            {
                paymentSummary.AnnualSalary = value;
            }

            if (decimal.TryParse(columns[3], out value))
            {
                paymentSummary.SuperRate = value;
            }

            DateTime dateTime;

            if (DateTime.TryParse(columns[4], out dateTime))
            {
                paymentSummary.PaymentStartDate = dateTime;
            }

            PaymentSummaries.Add(paymentSummary);
        }
Esempio n. 2
0
        // Read Data
        public override IEnumerable <PaymentSummary> GetPaymentSummaries()
        {
            var dataFiles = GetDataFiles();

            if (dataFiles == null)
            {
                return(null);
            }

            Parallel.ForEach(dataFiles, (dataFile) =>
            {
                ProcessDataFile(dataFile);
            });

            if (PaymentSummaries.Count == 0)
            {
                LogService.LogInfo("No data found.");
                return(null);
            }

            return(PaymentSummaries.OrderBy(p => p.Id));
        }