public void ImportSRSPCI_() { m_bError = false; bool bIsMetricData = false; if (m_bIsLinear) { ValidateLinear(); } else { ValidateSection(); } if (m_bError) { return; } string query = "SELECT OPTION_VALUE FROM OPTIONS WHERE OPTION_NAME = 'PCI_UNITS'"; string units = DBMgr.ExecuteQuery(query).Tables[0].Rows[0].ItemArray[0].ToString(); if (units == "METRIC") { bIsMetricData = true; } List <PCIDistressObject> distressRows = new List <PCIDistressObject>(); query = "SELECT DISTRESSNUMBER, DISTRESSNAME, METHOD_, METRIC_CONVERSION FROM PCI_DISTRESS"; DataSet allDistressInfo = DBMgr.ExecuteQuery(query); foreach (DataRow distressInfo in allDistressInfo.Tables[0].Rows) { PCIDistressObject distressProperties = new PCIDistressObject(distressInfo["DISTRESSNAME"].ToString(), int.Parse(distressInfo["DISTRESSNUMBER"].ToString()), float.Parse(distressInfo["METRIC_CONVERSION"].ToString())); distressRows.Add(distressProperties); } string strMyDocumentsFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); strMyDocumentsFolder += "\\RoadCare Projects\\Temp"; Directory.CreateDirectory(strMyDocumentsFolder); string strOutFile = strMyDocumentsFolder + "\\pci.txt"; File.Delete(strOutFile); m_twPCI = new StreamWriter(strOutFile); string strOutFileDetails = strMyDocumentsFolder + "\\pciDetails.txt"; File.Delete(strOutFileDetails); m_twPCIDetail = new StreamWriter(strOutFileDetails); if (m_bError) { return; // If there is an error in the BULK PCI load, don't load } List <SRSObjectPCI> listPCI = new List <SRSObjectPCI>(); SRSObjectPCI pciPrevious = null; foreach (DataGridViewRow row in dgvPCIBulkLoad.Rows) { if (!Validation.IsValidRow(row)) { continue; } SRSObjectPCI srsObjectPCI = new SRSObjectPCI(row.Cells["FACILITY"].Value.ToString(), row.Cells["SECTION"].Value.ToString(), row.Cells["SAMPLE_"].Value.ToString(), DateTime.Parse(row.Cells["DATE_"].Value.ToString()), row.Cells["METHOD_"].Value.ToString(), row.Cells["TYPE_"].Value.ToString(), double.Parse(row.Cells["AREA"].Value.ToString()), row.Cells["DISTRESS"].Value.ToString(), row.Cells["SEVERITY"].Value.ToString(), double.Parse(row.Cells["AMOUNT"].Value.ToString())); if (listPCI.Count > 0) { if (pciPrevious.Facility != srsObjectPCI.Facility || pciPrevious.Section != srsObjectPCI.Section || pciPrevious.Sample != srsObjectPCI.Sample || pciPrevious.Area != srsObjectPCI.Area || pciPrevious.Method != srsObjectPCI.Method || pciPrevious.Type != srsObjectPCI.Type || pciPrevious.Date != srsObjectPCI.Date) { WritePCISample(listPCI, m_nNextPCIID, distressRows, bIsMetricData); listPCI.Clear(); m_nNextPCIID++; } } pciPrevious = srsObjectPCI; listPCI.Add(srsObjectPCI); } WritePCISample(listPCI, m_nNextPCIID, distressRows, bIsMetricData); m_twPCI.Close(); m_twPCIDetail.Close(); DBMgr.SQLBulkLoad("PCI", strOutFile, '\t'); m_nNextPCIID++; m_nNextPCIID++; DBMgr.SQLBulkLoad("PCI_DETAIL", strOutFileDetails, '\t'); this.Close(); }
public void ValidateSection() { string strMyDocumentsFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); strMyDocumentsFolder += "\\RoadCare Projects\\Temp"; Directory.CreateDirectory(strMyDocumentsFolder); string strOutFile = strMyDocumentsFolder + "\\PCIValidationErrors.txt"; TextWriter tw = new StreamWriter(strOutFile); string strError = ""; FormManager.GetOutputWindow().ClearWindow(); SRSObjectPCI srsObjectPCI = new SRSObjectPCI(); foreach (DataGridViewRow row in dgvPCIBulkLoad.Rows) { if (row.Cells["SAMPLE_"].Value == null) { row.Cells["SAMPLE_"].Value = ""; } if (!Validation.IsValidRow(row)) { if (row.Index != dgvPCIBulkLoad.Rows.Count - 1) { tw.WriteLine("Entire row must be entered before Bulk Loading. Row:" + row.Index.ToString() + ", " + row.Cells["FACILITY"].Value + ", " + row.Cells["SECTION"].Value + ", " + row.Cells["DATE_"].Value + ", " + row.Cells["SAMPLE_"].Value); m_bError = true; } continue; } try { srsObjectPCI.Facility = row.Cells["FACILITY"].Value.ToString(); srsObjectPCI.Section = row.Cells["SECTION"].Value.ToString(); srsObjectPCI.Sample = row.Cells["SAMPLE_"].Value.ToString(); srsObjectPCI.Date = Convert.ToDateTime(row.Cells["DATE_"].Value); srsObjectPCI.Method = row.Cells["METHOD_"].Value.ToString(); srsObjectPCI.Type = row.Cells["TYPE_"].Value.ToString(); srsObjectPCI.Area = double.Parse(row.Cells["AREA"].Value.ToString()); srsObjectPCI.Distress = row.Cells["DISTRESS"].Value.ToString(); srsObjectPCI.Severity = row.Cells["SEVERITY"].Value.ToString(); srsObjectPCI.Amount = double.Parse(row.Cells["AMOUNT"].Value.ToString()); } catch (Exception except) { tw.WriteLine("Error: Validating PCI Detail object. " + except.Message + " Row:" + row.Index.ToString() + ", " + row.Cells["FACILITY"].Value + ", " + row.Cells["SECTION"].Value + ", " + row.Cells["DATE_"].Value + ", " + row.Cells["SAMPLE_"].Value); m_bError = true; continue; } if (!Validation.ValidateSection((SRSObject)srsObjectPCI, out strError)) { tw.WriteLine(strError + ", " + row.Cells["FACILITY"].Value + ", " + row.Cells["SECTION"].Value + ", " + row.Cells["DATE_"].Value + ", " + row.Cells["SAMPLE_"].Value); m_bError = true; continue; } if (!Validation.ValidatePCIDetail(srsObjectPCI, out strError)) { tw.WriteLine(strError + ", " + row.Cells["FACILITY"].Value + ", " + row.Cells["SECTION"].Value + ", " + row.Cells["DATE_"].Value + ", " + row.Cells["SAMPLE_"].Value); m_bError = true; continue; } } if (m_bError) { Global.WriteOutput("Errors encountered during validation, please check output file before continuing."); } else { Global.WriteOutput("Validation of PCI Distress complete. No errors or warnings."); } tw.Close(); }