Ejemplo n.º 1
0
        private List <ImportParameter> ParseImportParameters(UserImport import, ImportParametersModel parameters)
        {
            var result = new List <ImportParameter>();

            if (!string.IsNullOrWhiteSpace(parameters.DateFormat))
            {
                result.Add(new ImportParameter
                {
                    Import         = import,
                    ParameterName  = ImportParameters.DataTimeFormat.ToString(),
                    ParameterValue = parameters.DateFormat
                });
            }

            if (!string.IsNullOrWhiteSpace(parameters.NumericSeparator))
            {
                result.Add(new ImportParameter
                {
                    Import         = import,
                    ParameterName  = ImportParameters.NumericSeparator.ToString(),
                    ParameterValue = parameters.NumericSeparator
                });
            }

            result.Add(new ImportParameter
            {
                Import         = import,
                ParameterName  = ImportParameters.SetEmptyValueAsNull.ToString(),
                ParameterValue = parameters.EmptyValueIsNull.ToString()
            });

            return(result);
        }
Ejemplo n.º 2
0
        private ParseCellResult ParseCellValue(
            string value,
            ImportParametersModel importParameters,
            ImportHeaderParameters headerParameters)
        {
            if ((importParameters.EmptyValueIsNull && string.IsNullOrWhiteSpace(value)) ||
                "null".Equals(value, StringComparison.CurrentCultureIgnoreCase))
            {
                return(new ParseCellResult {
                    Success = true, ResultValue = null
                });
            }

            switch (headerParameters.DataType)
            {
            case ImportDataTypes.Date:
            {
                if (!string.IsNullOrWhiteSpace(importParameters.DateFormat))
                {
                    DateTime resultValue;
                    if (DateTime.TryParseExact(
                            value,
                            importParameters.DateFormat,
                            CultureInfo.InvariantCulture,
                            DateTimeStyles.None,
                            out resultValue))
                    {
                        return(new ParseCellResult {
                                Success = true, ResultValue = resultValue.ToString()
                            });
                    }
                    else
                    {
                        return(new ParseCellResult {
                                Success = false, ErrorMessage = $"Невдалось розпізнати значення {headerParameters.HeaderName}."
                            });
                    }
                }
                else
                {
                    DateTime resultValue;
                    if (DateTime.TryParse(value, out resultValue))
                    {
                        return(new ParseCellResult {
                                Success = true, ResultValue = resultValue.ToString()
                            });
                    }
                    else
                    {
                        return(new ParseCellResult {
                                Success = false, ErrorMessage = $"Невдалось розпізнати значення {headerParameters.HeaderName}."
                            });
                    }
                }
            }

            case ImportDataTypes.Numeric:
            {
                if (!string.IsNullOrWhiteSpace(importParameters.NumericSeparator))
                {
                    double resultValue;
                    if (TryParseNumber(value, importParameters.NumericSeparator, out resultValue))
                    {
                        return(new ParseCellResult {
                                Success = true, ResultValue = resultValue.ToString()
                            });
                    }
                    else
                    {
                        return(new ParseCellResult {
                                Success = false, ErrorMessage = $"Невдалось розпізнати значення {headerParameters.HeaderName}."
                            });
                    }
                }
                else
                {
                    double resultValue;
                    if (Double.TryParse(value, out resultValue))
                    {
                        return(new ParseCellResult {
                                Success = true, ResultValue = resultValue.ToString()
                            });
                    }
                    else
                    {
                        return(new ParseCellResult {
                                Success = false, ErrorMessage = $"Невдалось розпізнати значення {headerParameters.HeaderName}."
                            });
                    }
                }
            }

            default: return(new ParseCellResult {
                    Success = true, ResultValue = value
                });
            }
        }