protected void ButtonImport_Click(object sender, EventArgs e) { string[] checkData = TextBoxChecks.Text.Split(new char[] { '\n' }); Dictionary<string, int> columnNames = new Dictionary<string,int>(); columnNames.Add("TenantNumber", 0); columnNames.Add("TenantName", 1); columnNames.Add("CheckDate", 2); columnNames.Add("ReceivedDate", 3); columnNames.Add("CheckNumber", 4); columnNames.Add("CheckAmount", 5); List<string> skippedLines = new List<string>(); List<List<string>> importedChecks = new List<List<string>>(); foreach (string line in checkData) { string[] columns = line.Split(new char[] { '\t' }); string tenantNumber = columns[columnNames["TenantNumber"]]; if (!QuickPM.Util.TryFormatTenantId(tenantNumber, out tenantNumber)) { skippedLines.Add(line); } string checkDate = columns[columnNames["CheckDate"]]; string receivedDate = columns[columnNames["ReceivedDate"]]; string checkNumber = columns[columnNames["CheckNumber"]]; string checkAmount = columns[columnNames["CheckAmount"]]; QuickPM.Period period1 = new QuickPM.Period(DateTime.Now.Year, DateTime.Now.Month); QuickPM.Period period2 = period1.SubtractMonth(); List<QuickPM.Check> checks1 = QuickPM.Database.GetChecks(tenantNumber, period1); List<QuickPM.Check> checks2 = QuickPM.Database.GetChecks(tenantNumber, period2); checks1.AddRange(checks2); bool skip = false; foreach (QuickPM.Check check in checks1) { if (check.Number.Trim() == checkNumber.Trim() && check.CheckDate == DateTime.Parse(checkDate)) { skip = true; break; } } List<string> checkInfo = new List<string>(); checkInfo.Add(checkNumber.Trim()); if (skip) { checkInfo.Add("Yes"); } else { checkInfo.Add("No"); } if (skip) { importedChecks.Add(checkInfo); continue; } QuickPM.Check c = new QuickPM.Check(); c.TenantId = tenantNumber; c.Number = checkNumber.Trim(); c.CheckDate = DateTime.Parse(checkDate); c.ReceivedDate = DateTime.Parse(receivedDate); c.Amount = Decimal.Parse(checkAmount, System.Globalization.NumberStyles.Any); c.ARRecordDate = new DateTime(period1.Year, period1.Month, 1); c.AutoApply(period1); c.Save(); importedChecks.Add(checkInfo); } Session["ImportedChecks"] = importedChecks; Session.Add("SkippedLines", skippedLines); }