Example #1
0
        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();
        }
Example #2
0
        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();
        }