Example #1
0
        private async Task ValidateColumnsAsync(IAdminObject migrationObject, IParser parser, List <ImportJobError> violations)
        {
            if (migrationObject != null && parser != null)
            {
                var missingColumns  = new List <String>();
                var requiredColumns = (await migrationObject.GetColumnsAsync()).Select(x => x.ColumnName).ToList();
                var loadFileColumns = parser.ParseColumns();

                foreach (var requiredColumn in requiredColumns)
                {
                    if (!loadFileColumns.Contains(requiredColumn))
                    {
                        missingColumns.Add(requiredColumn);
                    }
                }

                if (missingColumns.Any())
                {
                    var formattedMissingColumnList = String.Join(Constant.CommaSeparator, missingColumns);
                    violations.Add(new ImportJobError()
                    {
                        Message = String.Format(Constant.ErrorMessages.MissingColumnsError, formattedMissingColumnList), LineNumber = null, Type = Constant.ImportUtilityJob.ErrorType.FileLevel
                    });
                }
            }
        }
Example #2
0
        private async Task ValidateFileDoesNotContainExtraColumnsAsync(IAdminObject migrationObject, IParser parser, String migrationObjectType, List <ImportJobError> violations)
        {
            if (migrationObject != null && parser != null)
            {
                var requiredColumns = (await migrationObject.GetColumnsAsync()).Select(x => x.ColumnName).ToList();
                var loadFileColumns = parser.ParseColumns();

                var extraColumns = loadFileColumns.Except(requiredColumns);

                if (extraColumns.Any())
                {
                    var formattedExtraColumnList = String.Join(Constant.CommaSeparator, extraColumns);
                    violations.Add(new ImportJobError()
                    {
                        Message = String.Format(Constant.ErrorMessages.ExtraColumnsError, migrationObjectType, formattedExtraColumnList), LineNumber = null, Type = Constant.ImportUtilityJob.ErrorType.FileLevel
                    });
                }
            }
        }
        public async Task WriteColumnHeadersToExportFileAsync(FileInfo tempFileInfo, String objectTypeEnum)
        {
            try
            {
                using (StreamWriter streamWriter = tempFileInfo.AppendText())                 //creates file if it does not already exists
                {
                    IAdminObject migrationObject = await Utility.GetImportObjectSelectionAsync(objectTypeEnum);

                    String[] headers             = (await migrationObject.GetColumnsAsync()).Select(x => x.ColumnName).ToArray();
                    String   csvFormattedColumns = await Utility.FormatCsvLineAsync(headers);

                    //write header
                    await streamWriter.WriteLineAsync(csvFormattedColumns);
                }
            }
            catch (Exception ex)
            {
                throw new AdminMigrationUtilityException(Constant.ErrorMessages.WritingColumnHeadersToExportFileError, ex);
            }
        }