BExIS.IO.Transform.Validation.ValueCheck.DataTypeCheck.Execute C# (CSharp) Method

Execute() public method

public Execute ( string value, int row ) : object
value string
row int
return object
        public object Execute(string value, int row)
        {
            if (!String.IsNullOrEmpty(value))
            {
                switch (dataType)
                {
                    case "Int16":
                        {
                            try
                            {
                                if (!String.IsNullOrEmpty(value)) Convert.ToInt16(value);
                            }
                            catch (Exception ex)
                            {
                                return new Error(ErrorType.Value, "Can not convert to", new object[] { name, value, row, dataType });
                            }

                            return Convert.ToInt16(value);
                        }

                    case "Int32":
                        {
                            try
                            {
                                if (!String.IsNullOrEmpty(value)) Convert.ToInt32(value);
                            }
                            catch (Exception ex)
                            {
                                return new Error(ErrorType.Value, "Can not convert to", new object[] { name, value, row, dataType });
                            }

                            return Convert.ToInt32(value);
                        }

                    case "Double":
                        {
                            //double convertedValue = 0;

                            //if(double.TryParse(value,NumberStyles.Number,CultureInfo.InvariantCulture, out convertedValue))
                            //{
                                if (decimalCharacter.Equals(DecimalCharacter.point))
                                {
                                    string[] temp = value.Split('.');
                                    if (temp.Length <= 2)
                                    {
                                        if (!temp[temp.Length - 1].Contains(',') )
                                        {
                                            return Convert.ToDouble(value, new CultureInfo("en-US"));
                                        }
                                        else
                                        {
                                            return new Error(ErrorType.Value, "False decimal character.", new object[] { name, value, row, dataType });
                                        }
                                    }
                                    else
                                    {
                                        return new Error(ErrorType.Value, "Can not convert to.", new object[] { name, value, row, dataType });
                                    }
                                }

                                if (decimalCharacter.Equals(DecimalCharacter.comma))
                                {
                                    string[] temp = value.Split(',');
                                    if (temp.Length <= 2)
                                    {
                                        if (!temp[temp.Length - 1].Contains('.'))
                                        {
                                            return Convert.ToDouble(value, new CultureInfo("de-DE"));
                                        }
                                        else
                                        {
                                            return new Error(ErrorType.Value, "False decimal character.", new object[] { name, value, row, dataType });
                                        }

                                    }
                                    else
                                    {
                                        return new Error(ErrorType.Value, "Can not convert to.", new object[] { name, value, row, dataType });
                                    }
                                }

                            //}
                            //else
                            //{
                            //    return new Error(ErrorType.Value, "Can not convert to", new object[] { _name, value, row, _dataType });
                            //}

                            return Convert.ToDouble(value);
                        }
                    case "DateTime":
                        {

                            DateTime dateTime;

                            if(DateTime.TryParse(value,out dateTime))
                            {
                                return dateTime;
                            }

                            if(DateTime.TryParse(value,new CultureInfo("de-DE", false),DateTimeStyles.None,out dateTime))
                            {
                                return dateTime;
                            }

                            if(DateTime.TryParse(value,new CultureInfo("en-US", false),DateTimeStyles.None,out dateTime))
                            {
                                return dateTime;
                            }

                            if (DateTime.TryParse(value,CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
                            {
                                return dateTime;
                            }

                            return new Error(ErrorType.Value, "Can not convert to", new object[] { name, value, row, dataType });

                        }
                    case "String":
                        {
                            return value;
                        }

                }
            }
            return value;
        }