/// <summary> /// Create a new T_WQX_IMPORT_TEMP_SAMPLE object. /// </summary> /// <param name="tEMP_SAMPLE_IDX">Initial value of the TEMP_SAMPLE_IDX property.</param> /// <param name="uSER_ID">Initial value of the USER_ID property.</param> /// <param name="aCT_TYPE">Initial value of the ACT_TYPE property.</param> /// <param name="aCT_MEDIA">Initial value of the ACT_MEDIA property.</param> public static T_WQX_IMPORT_TEMP_SAMPLE CreateT_WQX_IMPORT_TEMP_SAMPLE(global::System.Int32 tEMP_SAMPLE_IDX, global::System.String uSER_ID, global::System.String aCT_TYPE, global::System.String aCT_MEDIA) { T_WQX_IMPORT_TEMP_SAMPLE t_WQX_IMPORT_TEMP_SAMPLE = new T_WQX_IMPORT_TEMP_SAMPLE(); t_WQX_IMPORT_TEMP_SAMPLE.TEMP_SAMPLE_IDX = tEMP_SAMPLE_IDX; t_WQX_IMPORT_TEMP_SAMPLE.USER_ID = uSER_ID; t_WQX_IMPORT_TEMP_SAMPLE.ACT_TYPE = aCT_TYPE; t_WQX_IMPORT_TEMP_SAMPLE.ACT_MEDIA = aCT_MEDIA; return t_WQX_IMPORT_TEMP_SAMPLE; }
/// <summary> /// Deprecated Method for adding a new object to the T_WQX_IMPORT_TEMP_SAMPLE EntitySet. Consider using the .Add method of the associated ObjectSet<T> property instead. /// </summary> public void AddToT_WQX_IMPORT_TEMP_SAMPLE(T_WQX_IMPORT_TEMP_SAMPLE t_WQX_IMPORT_TEMP_SAMPLE) { base.AddObject("T_WQX_IMPORT_TEMP_SAMPLE", t_WQX_IMPORT_TEMP_SAMPLE); }
public static int InsertUpdateWQX_IMPORT_TEMP_SAMPLE_New(string uSER_ID, string oRG_ID, int? pROJECT_IDX, string pROJECT_ID, Dictionary<string, string> colVals) { try { using (OpenEnvironmentEntities ctx = new OpenEnvironmentEntities()) { bool insInd = false; //******************* GET STARTING RECORD ************************************************* string _a = Utils.GetValueOrDefault(colVals, "ACTIVITY_ID"); T_WQX_IMPORT_TEMP_SAMPLE a = (from c in ctx.T_WQX_IMPORT_TEMP_SAMPLE where c.ACTIVITY_ID == _a && c.ORG_ID == oRG_ID select c).FirstOrDefault(); //if can't find a match based on supplied ID, then create a new record if (a == null) { insInd = true; a = new T_WQX_IMPORT_TEMP_SAMPLE(); } //********************** END GET STARTING RECORD ************************************************ a.IMPORT_STATUS_CD = "P"; a.IMPORT_STATUS_DESC = ""; if (!string.IsNullOrEmpty(uSER_ID)) a.USER_ID = uSER_ID; else return 0; if (!string.IsNullOrEmpty(oRG_ID)) a.ORG_ID = oRG_ID; else return 0; if (pROJECT_IDX != null) a.PROJECT_IDX = pROJECT_IDX; else return 0; if (!string.IsNullOrEmpty(pROJECT_ID)) a.PROJECT_ID = pROJECT_ID; else return 0; //get import config rules List<ConfigInfoType> _allRules = Utils.GetAllColumnInfo("S"); //validate mandatory fields WQX_IMPORT_TEMP_SAMPLE_GenVal(ref a, _allRules, colVals, "MONLOC_ID"); WQX_IMPORT_TEMP_SAMPLE_GenVal(ref a, _allRules, colVals, "ACTIVITY_ID"); WQX_IMPORT_TEMP_SAMPLE_GenVal(ref a, _allRules, colVals, "ACT_TYPE"); WQX_IMPORT_TEMP_SAMPLE_GenVal(ref a, _allRules, colVals, "ACT_MEDIA"); WQX_IMPORT_TEMP_SAMPLE_GenVal(ref a, _allRules, colVals, "ACT_START_DT"); //loop through all optional fields List<string> rFields = new List<string>(new string[] { "ACT_SUBMEDIA","ACT_END_DT","ACT_TIME_ZONE","RELATIVE_DEPTH_NAME","ACT_DEPTHHEIGHT_MSR", "ACT_DEPTHHEIGHT_MSR_UNIT","TOP_DEPTHHEIGHT_MSR","TOP_DEPTHHEIGHT_MSR_UNIT","BOT_DEPTHHEIGHT_MSR","BOT_DEPTHHEIGHT_MSR_UNIT","DEPTH_REF_POINT", "ACT_COMMENT","BIO_ASSEMBLAGE_SAMPLED","BIO_DURATION_MSR","BIO_DURATION_MSR_UNIT","BIO_SAMP_COMPONENT", "BIO_SAMP_COMPONENT_SEQ","BIO_REACH_LEN_MSR", "BIO_REACH_LEN_MSR_UNIT","BIO_REACH_WID_MSR","BIO_REACH_WID_MSR_UNIT","BIO_PASS_COUNT","BIO_NET_TYPE","BIO_NET_AREA_MSR","BIO_NET_AREA_MSR_UNIT", "BIO_NET_MESHSIZE_MSR","BIO_MESHSIZE_MSR_UNIT","BIO_BOAT_SPEED_MSR","BIO_BOAT_SPEED_MSR_UNIT","BIO_CURR_SPEED_MSR","BIO_CURR_SPEED_MSR_UNIT", "BIO_TOXICITY_TEST_TYPE","SAMP_COLL_METHOD_IDX","SAMP_COLL_METHOD_ID","SAMP_COLL_METHOD_CTX","SAMP_COLL_EQUIP","SAMP_COLL_EQUIP_COMMENT", "SAMP_PREP_IDX","SAMP_PREP_ID","SAMP_PREP_CTX","SAMP_PREP_CONT_TYPE","SAMP_PREP_CONT_COLOR","SAMP_PREP_CHEM_PRESERV","SAMP_PREP_THERM_PRESERV","SAMP_PREP_STORAGE_DESC" }); foreach (KeyValuePair<string, string> entry in colVals) if (rFields.Contains(entry.Key)) WQX_IMPORT_TEMP_SAMPLE_GenVal(ref a, _allRules, colVals, entry.Key); //********************** CUSTOM POST VALIDATION ******************************************** //SET MONLOC_IDX based on supplied MONLOC_ID if (!string.IsNullOrEmpty(a.MONLOC_ID)) { T_WQX_MONLOC mm = db_WQX.GetWQX_MONLOC_ByIDString(oRG_ID, a.MONLOC_ID); if (mm == null) { a.IMPORT_STATUS_CD = "F"; a.IMPORT_STATUS_DESC += "Invalid Monitoring Location ID."; } else { a.MONLOC_IDX = mm.MONLOC_IDX; } } //SET ACTIVITY TIMEZONE IF NOT SUPPLIED if (string.IsNullOrEmpty(a.ACT_TIME_ZONE)) a.ACT_TIME_ZONE = Utils.GetWQXTimeZoneByDate(a.ACT_START_DT.ConvertOrDefault<DateTime>()); //special sampling collection method handling if (a.SAMP_COLL_METHOD_IDX != null) { //if IDX is populated, grab ID/Name/Ctx T_WQX_REF_SAMP_COL_METHOD scm = db_Ref.GetT_WQX_REF_SAMP_COL_METHOD_ByIDX(a.SAMP_COLL_METHOD_IDX); if (scm != null) { a.SAMP_COLL_METHOD_ID = scm.SAMP_COLL_METHOD_ID; a.SAMP_COLL_METHOD_NAME = scm.SAMP_COLL_METHOD_NAME; a.SAMP_COLL_METHOD_CTX = scm.SAMP_COLL_METHOD_CTX; } } else { if (!string.IsNullOrEmpty(a.SAMP_COLL_METHOD_ID)) { T_WQX_REF_SAMP_COL_METHOD scm = db_Ref.GetT_WQX_REF_SAMP_COL_METHOD_ByIDandContext(a.SAMP_COLL_METHOD_ID, a.SAMP_COLL_METHOD_CTX); if (scm != null) a.SAMP_COLL_METHOD_IDX = scm.SAMP_COLL_METHOD_IDX; else //no matching sample collection method lookup found { a.IMPORT_STATUS_CD = "F"; a.IMPORT_STATUS_DESC += "No matching Sample Collection Method found - please add it at the Reference Data screen first. "; } } } //special validation requiring sampling collection method if activity type contains "Sample" if (a.SAMP_COLL_METHOD_IDX == null && a.ACT_TYPE.ToUpper().Contains("SAMPLE")) { a.IMPORT_STATUS_CD = "F"; a.IMPORT_STATUS_DESC += "Sample Collection Method is required when Activity Type contains the term -Sample-. "; } //special validation requiring sampling collection equipment if activity type contains "Sample" if (string.IsNullOrEmpty(a.SAMP_COLL_EQUIP) && a.ACT_TYPE.ToUpper().Contains("SAMPLE")) { a.IMPORT_STATUS_CD = "F"; a.IMPORT_STATUS_DESC += "Sample Collection Equipment is required when Activity Type contains the term -Sample-. "; } //sampling prep method handling if (a.SAMP_PREP_IDX == null) { if (string.IsNullOrEmpty(a.SAMP_PREP_CTX) && !string.IsNullOrEmpty(a.SAMP_PREP_ID)) a.SAMP_PREP_CTX = oRG_ID; if (!string.IsNullOrEmpty(a.SAMP_PREP_ID) && !string.IsNullOrEmpty(a.SAMP_PREP_CTX)) { //see if matching prep method exists T_WQX_REF_SAMP_PREP sp = db_Ref.GetT_WQX_REF_SAMP_PREP_ByIDandContext(a.SAMP_PREP_ID, a.SAMP_PREP_CTX); if (sp != null) a.SAMP_PREP_IDX = sp.SAMP_PREP_IDX; else //no matching sample prep method lookup found { a.IMPORT_STATUS_CD = "F"; a.IMPORT_STATUS_DESC += "No matching Sample Prep Method found - please add it at the Reference Data screen first. "; } } } //********************** CUSTOM POST VALIDATION ******************************************** a.IMPORT_STATUS_DESC = a.IMPORT_STATUS_DESC.SubStringPlus(0, 200); if (insInd) //insert case ctx.AddToT_WQX_IMPORT_TEMP_SAMPLE(a); ctx.SaveChanges(); return a.TEMP_SAMPLE_IDX; } } catch (Exception ex) { return 0; } }
public static void WQX_IMPORT_TEMP_SAMPLE_GenVal(ref T_WQX_IMPORT_TEMP_SAMPLE a, List<ConfigInfoType> t, Dictionary<string, string> colVals, string f) { var _rules = t.Find(item => item._name == f); //import validation rules for this field if (_rules == null) return; string _value = Utils.GetValueOrDefault(colVals, f); //supplied value for this field if (!string.IsNullOrEmpty(_value)) //if value is supplied { _value = _value.Trim(); //if this field has another field which gets added to it (used for Date + Time fields) if (!string.IsNullOrEmpty(_rules._addfield)) _value = _value + " " + Utils.GetValueOrDefault(colVals, _rules._addfield); //strings: field length validation and substring if (_rules._datatype == "" && _rules._length != null) { if (_value.Length > _rules._length) { a.IMPORT_STATUS_CD = "F"; a.IMPORT_STATUS_DESC = (a.IMPORT_STATUS_DESC + f + " length (" + _rules._length + ") exceeded. "); _value = _value.SubStringPlus(0, (int)_rules._length); } } //integers: check type if (_rules._datatype == "int") { int n; if (int.TryParse(_value, out n) == false) { a.IMPORT_STATUS_CD = "F"; a.IMPORT_STATUS_DESC = (a.IMPORT_STATUS_DESC + f + " not numeric. "); } } //datetime: check type if (_rules._datatype == "datetime") { if (_value.ConvertOrDefault<DateTime>().Year < 1900) { if (_rules._req == "Y") _value = new DateTime(1900, 1, 1).ToString(); a.IMPORT_STATUS_CD = "F"; a.IMPORT_STATUS_DESC = (a.IMPORT_STATUS_DESC + f + " not properly formatted. "); } } //ref data lookup if (_rules._fkey.Length > 0) { if (db_Ref.GetT_WQX_REF_DATA_ByKey(_rules._fkey, _value) == false) { a.IMPORT_STATUS_CD = "F"; a.IMPORT_STATUS_DESC = (a.IMPORT_STATUS_DESC + f + " not valid. "); } } } else { //required check if (_rules._req == "Y") { if (_rules._datatype == "") _value = "-"; else if (_rules._datatype == "datetime") _value = new DateTime(1900, 1, 1).ToString(); a.IMPORT_STATUS_CD = "F"; a.IMPORT_STATUS_DESC = (a.IMPORT_STATUS_DESC + "Required field " + f + " missing. "); } } //finally set the value before returning try { if (_rules._datatype == "") typeof(T_WQX_IMPORT_TEMP_SAMPLE).GetProperty(f).SetValue(a, _value); else if (_rules._datatype == "int") typeof(T_WQX_IMPORT_TEMP_SAMPLE).GetProperty(f).SetValue(a, _value.ConvertOrDefault<int?>()); else if (_rules._datatype == "datetime" && _rules._req == "Y") typeof(T_WQX_IMPORT_TEMP_SAMPLE).GetProperty(f).SetValue(a, _value.ConvertOrDefault<DateTime>()); else if (_rules._datatype == "datetime" && _rules._req == "N") typeof(T_WQX_IMPORT_TEMP_SAMPLE).GetProperty(f).SetValue(a, _value.ConvertOrDefault<DateTime?>()); } catch { } }
// *************************** IMPORT: SAMPLE ****************************** // ***************************************************************************** public static int InsertOrUpdateWQX_IMPORT_TEMP_SAMPLE(global::System.Int32? tEMP_SAMPLE_IDX, string uSER_ID, global::System.String oRG_ID, global::System.Int32? pROJECT_IDX, string pROJECT_ID, global::System.Int32? mONLOC_IDX, string mONLOC_ID, global::System.Int32? aCTIVITY_IDX, global::System.String aCTIVITY_ID, global::System.String aCT_TYPE, global::System.String aCT_MEDIA, global::System.String aCT_SUBMEDIA, global::System.DateTime? aCT_START_DT, global::System.DateTime? aCT_END_DT, global::System.String aCT_TIME_ZONE, global::System.String rELATIVE_DEPTH_NAME, global::System.String aCT_DEPTHHEIGHT_MSR, global::System.String aCT_DEPTHHEIGHT_MSR_UNIT, global::System.String tOP_DEPTHHEIGHT_MSR, global::System.String tOP_DEPTHHEIGHT_MSR_UNIT, global::System.String bOT_DEPTHHEIGHT_MSR, global::System.String bOT_DEPTHHEIGHT_MSR_UNIT, global::System.String dEPTH_REF_POINT, global::System.String aCT_COMMENT, global::System.String bIO_ASSEMBLAGE_SAMPLED, global::System.String bIO_DURATION_MSR, global::System.String bIO_DURATION_MSR_UNIT, global::System.String bIO_SAMP_COMPONENT, int? bIO_SAMP_COMPONENT_SEQ, global::System.String bIO_REACH_LEN_MSR, global::System.String bIO_REACH_LEN_MSR_UNIT, global::System.String bIO_REACH_WID_MSR, global::System.String bIO_REACH_WID_MSR_UNIT, int? bIO_PASS_COUNT, global::System.String bIO_NET_TYPE, global::System.String bIO_NET_AREA_MSR, global::System.String bIO_NET_AREA_MSR_UNIT, global::System.String bIO_NET_MESHSIZE_MSR, global::System.String bIO_MESHSIZE_MSR_UNIT, global::System.String bIO_BOAT_SPEED_MSR, global::System.String bIO_BOAT_SPEED_MSR_UNIT, global::System.String bIO_CURR_SPEED_MSR, global::System.String bIO_CURR_SPEED_MSR_UNIT, global::System.String bIO_TOXICITY_TEST_TYPE, int? sAMP_COLL_METHOD_IDX, global::System.String sAMP_COLL_METHOD_ID, global::System.String sAMP_COLL_METHOD_CTX, global::System.String sAMP_COLL_METHOD_NAME, global::System.String sAMP_COLL_EQUIP, global::System.String sAMP_COLL_EQUIP_COMMENT, int? sAMP_PREP_IDX, global::System.String sAMP_PREP_ID, global::System.String sAMP_PREP_CTX, global::System.String sAMP_PREP_NAME, global::System.String sAMP_PREP_CONT_TYPE, global::System.String sAMP_PREP_CONT_COLOR, global::System.String sAMP_PREP_CHEM_PRESERV, global::System.String sAMP_PREP_THERM_PRESERV, global::System.String sAMP_PREP_STORAGE_DESC, string sTATUS_CD, string sTATUS_DESC, bool BioIndicator, Boolean autoImportRefDataInd) { try { using (OpenEnvironmentEntities ctx = new OpenEnvironmentEntities()) { Boolean insInd = false; //******************* GET STARTING RECORD ************************************************* T_WQX_IMPORT_TEMP_SAMPLE a; if (tEMP_SAMPLE_IDX != null) //grab from IDX if given a = (from c in ctx.T_WQX_IMPORT_TEMP_SAMPLE where c.TEMP_SAMPLE_IDX == tEMP_SAMPLE_IDX select c).FirstOrDefault(); else //check if existing activity ID exists in the import { a = (from c in ctx.T_WQX_IMPORT_TEMP_SAMPLE where c.ACTIVITY_ID == aCTIVITY_ID && c.ORG_ID == oRG_ID select c).FirstOrDefault(); } //if can't find a match based on supplied IDX or ID, then create a new record if (a == null) { insInd = true; a = new T_WQX_IMPORT_TEMP_SAMPLE(); } //********************** END GET STARTING RECORD ************************************************ if (!string.IsNullOrEmpty(uSER_ID)) a.USER_ID = uSER_ID; if (!string.IsNullOrEmpty(oRG_ID)) a.ORG_ID = oRG_ID; //PROJECT HANDLING if (pROJECT_IDX == null && pROJECT_ID == null) { sTATUS_CD = "F"; sTATUS_DESC += "Project ID must be provided. "; } if (pROJECT_IDX != null) a.PROJECT_IDX = pROJECT_IDX; if (pROJECT_ID != null) { a.PROJECT_ID = pROJECT_ID.Trim().SubStringPlus(0, 35); T_WQX_PROJECT ptemp = db_WQX.GetWQX_PROJECT_ByIDString(pROJECT_ID, oRG_ID); if (ptemp == null) { sTATUS_CD = "F"; sTATUS_DESC += "Project ID does not exist. Create project first."; } else { a.PROJECT_IDX = ptemp.PROJECT_IDX; } } //MONITORING LOCATION HANDLING if (mONLOC_IDX == null && mONLOC_ID == null) { sTATUS_CD = "F"; sTATUS_DESC += "Monitoring Location ID must be provided. "; } if (mONLOC_IDX != null) a.MONLOC_IDX = mONLOC_IDX; if (mONLOC_ID != null) { a.MONLOC_ID = mONLOC_ID.Trim().SubStringPlus(0, 35); T_WQX_MONLOC mm = db_WQX.GetWQX_MONLOC_ByIDString(oRG_ID, mONLOC_ID); if (mm == null) { sTATUS_CD = "F"; sTATUS_DESC += "Monitoring Location ID does not exist. Import MonLocs first."; } else { a.MONLOC_IDX = mm.MONLOC_IDX; } } //ACTIVITY ID HANDLING if (aCTIVITY_IDX == null && aCTIVITY_ID == null) { sTATUS_CD = "F"; sTATUS_DESC += "Activity ID must be provided. "; } if (aCTIVITY_IDX != null) a.ACTIVITY_IDX = aCTIVITY_IDX; if (!string.IsNullOrEmpty(aCTIVITY_ID)) a.ACTIVITY_ID = aCTIVITY_ID.Trim().SubStringPlus(0, 35); //ACTIVITY TYPE HANDLING if (!string.IsNullOrEmpty(aCT_TYPE)) { a.ACT_TYPE = aCT_TYPE.SubStringPlus(0, 70) ?? ""; if (db_Ref.GetT_WQX_REF_DATA_ByKey("ActivityType", aCT_TYPE.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Activity Type not valid. "; } } else { a.ACT_TYPE = ""; sTATUS_CD = "F"; sTATUS_DESC += "Activity Type is required."; } if (!string.IsNullOrEmpty(aCT_MEDIA)) { a.ACT_MEDIA = aCT_MEDIA.SubStringPlus(0, 20) ?? ""; if (db_Ref.GetT_WQX_REF_DATA_ByKey("ActivityMedia", aCT_MEDIA.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Activity Media not valid. "; } } else { a.ACT_MEDIA = ""; sTATUS_CD = "F"; sTATUS_DESC += "Activity Media is required."; } if (!string.IsNullOrEmpty(aCT_SUBMEDIA)) { a.ACT_SUBMEDIA = aCT_SUBMEDIA.SubStringPlus(0, 45); if (db_Ref.GetT_WQX_REF_DATA_ByKey("ActivityMediaSubdivision", aCT_SUBMEDIA.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Activity Media Subdivision not valid. "; } } if (aCT_START_DT == null) { sTATUS_CD = "F"; sTATUS_DESC += "Activity Start Date must be provided. "; } else { //fix improperly formatted datetime if (aCT_START_DT.ConvertOrDefault<DateTime>().Year < 1900) { sTATUS_CD = "F"; sTATUS_DESC += "Activity Start Date is formatted incorrectly. "; } else a.ACT_START_DT = aCT_START_DT; } if (aCT_END_DT != null) { //fix improperly formatted datetime if (aCT_END_DT.ConvertOrDefault<DateTime>().Year < 1900) aCT_END_DT = null; a.ACT_END_DT = aCT_END_DT; } if (!string.IsNullOrEmpty(aCT_TIME_ZONE)) { a.ACT_TIME_ZONE = aCT_TIME_ZONE.Trim().SubStringPlus(0, 4); if (db_Ref.GetT_WQX_REF_DATA_ByKey("TimeZone", aCT_TIME_ZONE.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "TimeZone not valid. "; } } else { //put in Timezone if missing a.ACT_TIME_ZONE = Utils.GetWQXTimeZoneByDate(a.ACT_START_DT.ConvertOrDefault<DateTime>()); } if (!string.IsNullOrEmpty(rELATIVE_DEPTH_NAME)) { a.RELATIVE_DEPTH_NAME = rELATIVE_DEPTH_NAME.Trim().SubStringPlus(0, 15); if (db_Ref.GetT_WQX_REF_DATA_ByKey("ActivityRelativeDepth", rELATIVE_DEPTH_NAME.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Relative Depth Name not valid. "; } } if (!string.IsNullOrEmpty(aCT_DEPTHHEIGHT_MSR)) { a.ACT_DEPTHHEIGHT_MSR = aCT_DEPTHHEIGHT_MSR.Trim().SubStringPlus(0, 12); } if (!string.IsNullOrEmpty(aCT_DEPTHHEIGHT_MSR_UNIT)) { a.ACT_DEPTHHEIGHT_MSR_UNIT = aCT_DEPTHHEIGHT_MSR_UNIT.Trim().SubStringPlus(0, 12); if (db_Ref.GetT_WQX_REF_DATA_ByKey("MeasureUnit", aCT_DEPTHHEIGHT_MSR_UNIT.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Depth Measure Unit not valid. "; } } if (!string.IsNullOrEmpty(tOP_DEPTHHEIGHT_MSR)) { a.TOP_DEPTHHEIGHT_MSR = tOP_DEPTHHEIGHT_MSR.Trim().SubStringPlus(0, 12); } if (!string.IsNullOrEmpty(tOP_DEPTHHEIGHT_MSR_UNIT)) { a.TOP_DEPTHHEIGHT_MSR_UNIT = tOP_DEPTHHEIGHT_MSR_UNIT.Trim().SubStringPlus(0, 12); if (db_Ref.GetT_WQX_REF_DATA_ByKey("MeasureUnit", tOP_DEPTHHEIGHT_MSR_UNIT.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Top Depth Measure Unit not valid. "; } } if (!string.IsNullOrEmpty(bOT_DEPTHHEIGHT_MSR)) { a.BOT_DEPTHHEIGHT_MSR = bOT_DEPTHHEIGHT_MSR.Trim().SubStringPlus(0, 12); } if (!string.IsNullOrEmpty(bOT_DEPTHHEIGHT_MSR_UNIT)) { a.BOT_DEPTHHEIGHT_MSR_UNIT = bOT_DEPTHHEIGHT_MSR_UNIT.Trim().SubStringPlus(0, 12); if (db_Ref.GetT_WQX_REF_DATA_ByKey("MeasureUnit", bOT_DEPTHHEIGHT_MSR_UNIT.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Bottom Depth Measure Unit not valid. "; } } if (!string.IsNullOrEmpty(dEPTH_REF_POINT)) { a.DEPTH_REF_POINT = dEPTH_REF_POINT.Trim().SubStringPlus(0, 125); } if (!string.IsNullOrEmpty(aCT_COMMENT)) { a.ACT_COMMENT = aCT_COMMENT.Trim().SubStringPlus(0, 4000); } //BIOLOGICAL MONITORING if (BioIndicator == true) { if (!string.IsNullOrEmpty(bIO_ASSEMBLAGE_SAMPLED)) { a.BIO_ASSEMBLAGE_SAMPLED = bIO_ASSEMBLAGE_SAMPLED.Trim().SubStringPlus(0, 50); if (db_Ref.GetT_WQX_REF_DATA_ByKey("Assemblage", bIO_ASSEMBLAGE_SAMPLED.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Bio Assemblage not valid. "; } } if (!string.IsNullOrEmpty(bIO_DURATION_MSR)) { a.BIO_DURATION_MSR = bIO_DURATION_MSR.Trim().SubStringPlus(0, 12); } if (!string.IsNullOrEmpty(bIO_DURATION_MSR_UNIT)) { a.BIO_DURATION_MSR_UNIT = bIO_DURATION_MSR_UNIT.Trim().SubStringPlus(0, 12); if (db_Ref.GetT_WQX_REF_DATA_ByKey("MeasureUnit", bIO_DURATION_MSR_UNIT.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Bio Collection Duration Unit not valid. "; } } if (!string.IsNullOrEmpty(bIO_SAMP_COMPONENT)) { a.BIO_SAMP_COMPONENT = bIO_SAMP_COMPONENT.Trim().SubStringPlus(0, 15); } if (bIO_SAMP_COMPONENT_SEQ != null) a.BIO_SAMP_COMPONENT_SEQ = bIO_SAMP_COMPONENT_SEQ; if (!string.IsNullOrEmpty(bIO_REACH_LEN_MSR)) { a.BIO_REACH_LEN_MSR = bIO_REACH_LEN_MSR.Trim().SubStringPlus(0, 12); } if (!string.IsNullOrEmpty(bIO_REACH_LEN_MSR_UNIT)) { a.BIO_REACH_LEN_MSR_UNIT = bIO_REACH_LEN_MSR_UNIT.Trim().SubStringPlus(0, 12); if (db_Ref.GetT_WQX_REF_DATA_ByKey("MeasureUnit", bIO_REACH_LEN_MSR_UNIT.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Bio Reach Length Unit not valid. "; } } if (!string.IsNullOrEmpty(bIO_REACH_WID_MSR)) { a.BIO_REACH_WID_MSR = bIO_REACH_WID_MSR.Trim().SubStringPlus(0, 12); } if (!string.IsNullOrEmpty(bIO_REACH_WID_MSR_UNIT)) { a.BIO_REACH_WID_MSR_UNIT = bIO_REACH_WID_MSR_UNIT.Trim().SubStringPlus(0, 12); if (db_Ref.GetT_WQX_REF_DATA_ByKey("MeasureUnit", bIO_REACH_WID_MSR_UNIT.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Bio Reach Width Unit not valid. "; } } if (bIO_PASS_COUNT != null) a.BIO_PASS_COUNT = bIO_PASS_COUNT; if (!string.IsNullOrEmpty(bIO_NET_TYPE)) { a.BIO_NET_TYPE = bIO_NET_TYPE.Trim().SubStringPlus(0, 30); if (db_Ref.GetT_WQX_REF_DATA_ByKey("NetType", bIO_NET_TYPE.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Bio Net Type not valid. "; } } if (!string.IsNullOrEmpty(bIO_NET_AREA_MSR)) { a.BIO_NET_AREA_MSR = bIO_NET_AREA_MSR.Trim().SubStringPlus(0, 12); } if (!string.IsNullOrEmpty(bIO_NET_AREA_MSR_UNIT)) { a.BIO_NET_AREA_MSR_UNIT = bIO_NET_AREA_MSR_UNIT.Trim().SubStringPlus(0, 12); if (db_Ref.GetT_WQX_REF_DATA_ByKey("MeasureUnit", bIO_NET_AREA_MSR_UNIT.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Bio Net Area Unit not valid. "; } } if (!string.IsNullOrEmpty(bIO_NET_MESHSIZE_MSR)) { a.BIO_NET_MESHSIZE_MSR = bIO_NET_MESHSIZE_MSR.Trim().SubStringPlus(0, 12); } if (!string.IsNullOrEmpty(bIO_MESHSIZE_MSR_UNIT)) { a.BIO_MESHSIZE_MSR_UNIT = bIO_MESHSIZE_MSR_UNIT.Trim().SubStringPlus(0, 12); if (db_Ref.GetT_WQX_REF_DATA_ByKey("MeasureUnit", bIO_MESHSIZE_MSR_UNIT.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Bio Net Mesh Size Unit not valid. "; } } if (!string.IsNullOrEmpty(bIO_BOAT_SPEED_MSR)) { a.BIO_BOAT_SPEED_MSR = bIO_BOAT_SPEED_MSR.Trim().SubStringPlus(0, 12); } if (!string.IsNullOrEmpty(bIO_BOAT_SPEED_MSR_UNIT)) { a.BIO_BOAT_SPEED_MSR_UNIT = bIO_BOAT_SPEED_MSR_UNIT.Trim().SubStringPlus(0, 12); if (db_Ref.GetT_WQX_REF_DATA_ByKey("MeasureUnit", bIO_BOAT_SPEED_MSR_UNIT.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Boat Speed Unit not valid. "; } } if (!string.IsNullOrEmpty(bIO_CURR_SPEED_MSR)) { a.BIO_CURR_SPEED_MSR = bIO_CURR_SPEED_MSR.Trim().SubStringPlus(0, 12); } if (!string.IsNullOrEmpty(bIO_CURR_SPEED_MSR_UNIT)) { a.BIO_CURR_SPEED_MSR_UNIT = bIO_CURR_SPEED_MSR_UNIT.Trim().SubStringPlus(0, 12); if (db_Ref.GetT_WQX_REF_DATA_ByKey("MeasureUnit", bIO_CURR_SPEED_MSR_UNIT.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Current Speed Unit not valid. "; } } if (!string.IsNullOrEmpty(bIO_TOXICITY_TEST_TYPE)) { a.BIO_TOXICITY_TEST_TYPE = bIO_TOXICITY_TEST_TYPE.Trim().SubStringPlus(0, 7); if (db_Ref.GetT_WQX_REF_DATA_ByKey("ToxicityTestType", bIO_TOXICITY_TEST_TYPE.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Toxicity Test Type not valid. "; } } } if (sAMP_COLL_METHOD_IDX != null) { a.SAMP_COLL_METHOD_IDX = sAMP_COLL_METHOD_IDX; //if IDX is populated but ID/Name/Ctx aren't then grab them T_WQX_REF_SAMP_COL_METHOD scm = db_Ref.GetT_WQX_REF_SAMP_COL_METHOD_ByIDX(a.SAMP_COLL_METHOD_IDX); if (scm != null) { a.SAMP_COLL_METHOD_ID = scm.SAMP_COLL_METHOD_ID; a.SAMP_COLL_METHOD_NAME = scm.SAMP_COLL_METHOD_NAME; a.SAMP_COLL_METHOD_CTX = scm.SAMP_COLL_METHOD_CTX; } } else { //set context to org id if none is provided if (!string.IsNullOrEmpty(sAMP_COLL_METHOD_ID) && string.IsNullOrEmpty(sAMP_COLL_METHOD_CTX)) sAMP_COLL_METHOD_CTX = oRG_ID; if (!string.IsNullOrEmpty(sAMP_COLL_METHOD_ID) && !string.IsNullOrEmpty(sAMP_COLL_METHOD_CTX)) { //lookup matching collection method IDX T_WQX_REF_SAMP_COL_METHOD scm = db_Ref.GetT_WQX_REF_SAMP_COL_METHOD_ByIDandContext(sAMP_COLL_METHOD_ID.Trim(), sAMP_COLL_METHOD_CTX.Trim()); if (scm != null) a.SAMP_COLL_METHOD_IDX = scm.SAMP_COLL_METHOD_IDX; else //no matching sample collection method lookup found { if (autoImportRefDataInd == true) { db_Ref.InsertOrUpdateT_WQX_REF_SAMP_COL_METHOD(null, sAMP_COLL_METHOD_ID.Trim(), sAMP_COLL_METHOD_CTX.Trim(), sAMP_COLL_METHOD_NAME.Trim(), "", true); } else { sTATUS_CD = "F"; sTATUS_DESC += "No matching Sample Collection Method found - please add it at the Reference Data screen first. "; } } //**************************************** a.SAMP_COLL_METHOD_ID = sAMP_COLL_METHOD_ID.Trim().SubStringPlus(0, 20); a.SAMP_COLL_METHOD_CTX = sAMP_COLL_METHOD_CTX.Trim().SubStringPlus(0, 120); if (!string.IsNullOrEmpty(sAMP_COLL_METHOD_NAME)) { a.SAMP_COLL_METHOD_NAME = sAMP_COLL_METHOD_NAME.Trim().SubStringPlus(0, 120); } } } if (a.SAMP_COLL_METHOD_IDX == null && a.ACT_TYPE.ToUpper().Contains("SAMPLE")) { sTATUS_CD = "F"; sTATUS_DESC += "Sample Collection Method is required when Activity Type contains the term -Sample-. "; } if (!string.IsNullOrEmpty(sAMP_COLL_EQUIP)) { a.SAMP_COLL_EQUIP = sAMP_COLL_EQUIP.Trim().SubStringPlus(0, 40); if (db_Ref.GetT_WQX_REF_DATA_ByKey("SampleCollectionEquipment", sAMP_COLL_EQUIP.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Sample Collection Equipment not valid. "; } } else { //special validation requiring sampling collection equipment if activity type contains "Sample" if (a.ACT_TYPE.ToUpper().Contains("SAMPLE")) { sTATUS_CD = "F"; sTATUS_DESC += "Sample Collection Equipment is required when Activity Type contains the term -Sample-. "; } } if (!string.IsNullOrEmpty(sAMP_COLL_EQUIP_COMMENT)) { a.SAMP_COLL_EQUIP_COMMENT = sAMP_COLL_EQUIP_COMMENT.Trim().SubStringPlus(0, 4000); } if (sAMP_PREP_IDX != null) a.SAMP_PREP_IDX = sAMP_PREP_IDX; else { //set context to org id if none is provided if (!string.IsNullOrEmpty(sAMP_PREP_ID) && string.IsNullOrEmpty(sAMP_PREP_CTX)) sAMP_PREP_CTX = oRG_ID; if (!string.IsNullOrEmpty(sAMP_PREP_ID) && !string.IsNullOrEmpty(sAMP_PREP_CTX)) { //see if matching prep method exists T_WQX_REF_SAMP_PREP sp = db_Ref.GetT_WQX_REF_SAMP_PREP_ByIDandContext(sAMP_PREP_ID.Trim(), sAMP_PREP_CTX.Trim()); if (sp != null) a.SAMP_PREP_IDX = sp.SAMP_PREP_IDX; //**************************************** a.SAMP_PREP_ID = sAMP_PREP_ID.Trim().SubStringPlus(0, 20); a.SAMP_PREP_CTX = sAMP_PREP_CTX.Trim().SubStringPlus(0, 120); if (!string.IsNullOrEmpty(sAMP_PREP_NAME)) { a.SAMP_PREP_NAME = sAMP_PREP_NAME.Trim().SubStringPlus(0, 120); } } } if (!string.IsNullOrEmpty(sAMP_PREP_CONT_TYPE)) { a.SAMP_PREP_CONT_TYPE = sAMP_PREP_CONT_TYPE.Trim().SubStringPlus(0, 35); if (db_Ref.GetT_WQX_REF_DATA_ByKey("SampleContainerType", sAMP_PREP_CONT_TYPE.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Sample Container Type not valid. "; } } if (!string.IsNullOrEmpty(sAMP_PREP_CONT_COLOR)) { a.SAMP_PREP_CONT_COLOR = sAMP_PREP_CONT_COLOR.Trim().SubStringPlus(0, 15); if (db_Ref.GetT_WQX_REF_DATA_ByKey("SampleContainerColor", sAMP_PREP_CONT_COLOR.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Sample Container Color not valid. "; } } if (!string.IsNullOrEmpty(sAMP_PREP_CHEM_PRESERV)) { a.SAMP_PREP_CHEM_PRESERV = sAMP_PREP_CHEM_PRESERV.Trim().SubStringPlus(0, 250); } if (!string.IsNullOrEmpty(sAMP_PREP_THERM_PRESERV)) { a.SAMP_PREP_THERM_PRESERV = sAMP_PREP_THERM_PRESERV.Trim().SubStringPlus(0, 25); if (db_Ref.GetT_WQX_REF_DATA_ByKey("ThermalPreservativeUsed", sAMP_PREP_THERM_PRESERV.Trim()) == false) { sTATUS_CD = "F"; sTATUS_DESC += "Thermal Preservative Used not valid. "; } } if (!string.IsNullOrEmpty(sAMP_PREP_STORAGE_DESC)) { a.SAMP_PREP_STORAGE_DESC = sAMP_PREP_STORAGE_DESC.Trim().SubStringPlus(0, 250); } if (sTATUS_CD != null) a.IMPORT_STATUS_CD = sTATUS_CD; if (sTATUS_DESC != null) a.IMPORT_STATUS_DESC = sTATUS_DESC.SubStringPlus(0,100); if (insInd) //insert case ctx.AddToT_WQX_IMPORT_TEMP_SAMPLE(a); ctx.SaveChanges(); return a.TEMP_SAMPLE_IDX; } } catch (Exception ex) { sTATUS_CD = "F"; sTATUS_DESC += "Unspecified error"; return 0; } }