private static ImportSampleColumnArray SetColInfo(ImportSampleColumnArray cols, string part, bool bioIndicator, int j, List<string> ActivityIDList, List<string> ActivityMediaList, List<string> ActivityStartDateList, List<string> ActivityStartTimeList, List<string> SampPrepList, List<string> LabNameList, List<string> CharacteristicList, List<string> ResultUnitList, List<string> DetectionConditionList, List<string> DetectionLimitUnit, List<string> DilutionList)
        {
            string partUpper = part.ToUpper();

            if (partUpper == "STATION ID") cols.MONLOC_IDCol = j;
            if (ActivityIDList.Contains(partUpper)) cols.ACTIVITY_IDCol = j;
            if (partUpper == "ACTIVITY TYPE CODE") cols.ACT_TYPECol = j;
            if (ActivityMediaList.Contains(partUpper)) cols.ACT_MEDIACol = j;
            if (partUpper == "ACTIVITY SUBMEDIA") cols.ACT_SUBMEDIACol = j;
            if (ActivityStartDateList.Contains(partUpper)) cols.ACTIVITY_START_DTCol = j;
            if (ActivityStartTimeList.Contains(partUpper)) cols.ACTIVITY_START_TIMECol = j;
            if (partUpper == "ACTIVITY END DATE") cols.ACT_END_DTCol = j;
            if (partUpper == "ACTIVITY END TIME") cols.ACT_END_TIMECol = j;
            if (partUpper == "ACTIVITY TIME ZONE") cols.ACT_TIME_ZONECol = j;
            if (partUpper == "RELATIVE DEPTH") cols.RELATIVE_DEPTH_NAMECol = j;
            if (partUpper == "DEPTH MEASURE") cols.ACT_DEPTHHEIGHT_MSRCol = j;
            if (partUpper == "DEPTH MEASURE UNIT") cols.ACT_DEPTHHEIGHT_MSR_UNITCol = j;
            if (partUpper == "TOP DEPTH MEASURE") cols.TOP_DEPTHHEIGHT_MSRCol = j;
            if (partUpper == "TOP DEPTH MEASURE UNIT") cols.TOP_DEPTHHEIGHT_MSR_UNITCol = j;
            if (partUpper == "BOTTOM DEPTH MEASURE") cols.BOT_DEPTHHEIGHT_MSRCol = j;
            if (partUpper == "BOTTOM DEPTH MEASURE UNIT") cols.BOT_DEPTHHEIGHT_MSR_UNITCol = j;
            if (partUpper == "DEPTH REF POINT") cols.DEPTH_REF_POINTCol = j;
            if (partUpper == "ACTIVITY COMMENT") cols.ACT_COMMENTCol = j;
            if (partUpper == "BIO ASSEMBLAGE SAMPLED") { cols.BIO_ASSEMBLAGE_SAMPLEDCol = j; bioIndicator = true; }
            if (partUpper == "BIO DURATION") { cols.BIO_DURATION_MSRCol = j; bioIndicator = true; }
            if (partUpper == "BIO DURATION UNIT") { cols.BIO_DURATION_MSR_UNITCol = j; bioIndicator = true; }
            if (partUpper == "SAMPLING COMPONENT") { cols.BIO_SAMP_COMPONENTCol = j; bioIndicator = true; }
            if (partUpper == "SAMPLING COMPONENT PLACE") { cols.BIO_SAMP_COMPONENT_SEQCol = j; bioIndicator = true; }
            if (partUpper == "REACH LENGTH") { cols.BIO_REACH_LEN_MSRCol = j; bioIndicator = true; }
            if (partUpper == "REACH LENGTH UNIT") { cols.BIO_REACH_LEN_MSR_UNITCol = j; bioIndicator = true; }
            if (partUpper == "REACH WIDTH") { cols.BIO_REACH_WID_MSRCol = j; bioIndicator = true; }
            if (partUpper == "REACH WIDTH UNIT") { cols.BIO_REACH_WID_MSR_UNITCol = j; bioIndicator = true; }
            if (partUpper == "PASS COUNT") { cols.BIO_PASS_COUNTCol = j; bioIndicator = true; }
            if (partUpper == "NET TYPE") { cols.BIO_NET_TYPECol = j; bioIndicator = true; }
            if (partUpper == "NET SURFACE AREA") { cols.BIO_NET_AREA_MSRCol = j; bioIndicator = true; }
            if (partUpper == "SURFACE AREA UNIT") { cols.BIO_NET_AREA_MSR_UNITCol = j; bioIndicator = true; }
            if (partUpper == "NET MESH SIZE") { cols.BIO_NET_MESHSIZE_MSRCol = j; bioIndicator = true; }
            if (partUpper == "MESH SIZE UNIT") { cols.BIO_MESHSIZE_MSR_UNITCol = j; bioIndicator = true; }
            if (partUpper == "BOAT SPEED") { cols.BIO_BOAT_SPEED_MSRCol = j; bioIndicator = true; }
            if (partUpper == "BOAT SPEED UNIT") { cols.BIO_BOAT_SPEED_MSR_UNITCol = j; bioIndicator = true; }
            if (partUpper == "CURRENT SPEED") { cols.BIO_CURR_SPEED_MSRCol = j; bioIndicator = true; }
            if (partUpper == "CURRENT SPEED UNIT") { cols.BIO_CURR_SPEED_MSR_UNITCol = j; bioIndicator = true; }
            if (partUpper == "TOXICITY TEST TYPE") { cols.BIO_TOXICITY_TEST_TYPECol = j; bioIndicator = true; }
            if (partUpper == "COLLECTION METHOD ID") cols.SAMP_COLL_METHOD_IDCol = j;
            if (partUpper == "COLLECTION METHOD CONTEXT") cols.SAMP_COLL_METHOD_CTXCol = j;
            if (partUpper == "COLLECTION EQUIPMENT") cols.SAMP_COLL_EQUIPCol = j;
            if (partUpper == "COLLECTION EQUIPMENT COMMENT") cols.SAMP_COLL_EQUIP_COMMENTCol = j;
            if (SampPrepList.Contains(partUpper)) cols.SAMP_PREP_IDCol = j;
            if (partUpper == "SAMPLE PREP CONTEXT") cols.SAMP_PREP_CTXCol = j;
            if (partUpper == "CONTAINER TYPE") cols.SAMP_PREP_CONT_TYPECol = j;
            if (partUpper == "CONTAINER COLOR") cols.SAMP_PREP_CONT_COLORCol = j;
            if (partUpper == "CHEM PRESERVATIVE USED") cols.SAMP_PREP_CHEM_PRESERVCol = j;
            if (partUpper == "THERMAL PRESERVATIVE USED") cols.SAMP_PREP_THERM_PRESERVCol = j;
            if (partUpper == "TRANSPORT STORAGE DESCRIPTION") cols.SAMP_PREP_STORAGE_DESCCol = j;
            if (partUpper == "DATA LOGGER LINE") cols.DATA_LOGGER_LINECol = j;
            if (DetectionConditionList.Contains(partUpper)) cols.RESULT_DETECT_CONDITIONCol = j;
            if (CharacteristicList.Contains(partUpper)) cols.CHAR_NAMECol = j;
            if (partUpper == "METHOD SPECIATION") cols.METHOD_SPECIATION_NAMECol = j;
            if (partUpper == "SAMPLE FRACTION") cols.RESULT_SAMP_FRACTIONCol = j;
            if (partUpper == "RESULT") cols.RESULT_MSRCol = j;
            if (ResultUnitList.Contains(partUpper)) cols.RESULT_MSR_UNITCol = j;
            if (partUpper == "MEASURE QUALIFIER") cols.RESULT_MSR_QUALCol = j;
            if (partUpper == "RESULT STATUS") cols.RESULT_STATUSCol = j;
            if (partUpper == "STATISTICAL BASE CODE") cols.STATISTIC_BASE_CODECol = j;
            if (partUpper == "RESULT VALUE TYPE") cols.RESULT_VALUE_TYPECol = j;
            if (partUpper == "WEIGHT BASIS") cols.WEIGHT_BASISCol = j;
            if (partUpper == "TIME BASIS") cols.TIME_BASISCol = j;
            if (partUpper == "TEMPERATURE BASIS") cols.TEMP_BASISCol = j;
            if (partUpper == "PARTICLE SIZE BASIS") cols.PARTICLESIZE_BASISCol = j;
            if (partUpper == "PRECISION") cols.PRECISION_VALUECol = j;
            if (partUpper == "BIAS") cols.BIAS_VALUECol = j;
            if (partUpper == "CONFIDENCE INTERVAL") cols.CONFIDENCE_INTERVAL_VALUECol = j;
            if (partUpper == "CONFIDENCE UPPER") cols.UPPER_CONFIDENCE_LIMITCol = j;
            if (partUpper == "CONFIDENCE LOWER") cols.LOWER_CONFIDENCE_LIMITCol = j;
            if (partUpper == "RESULT COMMENTS") cols.RESULT_COMMENTCol = j;
            if (partUpper == "RESULT DEPTH") cols.RESULT_DEPTH_HEIGHT_MSRCol = j;
            if (partUpper == "RESULT DEPTH UNIT") cols.RESULT_DEPTH_HEIGHT_MSR_UNITCol = j;
            if (partUpper == "RESULT DEPTH REF POINT") cols.RESULT_DEPTH_REF_POINTCol = j;
            if (partUpper == "BIO INTENT NAME") { cols.BIO_INTENT_NAMECol = j; bioIndicator = true; }
            if (partUpper == "BIO INDIVIDUAL ID") { cols.BIO_INDIVIDUAL_IDCol = j; bioIndicator = true; }
            if (partUpper == "TAXONOMIC NAME") { cols.TAXON_NameCol = j; bioIndicator = true; }
            if (partUpper == "UNIDENTIFIED SPECIES") { cols.UNIDENT_SPECIES_IDCol = j; bioIndicator = true; }
            if (partUpper == "TISSUE ANATOMY") { cols.TISSUE_ANATOMYCol = j; bioIndicator = true; }
            if (partUpper == "GROUP SUMMARY TOTAL") { cols.GROUP_SUMM_TOTALCol = j; bioIndicator = true; }
            if (partUpper == "GROUP SUMMARY TOTAL UNIT") { cols.GROUP_SUMM_TOTAL_UNITCol = j; bioIndicator = true; }
            if (partUpper == "CELL FORM") { cols.CELL_FORMCol = j; bioIndicator = true; }
            if (partUpper == "CELL SHAPE") { cols.CELL_SHAPECol = j; bioIndicator = true; }
            if (partUpper == "HABIT NAME") { cols.HABIT_NAMECol = j; bioIndicator = true; }
            if (partUpper == "VOLTINISM NAME") { cols.VOLTINISM_NAMECol = j; bioIndicator = true; }
            if (partUpper == "POLLUTION TOLERANCE") { cols.POLL_TOLERANCECol = j; bioIndicator = true; }
            if (partUpper == "POLLUTION TOLERANCE SCALE") { cols.POLL_TOLERANCE_SCALECol = j; bioIndicator = true; }
            if (partUpper == "TROPHIC LEVEL") { cols.TROPHIC_LEVELCol = j; bioIndicator = true; }
            if (partUpper == "FUNCTIONAL FEEDING GROUP") { cols.FEEDING_GROUP1Col = j; bioIndicator = true; }
            if (partUpper == "FUNCTIONAL FEEDING GROUP 2") { cols.FEEDING_GROUP2Col = j; bioIndicator = true; }
            if (partUpper == "FUNCTIONAL FEEDING GROUP 3") { cols.FEEDING_GROUP3Col = j; bioIndicator = true; }
            if (partUpper == "FREQUENCY CLASS") { cols.FREQ_CLASS_CODECol = j; bioIndicator = true; }
            if (partUpper == "FREQUENCY CLASS UNIT") { cols.FREQ_CLASS_UNITCol = j; bioIndicator = true; }
            if (partUpper == "FREQUENCY CLASS UPPER") { cols.FREQ_CLASS_UPPERCol = j; bioIndicator = true; }
            if (partUpper == "FREQUENCY CLASS LOWER") { cols.FREQ_CLASS_LOWERCol = j; bioIndicator = true; }
            if (partUpper == "ANALYTICAL METHOD ID") cols.ANALYTIC_METHOD_IDCol = j;
            if (partUpper == "ANALYTICAL METHOD CONTEXT") cols.ANALYTIC_METHOD_CTXCol = j;
            if (LabNameList.Contains(partUpper)) cols.LAB_NAMECol = j;
            if (partUpper == "ANALYSIS START DATE") cols.LAB_ANALYSIS_START_DTCol = j;
            if (partUpper == "ANALYSIS START TIME") cols.LAB_ANALYSIS_START_TIMECol = j;
            if (partUpper == "ANALYSIS END DATE") cols.LAB_ANALYSIS_END_DTCol = j;
            if (partUpper == "LAB COMMENT CODE") cols.RESULT_LAB_COMMENT_CODECol = j;
            if (partUpper == "METHOD DETECTION LEVEL") cols.METHOD_DETECTION_LEVELCol = j;
            if (partUpper == "LABORATORY REPORTING LEVEL") cols.LAB_REPORTING_LEVELCol = j;
            if (partUpper == "PRACTICAL QUANTITATION LIMIT") cols.PQLCol = j;
            if (partUpper == "LOWER QUANTITATION LIMIT") cols.LOWER_QUANT_LIMITCol = j;
            if (partUpper == "UPPER QUANTITATION LIMIT") cols.UPPER_QUANT_LIMITCol = j;
            if (DetectionLimitUnit.Contains(partUpper)) cols.DETECTION_LIMIT_UNITCol = j;
            if (partUpper == "LAB SAMPLE PREP ID") cols.LAB_SAMP_PREP_IDCol = j;
            if (partUpper == "LAB SAMPLE PREP CONTEXT") cols.LAB_SAMP_PREP_CTXCol = j;
            if (partUpper == "PREPARATION START DATE") cols.LAB_SAMP_PREP_START_DTCol = j;
            if (partUpper == "PREPARATION START TIME") cols.LAB_SAMP_PREP_START_TIMECol = j;
            if (partUpper == "PREPARATION END DATE") cols.LAB_SAMP_PREP_END_DTCol = j;
            if (DilutionList.Contains(partUpper)) cols.DILUTION_FACTORCol = j;
            if (partUpper == "ACTIVITY ID AND TYPE") cols.specialACTIVITY_ID__ACT_TYPECol = j;

            return cols;
        }
