Пример #1
0
        public static void T_OE_PROJECT_validate(ref ProjectImportType 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();

                //strings: field length validation and substring
                if (_rules._datatype == "" && _rules._length != null)
                {
                    if (_value.Length > _rules._length)
                    {
                        a.VALIDATE_CD  = false;
                        a.VALIDATE_MSG = (a.VALIDATE_MSG + 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.VALIDATE_CD  = false;
                        a.VALIDATE_MSG = (a.VALIDATE_MSG + f + " not numeric. ");
                    }
                }
            }
            else
            {
                //required check
                if (_rules._req == "Y")
                {
                    if (_rules._datatype == "")
                    {
                        _value = "-";
                    }
                    a.VALIDATE_CD  = false;
                    a.VALIDATE_MSG = (a.VALIDATE_MSG + "Required field " + f + " missing. ");
                }
            }

            //finally set the value before returning
            try
            {
                if (_rules._datatype == "")
                {
                    typeof(T_OE_PROJECTS).GetProperty(f).SetValue(a.T_OE_PROJECT, _value);
                }
                else if (_rules._datatype == "int")
                {
                    typeof(T_OE_PROJECTS).GetProperty(f).SetValue(a.T_OE_PROJECT, _value.ConvertOrDefault <int?>());
                }
            }
            catch (Exception ex) {  }
        }
Пример #2
0
        //***************************project local****************************************
        /// <summary>
        /// Creates a new local PROJECT record and validates it according to the validation rules contained in XML file
        /// </summary>
        /// <param name="UserIDX"></param>
        /// <param name="colVals">Name value pair for the different fields to import into the project record</param>
        /// <returns></returns>
        public static ProjectImportType InsertOrUpdate_T_OE_PROJECT_local(int UserIDX, Dictionary <string, string> colVals)
        {
            using (EECIPEntities ctx = new EECIPEntities())
            {
                try
                {
                    //Boolean insInd = true;
                    ProjectImportType e = new ProjectImportType();
                    e.T_OE_PROJECT.PROJECT_IDX    = Guid.NewGuid();
                    e.T_OE_PROJECT.CREATE_DT      = System.DateTime.Now;
                    e.T_OE_PROJECT.CREATE_USERIDX = UserIDX;

                    //get import config rules
                    List <ConfigInfoType> _allRules = Utils.GetAllColumnInfo("P");

                    //explicitly validate mandatory fields
                    foreach (string entry in Utils.GetMandatoryImportFieldList("P"))
                    {
                        T_OE_PROJECT_validate(ref e, _allRules, colVals, entry);
                    }

                    //then only validate optional fields if supplied (performance)
                    foreach (string entry in Utils.GetOptionalImportFieldList("P"))
                    {
                        T_OE_PROJECT_validate(ref e, _allRules, colVals, entry);
                    }

                    //********************** CUSTOM POST VALIDATION ********************************************
                    //SET ORG_IDX based on supplied ORG_NAME
                    e.ORG_NAME = Utils.GetValueOrDefault(colVals, "ORG_NAME");
                    T_OE_ORGANIZATION oo = db_Ref.GetT_OE_ORGANIZATION_ByName(e.ORG_NAME);
                    if (oo != null)
                    {
                        e.T_OE_PROJECT.ORG_IDX = oo.ORG_IDX;
                    }
                    else
                    {
                        e.VALIDATE_CD   = false;
                        e.VALIDATE_MSG += "No matching agency found.";
                    }


                    //MEDIA
                    e.MEDIA_NAME = Utils.GetValueOrDefault(colVals, "MEDIA_TAG");
                    T_OE_REF_TAGS media1 = db_Ref.GetT_OE_REF_TAGS_ByCategoryAndName("Project Media", e.MEDIA_NAME);
                    if (media1 != null)
                    {
                        e.T_OE_PROJECT.MEDIA_TAG = media1.TAG_IDX;
                    }
                    else
                    {
                        e.VALIDATE_CD   = false;
                        e.VALIDATE_MSG += "Invalid Media name.";
                    }


                    //MOBILE
                    e.MOBILE_IND_NAME = Utils.GetValueOrDefault(colVals, "MOBILE_IND");
                    if (!string.IsNullOrEmpty(e.MOBILE_IND_NAME))
                    {
                        T_OE_REF_TAGS mobile1 = db_Ref.GetT_OE_REF_TAGS_ByCategoryAndName("Use Amount", e.MOBILE_IND_NAME);
                        if (mobile1 != null)
                        {
                            e.T_OE_PROJECT.MOBILE_IND = mobile1.TAG_IDX;
                        }
                        else
                        {
                            e.VALIDATE_CD   = false;
                            e.VALIDATE_MSG += "Invalid Mobile Use. ";
                        }
                    }

                    //ADV MON
                    e.ADV_MON_IND_NAME = Utils.GetValueOrDefault(colVals, "ADV_MON_IND");
                    if (!string.IsNullOrEmpty(e.ADV_MON_IND_NAME))
                    {
                        T_OE_REF_TAGS adv1 = db_Ref.GetT_OE_REF_TAGS_ByCategoryAndName("Use Amount", e.ADV_MON_IND_NAME);
                        if (adv1 != null)
                        {
                            e.T_OE_PROJECT.ADV_MON_IND = adv1.TAG_IDX;
                        }
                        else
                        {
                            e.VALIDATE_CD   = false;
                            e.VALIDATE_MSG += "Invalid Advanced Monitoring Use. ";
                        }
                    }

                    //BP MODERN
                    e.BP_MODERN_IND_NAME = Utils.GetValueOrDefault(colVals, "BP_MODERN_IND");
                    if (!string.IsNullOrEmpty(e.BP_MODERN_IND_NAME))
                    {
                        T_OE_REF_TAGS bp1 = db_Ref.GetT_OE_REF_TAGS_ByCategoryAndName("Use Amount", e.BP_MODERN_IND_NAME);
                        if (bp1 != null)
                        {
                            e.T_OE_PROJECT.BP_MODERN_IND = bp1.TAG_IDX;
                        }
                        else
                        {
                            e.VALIDATE_CD   = false;
                            e.VALIDATE_MSG += "Invalid Business Process Improvement Use. ";
                        }
                    }


                    e.PROGRAM_AREAS = Utils.GetValueOrDefault(colVals, "PROGRAM_AREAS");
                    e.FEATURES      = Utils.GetValueOrDefault(colVals, "FEATURES");
                    //********************** CUSTOM POST VALIDATION END ********************************************

                    return(e);
                }
                catch (Exception ex)
                {
                    db_Ref.LogEFException(ex);
                    return(null);
                }
            }
        }