Wednesday, February 3, 2010

General Validation Hint in CS File

public bool CheckError()
        { //check error for all records
            strError.Append("0");
            bool blnReturnVal = true;
            for (int i = 0; i < dtbValidate.Rows.Count; i++)
            {
                DataRow drValidation = dtbValidate.Rows[i];
                string command = drValidation["command"].ToString().ToLower();

                # region validation check
                switch (command)
                {
                    case "required":
                        {
                            if (drValidation["value"].ToString().Trim().Length <= 0)
                            {
                                strError.Append("");
                                blnReturnVal = false;
                            }
                            break;
                        }
                    case "greater":
                        {
                            if (Convert.ToInt64(drValidation["value"].ToString()) >
                                Convert.ToInt64(drValidation["conditionValue"].ToString().Trim()))
                            {
                                strError.Append("");
                                blnReturnVal = false;
                            }
                            break;
                        }

                    case "maxlen":
                        {
                            int intMaxLength = 0;
                            try { intMaxLength = Convert.ToInt32(drValidation["conditionValue"].ToString().Trim()); }
                            catch { }
                            if (drValidation["value"].ToString().Trim().Length > intMaxLength)
                            {
                                strError.Append("");
                                blnReturnVal = false;
                            }
                            break;
                        }
                    case "minlen":
                        {
                            int intMinLength = 0;
                            try { intMinLength = Convert.ToInt32(drValidation["conditionValue"].ToString().Trim()); }
                            catch { }
                            if (drValidation["value"].ToString().Trim().Length < intMinLength)
                            {
                                strError.Append("");
                                blnReturnVal = false;
                            }
                            break;
                        }
                    case "arrlen":
                        {
                            int intMinLength = 1;
                            try { intMinLength = Convert.ToInt32(drValidation["conditionValue"].ToString().Trim()); }
                            catch { }
                            if (Convert.ToInt32(drValidation["value"].ToString()) < intMinLength)
                            {
                                strError.Append("");
                                blnReturnVal = false;
                            }
                            break;
                        }
                    case "notequal":
                        {
                            if (drValidation["value"].ToString() != drValidation["conditionValue"].ToString())
                            {
                                strError.Append("");
                                blnReturnVal = false;
                            }
                            break;
                        }
                    case "flag":
                        {
                            bool blnValidFlag = false;
                            string[] strFlags = drValidation["conditionValue"].ToString().Split('|');

                            if (!string.IsNullOrEmpty(drValidation["value"].ToString().Trim()))
                            {
                                for (int intFlag = 0; intFlag < strFlags.Length; intFlag++)
                                {
                                    if (drValidation["value"].ToString().ToUpper().Equals(strFlags[intFlag].ToString().ToUpper()))
                                    {
                                        blnValidFlag = true;
                                        break;
                                    }
                                }

                                if (!blnValidFlag)
                                {
                                    blnReturnVal = false;
                                    strError.Append("");
                                }
                            }

                            break;
                        }
                    case "equal":
                        {
                            if (drValidation["value"].ToString() == drValidation["conditionValue"].ToString())
                            {
                                strError.Append("");
                                blnReturnVal = false;
                            }
                            break;
                        }
                    case "lessthan":
                        {
                            if (Convert.ToInt64(drValidation["value"].ToString()) <
                                Convert.ToInt64(drValidation["conditionValue"].ToString()))
                            {
                                strError.Append("");
                                blnReturnVal = false;
                            }
                            break;
                        }
                    case "alphanumeric":
                        {
                            Regex regExpression = new Regex("[^A-Za-z0-9]");
                            if (drValidation["value"].ToString().Trim().Length > 0)
                                if (regExpression.Matches(drValidation["value"].ToString().Trim()).Count > 0)
                                {
                                    strError.Append("");
                                    blnReturnVal = false;
                                }
                            break;
                        }
                    case "numeric":
                        {
                            Regex regExpression = new Regex("[^0-9.]");
                            if (drValidation["value"].ToString().Trim().Length > 0)
                                if (regExpression.Matches(drValidation["value"].ToString().Trim()).Count > 0)
                                {
                                    strError.Append("");
                                    blnReturnVal = false;
                                }
                            break;
                        }
                    case "alphabetic":
                        {
                            Regex regExpression = new Regex("[^A-Za-z ]");

                            if (drValidation["value"].ToString().Trim().Length > 0)
                                if (regExpression.Matches(drValidation["value"].ToString().Trim()).Count > 0)
                                {
                                    strError.Append("");
                                    blnReturnVal = false;
                                }
                            break;
                        }
                    case "alnumhyphen":
                        {
                            Regex regExpression = new Regex("[^A-Za-z0-9\\-_]");
                            if (drValidation["value"].ToString().Trim().Length > 0)
                                if (regExpression.Matches(drValidation["value"].ToString().Trim()).Count > 0)
                                {
                                    strError.Append("");
                                    blnReturnVal = false;
                                }
                            break;
                        }
                    case "email":
                        {
                            Regex regExpression = new Regex("^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$");
                            if (drValidation["value"].ToString().Trim().Length > 0)
                                if (!regExpression.IsMatch(drValidation["value"].ToString().Trim()))
                                {
                                    strError.Append("");
                                    blnReturnVal = false;
                                }
                            break;
                        }
                    case "date":
                        {
                            Regex regExpression = new Regex(@"(0[1-9]|[12][0-9]|3[01])[/](0[1-9]|1[012])[/](19|20)\d\d");
                            if (drValidation["value"].ToString().Trim().Length > 0)
                                if (!regExpression.IsMatch(drValidation["value"].ToString().Trim()))
                                {
                                    strError.Append("");
                                    blnReturnVal = false;
                                }
                            break;
                        }
                    case "time":
                        {
                            //Regex regExpression = new Regex(@"^(\d{2}):(\d{2})\s{1}(([aA])|([pP]))[mM]$");
                            //new Regex(@"^(\d{2}):(\d{2})\s{1}([AP]M)$");
                            // ^(([1-9]{1})|([0-1][1-2])|(0[1-9])|([1][0-2])):([0-5][0-9])(([aA])|([pP]))[mM]$
                            Regex regExpression = new Regex(@"^(([1-9]{1})|([0-1][1-2])|(0[1-9])|([1][0-2])):([0-5][0-9])\s{1}(([aA])|([pP]))[mM]$");
                            if (drValidation["value"].ToString().Trim().Length > 0)
                                if (!regExpression.IsMatch(drValidation["value"].ToString().Trim()))
                                {
                                    strError.Append("");
                                    blnReturnVal = false;
                                }
                            break;
                        }
                    case "validtime":
                        {
                            //bool blnValidFlag = false;
                            DateTime dtStartTime = new DateTime();
                            DateTime dtEndTime = new DateTime();
                            DateTime dtNewDate = new DateTime();
                            string strStartTime = string.Empty;
                            string strEndTime = string.Empty;
                            string strStartPM = string.Empty;
                            string strEndPM = string.Empty;
                            string[] strFlags = drValidation["conditionValue"].ToString().Split('|');

                            Regex regExpression = new Regex(@"^(([1-9]{1})|([0-1][1-2])|(0[1-9])|([1][0-2])):([0-5][0-9])\s{1}(([aA])|([pP]))[mM]$");



                            if (!string.IsNullOrEmpty(drValidation["value"].ToString().Trim()))
                            {
                                if (strFlags.Length.Equals(2))
                                {
                                    strStartTime = strFlags[0].ToString().ToUpper();
                                    strEndTime = strFlags[1].ToString().ToUpper();



                                    if (regExpression.IsMatch(strStartTime.ToString().Trim()) &&
                                        regExpression.IsMatch(strEndTime.ToString().Trim()))
                                    {
                                        strStartPM = strStartTime.Substring(strStartTime.IndexOf(" ")).Trim();
                                        strEndPM = strEndTime.Substring(strEndTime.IndexOf(" ")).Trim();

                                        dtStartTime = Convert.ToDateTime(strStartTime);
                                        dtEndTime = Convert.ToDateTime(strEndTime);

                                        if (strStartPM.ToUpper().Equals("PM"))
                                        {
                                            if (strEndPM.ToUpper().Equals("AM"))
                                            {
                                                dtEndTime = dtEndTime.AddDays(1);
                                            }
                                        }

                                        TimeSpan tsTimeDiff = dtEndTime.Subtract(dtStartTime);

                                        if (tsTimeDiff.Minutes < 0 || tsTimeDiff.Hours < 0)
                                        {
                                            blnReturnVal = false;
                                            strError.Append("");
                                        }
                                        else if (dtStartTime.CompareTo(dtEndTime) == 0)
                                        {
                                            blnReturnVal = false;
                                            strError.Append("");
                                        }
                                    }
                                }
                                else
                                {
                                    // blnReturnVal = false;
                                    //  strError.Append("");
                                }

                            }

                            break;
                        }
                    case "phone":
                        {
                            Regex regExpression = new Regex("[^0-9\\-+()/. ]");
                            if (drValidation["value"].ToString().Trim().Length > 0)
                                if (regExpression.Matches(drValidation["value"].ToString().Trim()).Count > 0)
                                {
                                    strError.Append("");
                                    blnReturnVal = false;
                                }
                            break;
                        }
                    case "password":
                        {
                            int intValid = 0;
                            Regex regExpSmallChar = new Regex("[a-z ]");
                            Regex regExpUpperChar = new Regex("[A-Z ]");
                            Regex regExpNumeric = new Regex("[0-9]");
                            if (drValidation["value"].ToString().Trim().Length > 0)
                            {
                                if (regExpSmallChar.Matches(drValidation["value"].ToString().Trim()).Count > 0)
                                {
                                    intValid++;
                                    if (regExpUpperChar.Matches(drValidation["value"].ToString().Trim()).Count > 0)
                                    {
                                        intValid++;
                                        if (regExpNumeric.Matches(drValidation["value"].ToString().Trim()).Count > 0)
                                        {
                                            intValid++;
                                        }
                                    }
                                }

                                if (intValid < 3)
                                {
                                    strError.Append("");
                                    blnReturnVal = false;
                                }
                            }
                            break;
                        }
                    case "datediff":
                        {
                            DateTime dtStartDate = new DateTime();
                            DateTime dtEndDate = new DateTime();
                            DateTime dtExpStartDate = new DateTime();
                            DateTime dtExpEndDate = new DateTime();
                            int intYear;
                            int intMonth;
                            int intDay;
                            int intYear1;
                            int intMonth1;
                            int intDay1;


                            string[] strFlags = drValidation["conditionValue"].ToString().Split('|');

                            //Regex regExpression = new Regex(@"(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d");
                            Regex regExpression = new Regex(@"(0[1-9]|[12][0-9]|3[01])[/](0[1-9]|1[012])[/](19|20)\d\d");

                            if (drValidation["value"].ToString().Trim().Length > 0)
                            {
                                if (strFlags.Length.Equals(2))
                                {
                                    if (regExpression.IsMatch(strFlags[0].ToString().Trim()) &&
                                                regExpression.IsMatch(strFlags[1].ToString().Trim()))
                                    {
                                        intYear = int.Parse(strFlags[0].ToString().Substring(strFlags[0].ToString().LastIndexOf("/") + 1));
                                        intMonth = int.Parse(strFlags[0].ToString().Substring(strFlags[0].ToString().IndexOf("/") + 1, 2));
                                        intDay = int.Parse(strFlags[0].ToString().Substring(0, 2));
                                        dtExpStartDate = new DateTime(intYear, intMonth, intDay);

                                        intYear1 = int.Parse(strFlags[1].ToString().Substring(strFlags[1].ToString().LastIndexOf("/") + 1));
                                        intMonth1 = int.Parse(strFlags[1].ToString().Substring(strFlags[1].ToString().IndexOf("/") + 1, 2));
                                        intDay1 = int.Parse(strFlags[1].ToString().Substring(0, 2));
                                        dtExpEndDate = new DateTime(intYear1, intMonth1, intDay1);

                                        if (DateTime.Compare(dtExpEndDate, dtExpStartDate) < 0)
                                        {
                                            strError.Append("");
                                            blnReturnVal = false;
                                        }
                                    }
                                }
                            }
                            break;
                        }
                    default:
                        break;
                }
                # endregion

            }
            strError.Append("
");
            return blnReturnVal;
        }

        #endregion

        #endregion
    }

No comments:

Post a Comment