Esempio n. 2
0
        private bool ImportSample(string OrgID, int TemplateID, int? ProjectID, string ProjectIDName, string[] rows)
        {
            //delete any previous temporary sample import data
            if (db_WQX.DeleteT_WQX_IMPORT_TEMP_SAMPLE(User.Identity.Name) == 0) { lblMsg.Text = "Unable to proceed with import."; return false; }

            int i = 0;

            //initialize column aray object
            ImportSampleColumnArray cols = new ImportSampleColumnArray();

            //initialize indicators
            bool bioIndicator = false;

            //loop through each record
            foreach (string row in rows)
            {
                char[] delimiters = new char[] { '\t' };   //tab delimiter
                string[] parts = row.Split(delimiters, StringSplitOptions.None); //columns split into parts
                if (parts.Length > 0)
                {
                    //start of field-by-field validation

                    //special logic to read header to determine what is in each column
                    if (i == 0)
                    {
                        int j = 0;
                        foreach (string part in parts)
                        {
                            if (part == "Station ID") cols.MONLOC_IDCol = j;
                            if (part == "Activity ID") cols.ACTIVITY_IDCol = j;
                            if (part == "Activity Type Code") cols.ACT_TYPECol = j;
                            if (part == "Activity Media") cols.ACT_MEDIACol = j;
                            if (part == "Activity Submedia") cols.ACT_SUBMEDIACol = j;
                            if (part == "Activity Start Date") cols.ACTIVITY_START_DTCol = j;
                            if (part == "Activity Start Time") cols.ACTIVITY_START_TIMECol = j;
                            if (part == "Activity End Date") cols.ACT_END_DTCol = j;
                            if (part == "Activity End Time") cols.ACT_END_TIMECol = j;
                            if (part == "Activity Time Zone") cols.ACT_TIME_ZONECol = j;
                            if (part == "Relative Depth") cols.RELATIVE_DEPTH_NAMECol = j;
                            if (part == "Depth Measure") cols.ACT_DEPTHHEIGHT_MSRCol = j;
                            if (part == "Depth Measure Unit") cols.ACT_DEPTHHEIGHT_MSR_UNITCol = j;
                            if (part == "Top Depth Measure") cols.TOP_DEPTHHEIGHT_MSRCol = j;
                            if (part == "Top Depth Measure Unit") cols.TOP_DEPTHHEIGHT_MSR_UNITCol = j;
                            if (part == "Bottom Depth Measure") cols.BOT_DEPTHHEIGHT_MSRCol = j;
                            if (part == "Bottom Depth Measure Unit") cols.BOT_DEPTHHEIGHT_MSR_UNITCol = j;
                            if (part == "Depth Ref Point") cols.DEPTH_REF_POINTCol = j;
                            if (part == "Activity Comment") cols.ACT_COMMENTCol = j;
                            if (part == "Bio Assemblage Sampled") { cols.BIO_ASSEMBLAGE_SAMPLEDCol = j; bioIndicator = true; }
                            if (part == "Bio Duration") { cols.BIO_DURATION_MSRCol = j; bioIndicator = true; }
                            if (part == "Bio Duration Unit") { cols.BIO_DURATION_MSR_UNITCol = j; bioIndicator = true; }
                            if (part == "Sampling Component") { cols.BIO_SAMP_COMPONENTCol = j; bioIndicator = true; }
                            if (part == "Sampling Component Place") { cols.BIO_SAMP_COMPONENT_SEQCol = j; bioIndicator = true; }
                            if (part == "Reach Length") { cols.BIO_REACH_LEN_MSRCol = j; bioIndicator = true; }
                            if (part == "Reach Length Unit") { cols.BIO_REACH_LEN_MSR_UNITCol = j; bioIndicator = true; }
                            if (part == "Reach Width") { cols.BIO_REACH_WID_MSRCol = j; bioIndicator = true; }
                            if (part == "Reach Width Unit") { cols.BIO_REACH_WID_MSR_UNITCol = j; bioIndicator = true; }
                            if (part == "Pass Count") { cols.BIO_PASS_COUNTCol = j; bioIndicator = true; }
                            if (part == "Net Type") { cols.BIO_NET_TYPECol = j; bioIndicator = true; }
                            if (part == "Net Surface Area") { cols.BIO_NET_AREA_MSRCol = j; bioIndicator = true; }
                            if (part == "Surface Area Unit") { cols.BIO_NET_AREA_MSR_UNITCol = j; bioIndicator = true; }
                            if (part == "Net Mesh Size") { cols.BIO_NET_MESHSIZE_MSRCol = j; bioIndicator = true; }
                            if (part == "Mesh Size Unit") { cols.BIO_MESHSIZE_MSR_UNITCol = j; bioIndicator = true; }
                            if (part == "Boat Speed") { cols.BIO_BOAT_SPEED_MSRCol = j; bioIndicator = true; }
                            if (part == "Boat Speed Unit") { cols.BIO_BOAT_SPEED_MSR_UNITCol = j; bioIndicator = true; }
                            if (part == "Current Speed") { cols.BIO_CURR_SPEED_MSRCol = j; bioIndicator = true; }
                            if (part == "Current Speed Unit") { cols.BIO_CURR_SPEED_MSR_UNITCol = j; bioIndicator = true; }
                            if (part == "Toxicity Test Type") { cols.BIO_TOXICITY_TEST_TYPECol = j; bioIndicator = true; }
                            if (part == "Collection Method ID") cols.SAMP_COLL_METHOD_IDCol = j;
                            if (part == "Collection Method Context") cols.SAMP_COLL_METHOD_CTXCol = j;
                            if (part == "Collection Equipment") cols.SAMP_COLL_EQUIPCol = j;
                            if (part == "Collection Equipment Comment") cols.SAMP_COLL_EQUIP_COMMENTCol = j;
                            if (part == "Sample Prep ID") cols.SAMP_PREP_IDCol = j;
                            if (part == "Sample Prep Context") cols.SAMP_PREP_CTXCol = j;
                            if (part == "Container Type") cols.SAMP_PREP_CONT_TYPECol = j;
                            if (part == "Container Color") cols.SAMP_PREP_CONT_COLORCol = j;
                            if (part == "Chem Preservative Used") cols.SAMP_PREP_CHEM_PRESERVCol = j;
                            if (part == "Thermal Preservative Used") cols.SAMP_PREP_THERM_PRESERVCol = j;
                            if (part == "Transport Storage Description") cols.SAMP_PREP_STORAGE_DESCCol = j;

                            if (part == "Data Logger Line") cols.DATA_LOGGER_LINECol = j;
                            if (part == "Result Detection Condition") cols.RESULT_DETECT_CONDITIONCol = j;
                            if (part == "Characteristic") cols.CHAR_NAMECol = j;
                            if (part == "Method Speciation") cols.METHOD_SPECIATION_NAMECol = j;
                            if (part == "Sample Fraction") cols.RESULT_SAMP_FRACTIONCol = j;
                            if (part == "Result") cols.RESULT_MSRCol = j;
                            if (part == "Unit") cols.RESULT_MSR_UNITCol = j;
                            if (part == "Measure Qualifier") cols.RESULT_MSR_QUALCol = j;
                            if (part == "Result Status") cols.RESULT_STATUSCol = j;
                            if (part == "Statistical Base Code") cols.STATISTIC_BASE_CODECol = j;
                            if (part == "Result Value Type") cols.RESULT_VALUE_TYPECol = j;
                            if (part == "Weight Basis") cols.WEIGHT_BASISCol = j;
                            if (part == "Time Basis") cols.TIME_BASISCol = j;
                            if (part == "Temperature Basis") cols.TEMP_BASISCol = j;
                            if (part == "Particle Size Basis") cols.PARTICLESIZE_BASISCol = j;
                            if (part == "Precision") cols.PRECISION_VALUECol = j;
                            if (part == "Bias") cols.BIAS_VALUECol = j;
                            if (part == "Confidence Interval") cols.CONFIDENCE_INTERVAL_VALUECol = j;
                            if (part == "Confidence Upper") cols.UPPER_CONFIDENCE_LIMITCol = j;
                            if (part == "Confidence Lower") cols.LOWER_CONFIDENCE_LIMITCol = j;
                            if (part == "Result Comments") cols.RESULT_COMMENTCol = j;
                            if (part == "Result Depth") cols.RESULT_DEPTH_HEIGHT_MSRCol = j;
                            if (part == "Result Depth Unit") cols.RESULT_DEPTH_HEIGHT_MSR_UNITCol = j;
                            if (part == "Result Depth Ref Point") cols.RESULT_DEPTH_REF_POINTCol = j;
                            if (part == "Bio Intent Name") { cols.BIO_INTENT_NAMECol = j; bioIndicator = true; }
                            if (part == "Bio Individual ID") { cols.BIO_INDIVIDUAL_IDCol = j; bioIndicator = true; }
                            if (part == "Taxonomic Name") { cols.TAXON_NameCol = j; bioIndicator = true; }
                            if (part == "Unidentified Species") { cols.UNIDENT_SPECIES_IDCol = j; bioIndicator = true; }
                            if (part == "Tissue Anatomy") { cols.TISSUE_ANATOMYCol = j; bioIndicator = true; }
                            if (part == "Group Summary Total") { cols.GROUP_SUMM_TOTALCol = j; bioIndicator = true; }
                            if (part == "Group Summary Total Unit") { cols.GROUP_SUMM_TOTAL_UNITCol = j; bioIndicator = true; }
                            if (part == "Cell Form") { cols.CELL_FORMCol = j; bioIndicator = true; }
                            if (part == "Cell Shape") { cols.CELL_SHAPECol = j; bioIndicator = true; }
                            if (part == "Habit Name") { cols.HABIT_NAMECol = j; bioIndicator = true; }
                            if (part == "Voltinism Name") { cols.VOLTINISM_NAMECol = j; bioIndicator = true; }
                            if (part == "Pollution Tolerance") { cols.POLL_TOLERANCECol = j; bioIndicator = true; }
                            if (part == "Pollution Tolerance Scale") { cols.POLL_TOLERANCE_SCALECol = j; bioIndicator = true; }
                            if (part == "Trophic Level") { cols.TROPHIC_LEVELCol = j; bioIndicator = true; }
                            if (part == "Functional Feeding Group") { cols.FEEDING_GROUP1Col = j; bioIndicator = true; }
                            if (part == "Functional Feeding Group 2") { cols.FEEDING_GROUP2Col = j; bioIndicator = true; }
                            if (part == "Functional Feeding Group 3") { cols.FEEDING_GROUP3Col = j; bioIndicator = true; }
                            if (part == "Frequency Class") { cols.FREQ_CLASS_CODECol = j; bioIndicator = true; }
                            if (part == "Frequency Class Unit") { cols.FREQ_CLASS_UNITCol = j; bioIndicator = true; }
                            if (part == "Frequency Class Upper") { cols.FREQ_CLASS_UPPERCol = j; bioIndicator = true; }
                            if (part == "Frequency Class Lower") { cols.FREQ_CLASS_LOWERCol = j; bioIndicator = true; }
                            if (part == "Analytical Method ID") cols.ANALYTIC_METHOD_IDCol = j;
                            if (part == "Analytical Method Context") cols.ANALYTIC_METHOD_CTXCol = j;
                            if (part == "Lab Name") cols.LAB_NAMECol = j;
                            if (part == "Analysis Start Date") cols.LAB_ANALYSIS_START_DTCol = j;
                            if (part == "Analysis End Date") cols.LAB_ANALYSIS_END_DTCol = j;
                            if (part == "Lab Comment Code") cols.RESULT_LAB_COMMENT_CODECol = j;
                            if (part == "Method Detection Level") cols.METHOD_DETECTION_LEVELCol = j;
                            if (part == "Laboratory Reporting Level") cols.LAB_REPORTING_LEVELCol = j;
                            if (part == "Practical Quantitation Limit") cols.PQLCol = j;
                            if (part == "Lower Quantitation Limit") cols.LOWER_QUANT_LIMITCol = j;
                            if (part == "Upper Quantitation Limit") cols.UPPER_QUANT_LIMITCol = j;
                            if (part == "Detection Threshold Limit Unit") cols.DETECTION_LIMIT_UNITCol = j;
                            if (part == "Lab Sample Prep ID") cols.LAB_SAMP_PREP_IDCol = j;
                            if (part == "Lab Sample Prep Context") cols.LAB_SAMP_PREP_CTXCol = j;
                            if (part == "Preparation Start Date") cols.LAB_SAMP_PREP_START_DTCol = j;
                            if (part == "Preparation End Date") cols.LAB_SAMP_PREP_END_DTCol = j;
                            if (part == "Dilution Factor") cols.DILUTION_FACTORCol = j;

                            j = j + 1;
                        }
                    }
                    else
                    {
                        //****************** RESULT COLUMN VALIDATION ************************
                        if (cols.MONLOC_IDCol == null) { lblMsg.Text = "No column with header of 'Station ID' found. Make sure you include the column header row when pasting data."; return false; }
                        if (cols.ACTIVITY_IDCol == null) { lblMsg.Text = "No column with header of 'Activity ID' found. Make sure you include the column header row when pasting data."; return false; }
                        if (cols.ACTIVITY_START_DTCol == null) { lblMsg.Text = "No column with header of 'Activity Start Date' found. Make sure you include the column header row when pasting data."; return false; }
                        //if (cols.RESULTCol == null) { lblMsg.Text = "No column with header of 'Result' found. Make sure you include the column header row when pasting data."; return false; }
                        //if (cols.CHAR_NAMECol == null) { lblMsg.Text = "No column with header of 'Characteristic' found. Make sure you include the column header row when pasting data."; return false; }
                        //****************** END RESULT COLUMN VALIDATION ************************

                        int TempImportSampID = db_WQX.InsertOrUpdateWQX_IMPORT_TEMP_SAMPLE(null, User.Identity.Name, OrgID, ProjectID, ProjectIDName, null,
                            (cols.MONLOC_IDCol != null ? parts[cols.MONLOC_IDCol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.ACTIVITY_IDCol != null ? parts[cols.ACTIVITY_IDCol.ConvertOrDefault<int>()] : null),
                            (cols.ACT_TYPECol != null ? parts[cols.ACT_TYPECol.ConvertOrDefault<int>()] : null),
                            (cols.ACT_MEDIACol != null ? parts[cols.ACT_MEDIACol.ConvertOrDefault<int>()] : null),
                            (cols.ACT_SUBMEDIACol != null ? parts[cols.ACT_SUBMEDIACol.ConvertOrDefault<int>()] : null),
                            ((cols.ACTIVITY_START_DTCol != null ? parts[cols.ACTIVITY_START_DTCol.ConvertOrDefault<int>()] : null) + " " + (cols.ACTIVITY_START_TIMECol != null ? parts[cols.ACTIVITY_START_TIMECol.ConvertOrDefault<int>()] : null)).ConvertOrDefault<DateTime?>(),
                            ((cols.ACT_END_DTCol != null ? parts[cols.ACT_END_DTCol.ConvertOrDefault<int>()] : null) + " " + (cols.ACT_END_TIMECol != null ? parts[cols.ACT_END_TIMECol.ConvertOrDefault<int>()] : null)).ConvertOrDefault<DateTime?>(),
                            (cols.ACT_TIME_ZONECol != null ? parts[cols.ACT_TIME_ZONECol.ConvertOrDefault<int>()] : null),
                            (cols.RELATIVE_DEPTH_NAMECol != null ? parts[cols.RELATIVE_DEPTH_NAMECol.ConvertOrDefault<int>()] : null),
                            (cols.ACT_DEPTHHEIGHT_MSRCol != null ? parts[cols.ACT_DEPTHHEIGHT_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.ACT_DEPTHHEIGHT_MSR_UNITCol != null ? parts[cols.ACT_DEPTHHEIGHT_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.TOP_DEPTHHEIGHT_MSRCol != null ? parts[cols.TOP_DEPTHHEIGHT_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.TOP_DEPTHHEIGHT_MSR_UNITCol != null ? parts[cols.TOP_DEPTHHEIGHT_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BOT_DEPTHHEIGHT_MSRCol != null ? parts[cols.BOT_DEPTHHEIGHT_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BOT_DEPTHHEIGHT_MSR_UNITCol != null ? parts[cols.BOT_DEPTHHEIGHT_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.DEPTH_REF_POINTCol != null ? parts[cols.DEPTH_REF_POINTCol.ConvertOrDefault<int>()] : null),
                            (cols.ACT_COMMENTCol != null ? parts[cols.ACT_COMMENTCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_ASSEMBLAGE_SAMPLEDCol != null ? parts[cols.BIO_ASSEMBLAGE_SAMPLEDCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_DURATION_MSRCol != null ? parts[cols.BIO_DURATION_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_DURATION_MSR_UNITCol != null ? parts[cols.BIO_DURATION_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_SAMP_COMPONENTCol != null ? parts[cols.BIO_SAMP_COMPONENTCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_SAMP_COMPONENT_SEQCol != null ? parts[cols.BIO_SAMP_COMPONENT_SEQCol.ConvertOrDefault<int>()].ConvertOrDefault<int?>() : null),
                            (cols.BIO_REACH_LEN_MSRCol != null ? parts[cols.BIO_REACH_LEN_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_REACH_LEN_MSR_UNITCol != null ? parts[cols.BIO_REACH_LEN_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_REACH_WID_MSRCol != null ? parts[cols.BIO_REACH_WID_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_REACH_WID_MSR_UNITCol != null ? parts[cols.BIO_REACH_WID_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_PASS_COUNTCol != null ? parts[cols.BIO_PASS_COUNTCol.ConvertOrDefault<int>()].ConvertOrDefault<int?>() : null),
                            (cols.BIO_NET_TYPECol != null ? parts[cols.BIO_NET_TYPECol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_NET_AREA_MSRCol != null ? parts[cols.BIO_NET_AREA_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_NET_AREA_MSR_UNITCol != null ? parts[cols.BIO_NET_AREA_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_NET_MESHSIZE_MSRCol != null ? parts[cols.BIO_NET_MESHSIZE_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_MESHSIZE_MSR_UNITCol != null ? parts[cols.BIO_MESHSIZE_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_BOAT_SPEED_MSRCol != null ? parts[cols.BIO_BOAT_SPEED_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_BOAT_SPEED_MSR_UNITCol != null ? parts[cols.BIO_BOAT_SPEED_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_CURR_SPEED_MSRCol != null ? parts[cols.BIO_CURR_SPEED_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_CURR_SPEED_MSR_UNITCol != null ? parts[cols.BIO_CURR_SPEED_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_TOXICITY_TEST_TYPECol != null ? parts[cols.BIO_TOXICITY_TEST_TYPECol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.SAMP_COLL_METHOD_IDCol != null ? parts[cols.SAMP_COLL_METHOD_IDCol.ConvertOrDefault<int>()] : null),
                            (cols.SAMP_COLL_METHOD_CTXCol != null ? parts[cols.SAMP_COLL_METHOD_CTXCol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.SAMP_COLL_EQUIPCol != null ? parts[cols.SAMP_COLL_EQUIPCol.ConvertOrDefault<int>()] : null),
                            (cols.SAMP_COLL_EQUIP_COMMENTCol != null ? parts[cols.SAMP_COLL_EQUIP_COMMENTCol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.LAB_SAMP_PREP_IDCol != null ? parts[cols.LAB_SAMP_PREP_IDCol.ConvertOrDefault<int>()] : null),
                            (cols.LAB_SAMP_PREP_CTXCol != null ? parts[cols.LAB_SAMP_PREP_CTXCol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.SAMP_PREP_CONT_TYPECol != null ? parts[cols.SAMP_PREP_CONT_TYPECol.ConvertOrDefault<int>()] : null),
                            (cols.SAMP_PREP_CONT_COLORCol != null ? parts[cols.SAMP_PREP_CONT_COLORCol.ConvertOrDefault<int>()] : null),
                            (cols.SAMP_PREP_CHEM_PRESERVCol != null ? parts[cols.SAMP_PREP_CHEM_PRESERVCol.ConvertOrDefault<int>()] : null),
                            (cols.SAMP_PREP_THERM_PRESERVCol != null ? parts[cols.SAMP_PREP_THERM_PRESERVCol.ConvertOrDefault<int>()] : null),
                            (cols.SAMP_PREP_STORAGE_DESCCol != null ? parts[cols.SAMP_PREP_STORAGE_DESCCol.ConvertOrDefault<int>()] : null),
                            "P", "", bioIndicator, false);

                        int TempImportResultID = db_WQX.InsertOrUpdateWQX_IMPORT_TEMP_RESULT(null, TempImportSampID, null,
                            (cols.DATA_LOGGER_LINECol != null ? parts[cols.DATA_LOGGER_LINECol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_DETECT_CONDITIONCol != null ? parts[cols.RESULT_DETECT_CONDITIONCol.ConvertOrDefault<int>()] : null),
                            (cols.CHAR_NAMECol != null ? parts[cols.CHAR_NAMECol.ConvertOrDefault<int>()] : null),
                            (cols.METHOD_SPECIATION_NAMECol != null ? parts[cols.METHOD_SPECIATION_NAMECol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_SAMP_FRACTIONCol != null ? parts[cols.RESULT_SAMP_FRACTIONCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_MSRCol != null ? parts[cols.RESULT_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_MSR_UNITCol != null ? parts[cols.RESULT_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_MSR_QUALCol != null ? parts[cols.RESULT_MSR_QUALCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_STATUSCol != null ? parts[cols.RESULT_STATUSCol.ConvertOrDefault<int>()] : null),
                            (cols.STATISTIC_BASE_CODECol != null ? parts[cols.STATISTIC_BASE_CODECol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_VALUE_TYPECol != null ? parts[cols.RESULT_VALUE_TYPECol.ConvertOrDefault<int>()] : null),
                            (cols.WEIGHT_BASISCol != null ? parts[cols.WEIGHT_BASISCol.ConvertOrDefault<int>()] : null),
                            (cols.TIME_BASISCol != null ? parts[cols.TIME_BASISCol.ConvertOrDefault<int>()] : null),
                            (cols.TEMP_BASISCol != null ? parts[cols.TEMP_BASISCol.ConvertOrDefault<int>()] : null),
                            (cols.PARTICLESIZE_BASISCol != null ? parts[cols.PARTICLESIZE_BASISCol.ConvertOrDefault<int>()] : null),
                            (cols.PRECISION_VALUECol != null ? parts[cols.PRECISION_VALUECol.ConvertOrDefault<int>()] : null),
                            (cols.BIAS_VALUECol != null ? parts[cols.BIAS_VALUECol.ConvertOrDefault<int>()] : null),
                            (cols.CONFIDENCE_INTERVAL_VALUECol != null ? parts[cols.CONFIDENCE_INTERVAL_VALUECol.ConvertOrDefault<int>()] : null),
                            (cols.UPPER_CONFIDENCE_LIMITCol != null ? parts[cols.UPPER_CONFIDENCE_LIMITCol.ConvertOrDefault<int>()] : null),
                            (cols.LOWER_CONFIDENCE_LIMITCol != null ? parts[cols.LOWER_CONFIDENCE_LIMITCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_COMMENTCol != null ? parts[cols.RESULT_COMMENTCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_DEPTH_HEIGHT_MSRCol != null ? parts[cols.RESULT_DEPTH_HEIGHT_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_DEPTH_HEIGHT_MSR_UNITCol != null ? parts[cols.RESULT_DEPTH_HEIGHT_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_DEPTH_REF_POINTCol != null ? parts[cols.RESULT_DEPTH_REF_POINTCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_INTENT_NAMECol != null ? parts[cols.BIO_INTENT_NAMECol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_INDIVIDUAL_IDCol != null ? parts[cols.BIO_INDIVIDUAL_IDCol.ConvertOrDefault<int>()] : null),
                            (cols.TAXON_NameCol != null ? parts[cols.TAXON_NameCol.ConvertOrDefault<int>()] : null),
                            (cols.UNIDENT_SPECIES_IDCol != null ? parts[cols.UNIDENT_SPECIES_IDCol.ConvertOrDefault<int>()] : null),
                            (cols.TISSUE_ANATOMYCol != null ? parts[cols.TISSUE_ANATOMYCol.ConvertOrDefault<int>()] : null),
                            (cols.GROUP_SUMM_TOTALCol != null ? parts[cols.GROUP_SUMM_TOTALCol.ConvertOrDefault<int>()] : null),
                            (cols.GROUP_SUMM_TOTAL_UNITCol != null ? parts[cols.GROUP_SUMM_TOTAL_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.CELL_FORMCol != null ? parts[cols.CELL_FORMCol.ConvertOrDefault<int>()] : null),
                            (cols.CELL_SHAPECol != null ? parts[cols.CELL_SHAPECol.ConvertOrDefault<int>()] : null),
                            (cols.HABIT_NAMECol != null ? parts[cols.HABIT_NAMECol.ConvertOrDefault<int>()] : null),
                            (cols.VOLTINISM_NAMECol != null ? parts[cols.VOLTINISM_NAMECol.ConvertOrDefault<int>()] : null),
                            (cols.POLL_TOLERANCECol != null ? parts[cols.POLL_TOLERANCECol.ConvertOrDefault<int>()] : null),
                            (cols.POLL_TOLERANCE_SCALECol != null ? parts[cols.POLL_TOLERANCE_SCALECol.ConvertOrDefault<int>()] : null),
                            (cols.TROPHIC_LEVELCol != null ? parts[cols.TROPHIC_LEVELCol.ConvertOrDefault<int>()] : null),
                            (cols.FEEDING_GROUP1Col != null ? parts[cols.FEEDING_GROUP1Col.ConvertOrDefault<int>()] : null),
                            (cols.FEEDING_GROUP2Col != null ? parts[cols.FEEDING_GROUP2Col.ConvertOrDefault<int>()] : null),
                            (cols.FEEDING_GROUP3Col != null ? parts[cols.FEEDING_GROUP3Col.ConvertOrDefault<int>()] : null),
                            (cols.FREQ_CLASS_CODECol != null ? parts[cols.FREQ_CLASS_CODECol.ConvertOrDefault<int>()] : null),
                            (cols.FREQ_CLASS_UNITCol != null ? parts[cols.FREQ_CLASS_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.FREQ_CLASS_UPPERCol != null ? parts[cols.FREQ_CLASS_UPPERCol.ConvertOrDefault<int>()] : null),
                            (cols.FREQ_CLASS_LOWERCol != null ? parts[cols.FREQ_CLASS_LOWERCol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.ANALYTIC_METHOD_IDCol != null ? parts[cols.ANALYTIC_METHOD_IDCol.ConvertOrDefault<int>()] : null),
                            (cols.ANALYTIC_METHOD_CTXCol != null ? parts[cols.ANALYTIC_METHOD_CTXCol.ConvertOrDefault<int>()] : null),
                            (cols.ANALYTIC_METHOD_NAMECol != null ? parts[cols.ANALYTIC_METHOD_NAMECol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.LAB_NAMECol != null ? parts[cols.LAB_NAMECol.ConvertOrDefault<int>()] : null),
                            (cols.LAB_ANALYSIS_START_DTCol != null ? parts[cols.LAB_ANALYSIS_START_DTCol.ConvertOrDefault<int>()] : null).ConvertOrDefault<DateTime?>(),
                            (cols.LAB_ANALYSIS_END_DTCol != null ? parts[cols.LAB_ANALYSIS_END_DTCol.ConvertOrDefault<int>()] : null).ConvertOrDefault<DateTime?>(),
                            (cols.LAB_ANALYSIS_TIMEZONECol != null ? parts[cols.LAB_ANALYSIS_TIMEZONECol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_LAB_COMMENT_CODECol != null ? parts[cols.RESULT_LAB_COMMENT_CODECol.ConvertOrDefault<int>()] : null),
                            (cols.METHOD_DETECTION_LEVELCol != null ? parts[cols.METHOD_DETECTION_LEVELCol.ConvertOrDefault<int>()] : null),
                            (cols.LAB_REPORTING_LEVELCol != null ? parts[cols.LAB_REPORTING_LEVELCol.ConvertOrDefault<int>()] : null),
                            (cols.PQLCol != null ? parts[cols.PQLCol.ConvertOrDefault<int>()] : null),
                            (cols.LOWER_QUANT_LIMITCol != null ? parts[cols.LOWER_QUANT_LIMITCol.ConvertOrDefault<int>()] : null),
                            (cols.UPPER_QUANT_LIMITCol != null ? parts[cols.UPPER_QUANT_LIMITCol.ConvertOrDefault<int>()] : null),
                            (cols.DETECTION_LIMIT_UNITCol != null ? parts[cols.DETECTION_LIMIT_UNITCol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.LAB_SAMP_PREP_IDCol != null ? parts[cols.LAB_SAMP_PREP_IDCol.ConvertOrDefault<int>()] : null),
                            (cols.LAB_SAMP_PREP_CTXCol != null ? parts[cols.LAB_SAMP_PREP_CTXCol.ConvertOrDefault<int>()] : null),
                            (cols.LAB_SAMP_PREP_START_DTCol != null ? parts[cols.LAB_SAMP_PREP_START_DTCol.ConvertOrDefault<int>()] : null).ConvertOrDefault<DateTime?>(),
                            (cols.LAB_SAMP_PREP_END_DTCol != null ? parts[cols.LAB_SAMP_PREP_END_DTCol.ConvertOrDefault<int>()] : null).ConvertOrDefault<DateTime?>(),
                            (cols.DILUTION_FACTORCol != null ? parts[cols.DILUTION_FACTORCol.ConvertOrDefault<int>()] : null),
                            "P", "", bioIndicator, OrgID, false);

                    }

                }

                i = i + 1;
            }

            if (i > 1)  //can only continue if 2 rows (1 plus 1 header) are imported
                Response.Redirect("~/App_Pages/Secure/WQXImportSample.aspx");
            else
            {
                lblMsg.Text = "No valid data found. You must include column headers.";
                return false;
            }

            return true;
        }
        private bool ImportSample(string OrgID, int TemplateID, int? ProjectID, string ProjectIDName, string[] rows)
        {
            //delete any previous temporary sample import data
            if (db_WQX.DeleteT_WQX_IMPORT_TEMP_SAMPLE(User.Identity.Name) == 0) { lblMsg.Text = "Unable to proceed with import."; return false; }

            int i = 0;

            //initialize column array object
            ImportSampleColumnArray cols = new ImportSampleColumnArray();

            //initialize translation object
            TranslateArray trans = new TranslateArray
            {
                MONLOC_IDTrans = db_WQX.GetWQX_IMPORT_TRANSLATE_byColName(OrgID, "Station ID"),
                ACT_TYPETrans = db_WQX.GetWQX_IMPORT_TRANSLATE_byColName(OrgID, "Activity Type Code"),
                ACT_MEDIATrans = db_WQX.GetWQX_IMPORT_TRANSLATE_byColName(OrgID, "Activity Media"),
                ACT_SUBMEDIATrans = db_WQX.GetWQX_IMPORT_TRANSLATE_byColName(OrgID, "Activity Submedia")
            };

            //initialize indicators
            bool bioIndicator = false;

            //loop through each record
            foreach (string row in rows)
            {
                char[] delimiters = new char[] { '\t' };   //define tab delimiter
                string[] parts = row.Split(delimiters, StringSplitOptions.None); //split row into parts (columns)
                if (parts.Length > 0)
                {
                    //**********************************************************
                    //HEADER ROW - LOGIC TO DETERMING WHAT IS IN EACH COLUMN
                    //**********************************************************
                    if (i == 0)
                    {
                        int j = 0;  //j is the header column index

                        //For columns that support aliases, get the array of alias names
                        List<string> ActivityIDList = db_WQX.GetWQX_IMPORT_COL_ALIAS_byField("Activity ID");
                        List<string> ActivityMediaList = db_WQX.GetWQX_IMPORT_COL_ALIAS_byField("Activity Media");
                        List<string> ActivityStartDateList = db_WQX.GetWQX_IMPORT_COL_ALIAS_byField("Activity Start Date");
                        List<string> ActivityStartTimeList = db_WQX.GetWQX_IMPORT_COL_ALIAS_byField("Activity Start Time");
                        List<string> SampPrepList = db_WQX.GetWQX_IMPORT_COL_ALIAS_byField("Sample Prep ID");
                        List<string> LabNameList = db_WQX.GetWQX_IMPORT_COL_ALIAS_byField("Lab Name");
                        List<string> CharacteristicList = db_WQX.GetWQX_IMPORT_COL_ALIAS_byField("Characteristic");
                        List<string> ResultUnitList = db_WQX.GetWQX_IMPORT_COL_ALIAS_byField("Unit");
                        List<string> DetectionConditionList = db_WQX.GetWQX_IMPORT_COL_ALIAS_byField("Result Detection Condition");
                        List<string> DetectionLimitUnit = db_WQX.GetWQX_IMPORT_COL_ALIAS_byField("Detection Threshold Limit Unit");
                        List<string> DilutionList = db_WQX.GetWQX_IMPORT_COL_ALIAS_byField("Dilution Factor");

                        //loop through every column in the header row
                        foreach (string part in parts)
                        {
                            SetColInfo(cols, part, bioIndicator, j, ActivityIDList, ActivityMediaList, ActivityStartDateList, ActivityStartTimeList, SampPrepList, LabNameList, CharacteristicList, ResultUnitList, DetectionConditionList, DetectionLimitUnit, DilutionList);
                            j = j + 1;
                        }

                        //temp fix for biological monitoring
                        if (cols.BIO_ASSEMBLAGE_SAMPLEDCol != null || cols.TAXON_NameCol != null || cols.TISSUE_ANATOMYCol != null)
                            bioIndicator = true;
                    }
                    //**********************************************************
                    //NOT HEADER ROW - READING IN VALUES
                    //**********************************************************
                    else
                    {
                        //****************** RESULT COLUMN VALIDATION ************************
                        if (cols.MONLOC_IDCol == null) { lblMsg.Text = "No column with header of 'Station ID' found. Make sure you include the column header row when pasting data."; return false; }
                        if (cols.ACTIVITY_IDCol == null && cols.specialACTIVITY_ID__ACT_TYPECol == null) { lblMsg.Text = "No column with header of 'Activity ID' found. Make sure you include the column header row when pasting data."; return false; }
                        if (cols.ACTIVITY_START_DTCol == null) { lblMsg.Text = "No column with header of 'Activity Start Date' found. Make sure you include the column header row when pasting data."; return false; }
                        //if (cols.RESULTCol == null) { lblMsg.Text = "No column with header of 'Result' found. Make sure you include the column header row when pasting data."; return false; }
                        //if (cols.CHAR_NAMECol == null) { lblMsg.Text = "No column with header of 'Characteristic' found. Make sure you include the column header row when pasting data."; return false; }
                        //****************** END RESULT COLUMN VALIDATION ************************

                        //import sample record
                        int TempImportSampID = db_WQX.InsertOrUpdateWQX_IMPORT_TEMP_SAMPLE(null, User.Identity.Name, OrgID, ProjectID, ProjectIDName, null,
                            (cols.MONLOC_IDCol != null ? TranslateField(parts[cols.MONLOC_IDCol.ConvertOrDefault<int>()], trans.MONLOC_IDTrans) : null),
                            null,
                            (cols.ACTIVITY_IDCol != null ? parts[cols.ACTIVITY_IDCol.ConvertOrDefault<int>()] : null),
                            (cols.ACT_TYPECol != null ? TranslateField(parts[cols.ACT_TYPECol.ConvertOrDefault<int>()], trans.ACT_TYPETrans) : null),
                            (cols.ACT_MEDIACol != null ? TranslateField(parts[cols.ACT_MEDIACol.ConvertOrDefault<int>()], trans.ACT_MEDIATrans) : null),
                            (cols.ACT_SUBMEDIACol != null ? TranslateField(parts[cols.ACT_SUBMEDIACol.ConvertOrDefault<int>()], trans.ACT_SUBMEDIATrans) : null),
                            ((cols.ACTIVITY_START_DTCol != null ? parts[cols.ACTIVITY_START_DTCol.ConvertOrDefault<int>()] : null) + " " + (cols.ACTIVITY_START_TIMECol != null ? parts[cols.ACTIVITY_START_TIMECol.ConvertOrDefault<int>()] : null)).ConvertOrDefault<DateTime?>(),
                            ((cols.ACT_END_DTCol != null ? parts[cols.ACT_END_DTCol.ConvertOrDefault<int>()] : null) + " " + (cols.ACT_END_TIMECol != null ? parts[cols.ACT_END_TIMECol.ConvertOrDefault<int>()] : null)).ConvertOrDefault<DateTime?>(),
                            (cols.ACT_TIME_ZONECol != null ? parts[cols.ACT_TIME_ZONECol.ConvertOrDefault<int>()] : null),
                            (cols.RELATIVE_DEPTH_NAMECol != null ? parts[cols.RELATIVE_DEPTH_NAMECol.ConvertOrDefault<int>()] : null),
                            (cols.ACT_DEPTHHEIGHT_MSRCol != null ? parts[cols.ACT_DEPTHHEIGHT_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.ACT_DEPTHHEIGHT_MSR_UNITCol != null ? parts[cols.ACT_DEPTHHEIGHT_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.TOP_DEPTHHEIGHT_MSRCol != null ? parts[cols.TOP_DEPTHHEIGHT_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.TOP_DEPTHHEIGHT_MSR_UNITCol != null ? parts[cols.TOP_DEPTHHEIGHT_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BOT_DEPTHHEIGHT_MSRCol != null ? parts[cols.BOT_DEPTHHEIGHT_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BOT_DEPTHHEIGHT_MSR_UNITCol != null ? parts[cols.BOT_DEPTHHEIGHT_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.DEPTH_REF_POINTCol != null ? parts[cols.DEPTH_REF_POINTCol.ConvertOrDefault<int>()] : null),
                            (cols.ACT_COMMENTCol != null ? parts[cols.ACT_COMMENTCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_ASSEMBLAGE_SAMPLEDCol != null ? parts[cols.BIO_ASSEMBLAGE_SAMPLEDCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_DURATION_MSRCol != null ? parts[cols.BIO_DURATION_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_DURATION_MSR_UNITCol != null ? parts[cols.BIO_DURATION_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_SAMP_COMPONENTCol != null ? parts[cols.BIO_SAMP_COMPONENTCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_SAMP_COMPONENT_SEQCol != null ? parts[cols.BIO_SAMP_COMPONENT_SEQCol.ConvertOrDefault<int>()].ConvertOrDefault<int?>() : null),
                            (cols.BIO_REACH_LEN_MSRCol != null ? parts[cols.BIO_REACH_LEN_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_REACH_LEN_MSR_UNITCol != null ? parts[cols.BIO_REACH_LEN_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_REACH_WID_MSRCol != null ? parts[cols.BIO_REACH_WID_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_REACH_WID_MSR_UNITCol != null ? parts[cols.BIO_REACH_WID_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_PASS_COUNTCol != null ? parts[cols.BIO_PASS_COUNTCol.ConvertOrDefault<int>()].ConvertOrDefault<int?>() : null),
                            (cols.BIO_NET_TYPECol != null ? parts[cols.BIO_NET_TYPECol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_NET_AREA_MSRCol != null ? parts[cols.BIO_NET_AREA_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_NET_AREA_MSR_UNITCol != null ? parts[cols.BIO_NET_AREA_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_NET_MESHSIZE_MSRCol != null ? parts[cols.BIO_NET_MESHSIZE_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_MESHSIZE_MSR_UNITCol != null ? parts[cols.BIO_MESHSIZE_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_BOAT_SPEED_MSRCol != null ? parts[cols.BIO_BOAT_SPEED_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_BOAT_SPEED_MSR_UNITCol != null ? parts[cols.BIO_BOAT_SPEED_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_CURR_SPEED_MSRCol != null ? parts[cols.BIO_CURR_SPEED_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_CURR_SPEED_MSR_UNITCol != null ? parts[cols.BIO_CURR_SPEED_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_TOXICITY_TEST_TYPECol != null ? parts[cols.BIO_TOXICITY_TEST_TYPECol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.SAMP_COLL_METHOD_IDCol != null ? parts[cols.SAMP_COLL_METHOD_IDCol.ConvertOrDefault<int>()] : null),
                            (cols.SAMP_COLL_METHOD_CTXCol != null ? parts[cols.SAMP_COLL_METHOD_CTXCol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.SAMP_COLL_EQUIPCol != null ? parts[cols.SAMP_COLL_EQUIPCol.ConvertOrDefault<int>()] : null),
                            (cols.SAMP_COLL_EQUIP_COMMENTCol != null ? parts[cols.SAMP_COLL_EQUIP_COMMENTCol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.LAB_SAMP_PREP_IDCol != null ? parts[cols.LAB_SAMP_PREP_IDCol.ConvertOrDefault<int>()] : null),
                            (cols.LAB_SAMP_PREP_CTXCol != null ? parts[cols.LAB_SAMP_PREP_CTXCol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.SAMP_PREP_CONT_TYPECol != null ? parts[cols.SAMP_PREP_CONT_TYPECol.ConvertOrDefault<int>()] : null),
                            (cols.SAMP_PREP_CONT_COLORCol != null ? parts[cols.SAMP_PREP_CONT_COLORCol.ConvertOrDefault<int>()] : null),
                            (cols.SAMP_PREP_CHEM_PRESERVCol != null ? parts[cols.SAMP_PREP_CHEM_PRESERVCol.ConvertOrDefault<int>()] : null),
                            (cols.SAMP_PREP_THERM_PRESERVCol != null ? parts[cols.SAMP_PREP_THERM_PRESERVCol.ConvertOrDefault<int>()] : null),
                            (cols.SAMP_PREP_STORAGE_DESCCol != null ? parts[cols.SAMP_PREP_STORAGE_DESCCol.ConvertOrDefault<int>()] : null),
                            "P", "", bioIndicator, false);

                        //import result record
                        int TempImportResultID = db_WQX.InsertOrUpdateWQX_IMPORT_TEMP_RESULT(null, TempImportSampID, null,
                            (cols.DATA_LOGGER_LINECol != null ? parts[cols.DATA_LOGGER_LINECol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_DETECT_CONDITIONCol != null ? parts[cols.RESULT_DETECT_CONDITIONCol.ConvertOrDefault<int>()] : null),
                            (cols.CHAR_NAMECol != null ? parts[cols.CHAR_NAMECol.ConvertOrDefault<int>()] : null),
                            (cols.METHOD_SPECIATION_NAMECol != null ? parts[cols.METHOD_SPECIATION_NAMECol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_SAMP_FRACTIONCol != null ? parts[cols.RESULT_SAMP_FRACTIONCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_MSRCol != null ? parts[cols.RESULT_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_MSR_UNITCol != null ? parts[cols.RESULT_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_MSR_QUALCol != null ? parts[cols.RESULT_MSR_QUALCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_STATUSCol != null ? parts[cols.RESULT_STATUSCol.ConvertOrDefault<int>()] : null),
                            (cols.STATISTIC_BASE_CODECol != null ? parts[cols.STATISTIC_BASE_CODECol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_VALUE_TYPECol != null ? parts[cols.RESULT_VALUE_TYPECol.ConvertOrDefault<int>()] : null),
                            (cols.WEIGHT_BASISCol != null ? parts[cols.WEIGHT_BASISCol.ConvertOrDefault<int>()] : null),
                            (cols.TIME_BASISCol != null ? parts[cols.TIME_BASISCol.ConvertOrDefault<int>()] : null),
                            (cols.TEMP_BASISCol != null ? parts[cols.TEMP_BASISCol.ConvertOrDefault<int>()] : null),
                            (cols.PARTICLESIZE_BASISCol != null ? parts[cols.PARTICLESIZE_BASISCol.ConvertOrDefault<int>()] : null),
                            (cols.PRECISION_VALUECol != null ? parts[cols.PRECISION_VALUECol.ConvertOrDefault<int>()] : null),
                            (cols.BIAS_VALUECol != null ? parts[cols.BIAS_VALUECol.ConvertOrDefault<int>()] : null),
                            (cols.CONFIDENCE_INTERVAL_VALUECol != null ? parts[cols.CONFIDENCE_INTERVAL_VALUECol.ConvertOrDefault<int>()] : null),
                            (cols.UPPER_CONFIDENCE_LIMITCol != null ? parts[cols.UPPER_CONFIDENCE_LIMITCol.ConvertOrDefault<int>()] : null),
                            (cols.LOWER_CONFIDENCE_LIMITCol != null ? parts[cols.LOWER_CONFIDENCE_LIMITCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_COMMENTCol != null ? parts[cols.RESULT_COMMENTCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_DEPTH_HEIGHT_MSRCol != null ? parts[cols.RESULT_DEPTH_HEIGHT_MSRCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_DEPTH_HEIGHT_MSR_UNITCol != null ? parts[cols.RESULT_DEPTH_HEIGHT_MSR_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_DEPTH_REF_POINTCol != null ? parts[cols.RESULT_DEPTH_REF_POINTCol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_INTENT_NAMECol != null ? parts[cols.BIO_INTENT_NAMECol.ConvertOrDefault<int>()] : null),
                            (cols.BIO_INDIVIDUAL_IDCol != null ? parts[cols.BIO_INDIVIDUAL_IDCol.ConvertOrDefault<int>()] : null),
                            (cols.TAXON_NameCol != null ? parts[cols.TAXON_NameCol.ConvertOrDefault<int>()] : null),
                            (cols.UNIDENT_SPECIES_IDCol != null ? parts[cols.UNIDENT_SPECIES_IDCol.ConvertOrDefault<int>()] : null),
                            (cols.TISSUE_ANATOMYCol != null ? parts[cols.TISSUE_ANATOMYCol.ConvertOrDefault<int>()] : null),
                            (cols.GROUP_SUMM_TOTALCol != null ? parts[cols.GROUP_SUMM_TOTALCol.ConvertOrDefault<int>()] : null),
                            (cols.GROUP_SUMM_TOTAL_UNITCol != null ? parts[cols.GROUP_SUMM_TOTAL_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.CELL_FORMCol != null ? parts[cols.CELL_FORMCol.ConvertOrDefault<int>()] : null),
                            (cols.CELL_SHAPECol != null ? parts[cols.CELL_SHAPECol.ConvertOrDefault<int>()] : null),
                            (cols.HABIT_NAMECol != null ? parts[cols.HABIT_NAMECol.ConvertOrDefault<int>()] : null),
                            (cols.VOLTINISM_NAMECol != null ? parts[cols.VOLTINISM_NAMECol.ConvertOrDefault<int>()] : null),
                            (cols.POLL_TOLERANCECol != null ? parts[cols.POLL_TOLERANCECol.ConvertOrDefault<int>()] : null),
                            (cols.POLL_TOLERANCE_SCALECol != null ? parts[cols.POLL_TOLERANCE_SCALECol.ConvertOrDefault<int>()] : null),
                            (cols.TROPHIC_LEVELCol != null ? parts[cols.TROPHIC_LEVELCol.ConvertOrDefault<int>()] : null),
                            (cols.FEEDING_GROUP1Col != null ? parts[cols.FEEDING_GROUP1Col.ConvertOrDefault<int>()] : null),
                            (cols.FEEDING_GROUP2Col != null ? parts[cols.FEEDING_GROUP2Col.ConvertOrDefault<int>()] : null),
                            (cols.FEEDING_GROUP3Col != null ? parts[cols.FEEDING_GROUP3Col.ConvertOrDefault<int>()] : null),
                            (cols.FREQ_CLASS_CODECol != null ? parts[cols.FREQ_CLASS_CODECol.ConvertOrDefault<int>()] : null),
                            (cols.FREQ_CLASS_UNITCol != null ? parts[cols.FREQ_CLASS_UNITCol.ConvertOrDefault<int>()] : null),
                            (cols.FREQ_CLASS_UPPERCol != null ? parts[cols.FREQ_CLASS_UPPERCol.ConvertOrDefault<int>()] : null),
                            (cols.FREQ_CLASS_LOWERCol != null ? parts[cols.FREQ_CLASS_LOWERCol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.ANALYTIC_METHOD_IDCol != null ? parts[cols.ANALYTIC_METHOD_IDCol.ConvertOrDefault<int>()] : null),
                            (cols.ANALYTIC_METHOD_CTXCol != null ? parts[cols.ANALYTIC_METHOD_CTXCol.ConvertOrDefault<int>()] : null),
                            (cols.ANALYTIC_METHOD_NAMECol != null ? parts[cols.ANALYTIC_METHOD_NAMECol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.LAB_NAMECol != null ? parts[cols.LAB_NAMECol.ConvertOrDefault<int>()] : null),
                            (cols.LAB_ANALYSIS_START_DTCol != null ?
                                (parts[cols.LAB_ANALYSIS_START_DTCol.ConvertOrDefault<int>()] + " " +
                                (cols.LAB_ANALYSIS_START_TIMECol != null ? parts[cols.LAB_ANALYSIS_START_TIMECol.ConvertOrDefault<int>()] : null)
                                ) : null).ConvertOrDefault<DateTime?>(),
                            (cols.LAB_ANALYSIS_END_DTCol != null ? parts[cols.LAB_ANALYSIS_END_DTCol.ConvertOrDefault<int>()] : null).ConvertOrDefault<DateTime?>(),
                            (cols.LAB_ANALYSIS_TIMEZONECol != null ? parts[cols.LAB_ANALYSIS_TIMEZONECol.ConvertOrDefault<int>()] : null),
                            (cols.RESULT_LAB_COMMENT_CODECol != null ? parts[cols.RESULT_LAB_COMMENT_CODECol.ConvertOrDefault<int>()] : null),
                            (cols.METHOD_DETECTION_LEVELCol != null ? parts[cols.METHOD_DETECTION_LEVELCol.ConvertOrDefault<int>()] : null),
                            (cols.LAB_REPORTING_LEVELCol != null ? parts[cols.LAB_REPORTING_LEVELCol.ConvertOrDefault<int>()] : null),
                            (cols.PQLCol != null ? parts[cols.PQLCol.ConvertOrDefault<int>()] : null),
                            (cols.LOWER_QUANT_LIMITCol != null ? parts[cols.LOWER_QUANT_LIMITCol.ConvertOrDefault<int>()] : null),
                            (cols.UPPER_QUANT_LIMITCol != null ? parts[cols.UPPER_QUANT_LIMITCol.ConvertOrDefault<int>()] : null),
                            (cols.DETECTION_LIMIT_UNITCol != null ? parts[cols.DETECTION_LIMIT_UNITCol.ConvertOrDefault<int>()] : null),
                            null,
                            (cols.LAB_SAMP_PREP_IDCol != null ? parts[cols.LAB_SAMP_PREP_IDCol.ConvertOrDefault<int>()] : null),
                            (cols.LAB_SAMP_PREP_CTXCol != null ? parts[cols.LAB_SAMP_PREP_CTXCol.ConvertOrDefault<int>()] : null),
                            (cols.LAB_SAMP_PREP_START_DTCol != null ?
                                (parts[cols.LAB_SAMP_PREP_START_DTCol.ConvertOrDefault<int>()] + " " +
                                 (cols.LAB_SAMP_PREP_START_TIMECol != null ? parts[cols.LAB_SAMP_PREP_START_TIMECol.ConvertOrDefault<int>()] : null)
                                 ) : null).ConvertOrDefault<DateTime?>(),
                            (cols.LAB_SAMP_PREP_END_DTCol != null ? parts[cols.LAB_SAMP_PREP_END_DTCol.ConvertOrDefault<int>()] : null).ConvertOrDefault<DateTime?>(),
                            (cols.DILUTION_FACTORCol != null ? parts[cols.DILUTION_FACTORCol.ConvertOrDefault<int>()] : null),
                            "P", "", bioIndicator, OrgID, false);

                        if (TempImportResultID == 0)
                            db_WQX.InsertOrUpdateWQX_IMPORT_TEMP_SAMPLE_Status(TempImportSampID, "F", "Unable to validate result [" + parts[cols.CHAR_NAMECol.ConvertOrDefault<int>()] + "]. Contact admin.");
                    }

                }

                i = i + 1;
            }

            if (i > 1)  //can only continue if 2 rows (1 plus 1 header) are imported
                Response.Redirect("~/App_Pages/Secure/WQXImportSample.aspx");
            else
            {
                lblMsg.Text = "No valid data found. You must include column headers.";
                return false;
            }

            return true;
        }