示例#1
0
        private static void ConvertToXSDDataType(XSD_DATA_TYPES dataType, ref string attValue)
        {
            switch (dataType)
            {
            case XSD_DATA_TYPES.xsd_long:
                attValue = "0";
                break;

            case XSD_DATA_TYPES.xsd_boolean:
                attValue = "0";
                break;

            case XSD_DATA_TYPES.xsd_string:
                attValue = "0";
                break;

            case XSD_DATA_TYPES.xsd_datetime:
                //try to see if it will convert to the corresponding schema datatype
                DateTime dtToday = new DateTime();
                dtToday  = (DateTime)DateTime.Today;
                attValue = dtToday.ToString("yyyy-MM-dd");
                break;

            case XSD_DATA_TYPES.xsd_decimal:
                attValue = "0";
                Decimal dDataType = Convert.ToDecimal(attValue);
                attValue = dDataType.ToString("f2");
                break;

            case XSD_DATA_TYPES.xsd_double:
                attValue = "0";
                double dbDataType = Convert.ToDouble(attValue);
                //maximum reasonable precision in this network
                attValue = dbDataType.ToString("N4");
                break;

            case XSD_DATA_TYPES.xsd_int:
                attValue = "0";
                break;

            case XSD_DATA_TYPES.xsd_float:
                attValue = "0";
                float fDataType = Convert.ToSingle(attValue);
                //maximum reasonable precision in this network
                attValue = fDataType.ToString("N4");
                break;

            case XSD_DATA_TYPES.xsd_short:
                attValue = "0";
                break;

            case XSD_DATA_TYPES.xsd_unsignedbyte:
                attValue = "0";
                break;

            default:
                break;
            }
        }
示例#2
0
        private static XSD_DATA_TYPES GetXSDDataType(string dataType)
        {
            XSD_DATA_TYPES eDataType = XSD_DATA_TYPES.none;

            switch (dataType)
            {
            case "long":
                eDataType = XSD_DATA_TYPES.xsd_long;
                break;

            case "bool":
                eDataType = XSD_DATA_TYPES.xsd_boolean;
                break;

            case "boolean":
                eDataType = XSD_DATA_TYPES.xsd_boolean;
                break;

            case "string":
                eDataType = XSD_DATA_TYPES.xsd_string;
                break;

            case "datetime":
                eDataType = XSD_DATA_TYPES.xsd_datetime;
                break;

            case "date":
                eDataType = XSD_DATA_TYPES.xsd_datetime;
                break;

            case "decimal":
                eDataType = XSD_DATA_TYPES.xsd_decimal;
                break;

            case "money":
                eDataType = XSD_DATA_TYPES.xsd_decimal;
                break;

            case "double":
                eDataType = XSD_DATA_TYPES.xsd_double;
                break;

            case "int":
                eDataType = XSD_DATA_TYPES.xsd_int;
                break;

            case "integer":
                eDataType = XSD_DATA_TYPES.xsd_int;
                break;

            case "float":
                eDataType = XSD_DATA_TYPES.xsd_float;
                break;

            case "real":
                eDataType = XSD_DATA_TYPES.xsd_float;
                break;

            case "short":
                eDataType = XSD_DATA_TYPES.xsd_short;
                break;

            case "unsignedbyte":
                eDataType = XSD_DATA_TYPES.xsd_unsignedbyte;
                break;

            case "xml":
                eDataType = XSD_DATA_TYPES.xsd_xml;
                break;

            default:
                break;
            }
            return(eDataType);
        }
示例#3
0
        public static void ValidateXSDInput(
            string attName, ref string attValue, string dataType,
            string size)
        {
            XSD_DATA_TYPES eDataType = GetXSDDataType(dataType.ToLower());

            //prevent empty data submissions
            if (attValue == string.Empty || attValue == null)
            {
                attValue = "0";
            }
            if (string.IsNullOrEmpty(size))
            {
                size = NAME_SIZE;
            }
            switch (eDataType)
            {
            case XSD_DATA_TYPES.xsd_long:
                long lResult = Helpers.GeneralHelpers.ConvertStringToLong(attValue);
                attValue = lResult.ToString();
                break;

            case XSD_DATA_TYPES.xsd_boolean:
                //1==true and 0==false - only values that should be passed to db
                if (attValue != "1" && attValue != "0")
                {
                    attValue = "0";
                }
                break;

            case XSD_DATA_TYPES.xsd_string:
                //these rules are ok for mathexpression
                int iSize = (size == string.Empty || size == null)
                        ? 0 : Helpers.GeneralHelpers.ConvertStringToInt(size);
                //don't allow database string size limitations to be exceeded
                if (attValue.Length > iSize)
                {
                    int iRemove = attValue.Length - iSize;
                    attValue = attValue.Remove(iSize, iRemove);
                }
                //validate names and labels
                ValidateNameStrings(attName, ref attValue);
                ValidateSpecialAttributes(attName, ref attValue);
                break;

            case XSD_DATA_TYPES.xsd_datetime:
                DateTime dtDataType = Helpers.GeneralHelpers.ConvertStringToDate(attValue);
                attValue = dtDataType.ToString("yyyy-MM-dd");
                break;

            case XSD_DATA_TYPES.xsd_decimal:
                //check for illegal price chars
                //refactor: needs regex that replaces nonnumeric except period
                attValue = Replace("$", attValue);
                attValue = Replace(",", attValue);
                Decimal dDataType = Helpers.GeneralHelpers.ConvertStringToDecimal(attValue);
                attValue = dDataType.ToString("N4");
                break;

            case XSD_DATA_TYPES.xsd_double:
                double dbDataType = Helpers.GeneralHelpers.ConvertStringToDouble(attValue);
                //maximum reasonable precision for storage of db field data
                attValue = dbDataType.ToString("N4");
                break;

            case XSD_DATA_TYPES.xsd_int:
                int iDataType = Helpers.GeneralHelpers.ConvertStringToInt(attValue);
                attValue = iDataType.ToString();
                break;

            case XSD_DATA_TYPES.xsd_float:
                float fDataType = Helpers.GeneralHelpers.ConvertStringToFloat(attValue);
                //maximum reasonable precision for storage of db field data
                attValue = fDataType.ToString("N4");
                break;

            case XSD_DATA_TYPES.xsd_short:
                short shDataType = Helpers.GeneralHelpers.ConvertStringToShort(attValue);
                attValue = shDataType.ToString();
                break;

            case XSD_DATA_TYPES.xsd_unsignedbyte:
                try
                {
                    byte btDataType = Convert.ToByte(attValue);
                }
                catch
                {
                    //won't convert correctly when adding to db; do the conversion manually
                    ConvertToXSDDataType(eDataType, ref attValue);
                }
                break;

            default:
                break;
            }
        }