public RowRecord Add(IExcelRow row, ISheet sheet, IExcelRowParseResult parseResult) { if (row == null) { throw new ArgumentNullException(nameof(row)); } if (sheet == null) { throw new ArgumentNullException(nameof(sheet)); } var excelFileRecord = sheet.Parent as ExcelFileRecord; if (excelFileRecord == null) { throw new ArgumentException("could not cast container as ExcelFileRecord"); } var sheetRecord = sheet as SheetRecord; if (sheetRecord == null) { throw new ArgumentException("could not cast sheet as SheetRecord"); } var rowRecord = new RowRecord(row, sheetRecord, parseResult); db.Add(rowRecord); return(rowRecord); }
public virtual async Task <IdInStoreValidationResult> ValidateIds(IExcelRowParseResult parseResult, IExcelRowParseRequest request) { var result = new IdInStoreValidationResult(); if (!parseResult.InvalidIdValue.Value) { var found = await repo.RowRecordExists(request.Row.Sheet, parseResult.UserDefinedId.Value); if (found.HasValue) { result.IdDuplicate = true; } } if (parseResult.ForeignUserDefinedId.HasValue) { var found = await repo.RowRecordExists(request.Row.Sheet.Parent.Sheets.FirstOrDefault(x => x.Index == 0) , parseResult.ForeignUserDefinedId.Value); if (!found.HasValue) { result.ForeignIdNotFound = true; } else { result.ForeignId = found.Value; } } return(result); }
public void FillParseResult(IExcelRowParseResult parseResult) { UserDefinedId = parseResult.UserDefinedId; ForeignUserDefinedId = parseResult.ForeignUserDefinedId; InvalidIdValue = parseResult.InvalidIdValue; InvalidForeignIdValue = parseResult.InvalidForeignIdValue; InvalidCells = parseResult.InvalidCells; IdDuplicate = parseResult.IdDuplicate; ForeignIdNotFound = parseResult.ForeignIdNotFound; ForeignId = parseResult.ForeignId; RowAsData = parseResult.RowAsData; ParseOk = !parseResult.HasErrors(); }
public RowRecord(IExcelRow row, SheetRecord sheet, IExcelRowParseResult parseResult) { FillData(row, sheet); FillParseResult(parseResult); }
public static bool HasErrors(this IExcelRowParseResult result) => result.InvalidIdValue.IsInvalidNullable() || result.InvalidForeignIdValue.IsInvalidNullable() || result.IdDuplicate.IsInvalidNullable() || result.ForeignIdNotFound.IsInvalidNullable() || (result.InvalidCells != null && result.InvalidCells.Length > 0);