public async Task <IActionResult> Diary(string babyName, string inputDate) { var date = DateTime.Now; if (!string.IsNullOrEmpty(inputDate)) { date = DateTime.Parse(inputDate); } var entries = await _sqLiteService.GetEntriesFromDb(date, User, babyName); var importResultModel = new ImportResultModel { Entries = entries }; var model = DiaryService.GetDays(importResultModel); model.Date = date.ToString("yyyy-MM-dd"); model.DateNext = date.AddDays(1).ToString("yyyy-MM-dd"); model.DatePrevious = date.AddDays(-1).ToString("yyyy-MM-dd"); model.BabyName = babyName; model.Profile = await _accountService.GetProfile(User); var memories = await _sqLiteService.GetMemoriesFromDb(DateTime.Now, User, babyName); model.MemoriesBadgeCount = memories.Count; model.ShowMemoriesLink = true; ViewData["LastEntry"] = await _sqLiteService.GetLastEntryDateTime(User, babyName); return(View("Diary", model)); }
private async Task <string> GetMJML(List <EntryModel> memories, string userId, string babyName) { var importResultModel = new ImportResultModel { Entries = memories }; var model = DiaryService.GetDays(importResultModel); model.BabyName = babyName; model.MemoriesBadgeCount = memories.Count; model.ShowMemoriesLink = true; model.BaseUrl = _configuration["BASE_URL"]; model.Profile = new Profile { UserId = userId }; model.Entries = model.Entries .OrderByDescending(entry => entry.TimeUTC.Year) .OrderBy(entry => entry.TimeUTC.TimeOfDay); var mjml = await RazorTemplateEngine.RenderAsync("/Views/Emails/MemoriesEmail.cshtml", model); return(mjml); }
public IHttpActionResult ConfirmImport(ImportResultModel model) { if (model != null) { try { if (model.Books != null && model.Books.Any()) { DataContext.Books.InsertAllOnSubmit(model.Books.Where(bs => bs.Selected) .Select(book => new Book() { Amount = book.Amount, Author = book.Author, Genre = book.Genre, Pages = book.Pages, PhotoId = book.PhotoId, Price = book.Price, Title = book.Title, Year = book.Year })); DataContext.SubmitChanges(); } if (model.Journals != null && model.Journals.Any()) { DataContext.Journals.InsertAllOnSubmit(model.Journals.Where(jour => jour.Selected) .Select(journal => new Journal() { Amount = journal.Amount, Periodicity = journal.Periodicity, Subjects = journal.Subjects, Date = journal.Date, PhotoId = journal.PhotoId, Price = journal.Price, Title = journal.Title })); DataContext.SubmitChanges(); } if (model.Newspapers != null && model.Newspapers.Any()) { DataContext.Newspapers.InsertAllOnSubmit(model.Newspapers.Where(np => np.Selected) .Select(newspaper => new Newspaper() { Amount = newspaper.Amount, Periodicity = newspaper.Periodicity, Date = newspaper.Date, PhotoId = newspaper.PhotoId, Price = newspaper.Price, Title = newspaper.Title })); DataContext.SubmitChanges(); } } catch (Exception e) { return(InternalServerError(e)); } } return(Ok()); }
private async Task HandleSuccessedImportResultAsync(ImportResultModel importResult) { var importRequest = await _importRequestRepository.GetAsync(importResult.RequestId); var importInfo = new ImportInfo { ImportedTvMazeShowId = importRequest.TvMazeShowId }; await _importInfoRepository.AddAsync(importInfo); await _importRequestRepository.DeleteAsync(importResult.RequestId); }
public async Task <IActionResult> Memories(string babyName) { var memories = await _sqLiteService.GetMemoriesFromDb(DateTime.Now, User, babyName); var importResultModel = new ImportResultModel { Entries = memories }; var model = DiaryService.GetDays(importResultModel); model.BabyName = babyName; model.MemoriesBadgeCount = memories.Count; model.ShowMemoriesLink = true; model.Profile = await _accountService.GetProfile(User); return(View("Memories", model)); }
public ImportResultModel Import(Stream stream, ImportSheetModel sheet, bool isCoverData) { ImportResultModel result = new ImportResultModel(); using (var xlPackage = new ExcelPackage(stream)) { var worksheet = xlPackage.Workbook.Worksheets[sheet.SheetName]; if (worksheet == null) { throw new Exception("未找到名为 " + sheet.SheetName + " 的Sheet"); } for (var i = 1; i <= sheet.ColCount; i++) { result.HeaderRow.Add(worksheet.Cells[sheet.HeaderRowIndex, i].Value == null ? "" : worksheet.Cells[sheet.HeaderRowIndex, i].Value.ToString().Trim()); } var extraCols = new List <string>(); if (sheet.ExtraCols != null && sheet.ExtraCols.Count > 0) { ProcessExtraData(sheet, isCoverData, result, worksheet, extraCols); if (result.ErrorRows.Count > 0) { result.Result = ImportResult.Failed; return(result); } } ProcessMainData(sheet, isCoverData, result, worksheet, extraCols); } if (result.ErrorRows.Count > 0) { result.Result = ImportResult.Failed; } else { result.Result = ImportResult.Successful; } return(result); }
public async Task <IHttpActionResult> UploadImportFile() { ImportResultModel result = new ImportResultModel(); MultipartMemoryStreamProvider provider = new MultipartMemoryStreamProvider(); await Request.Content.ReadAsMultipartAsync(provider); foreach (HttpContent content in provider.Contents) { byte[] fileBytes = await content.ReadAsByteArrayAsync(); try { FileInfo info = new FileInfo(content.Headers.ContentDisposition.FileName.Trim('\"')); result = ImportHelper.Import(new MemoryStream(fileBytes), info.Extension == ".xml"); } catch (Exception e) { return(InternalServerError(e)); } } return(Ok(result)); }
public async Task ImportAsync(IEnumerable <ImportRequestModel> importRequests) { importRequests = importRequests.ToList(); var shows = importRequests.Select(request => request.Show).ToList(); var importResults = new ImportResultModel[importRequests.Count()]; // Try adding shows within a single transaction if (await _showsService.AddShowsAsync(shows)) { _logger.LogInformation(_strings[StringsEnum.START_SHOW_IMPORT_SINGLE_BLOCK]); int index = 0; foreach (var request in importRequests) { importResults[index] = new ImportResultModel(request.Id, true, shows[index].Id); ++index; } } // If failed, try adding one by one else { _logger.LogInformation(_strings[StringsEnum.FAILED_SHOW_IMPORT_SINGLE_BLOCK]); _logger.LogInformation(_strings[StringsEnum.START_SHOW_IMPORT_ONE_BY_ONE]); int index = 0; foreach (var request in importRequests) { var importSuccess = await _showsService.AddShowAsync(request.Show); importResults[index] = new ImportResultModel(request.Id, importSuccess, request.Show.Id); ++index; } } _communicationService.EnqueueImportResults(importResults); }
public IHttpActionResult Import(ImportModel importModel) { var database = Sitecore.Configuration.Factory.GetDatabase("master"); var languageItem = database.GetItem(importModel.Language); var uploadedFile = (MediaItem)database.GetItem(importModel.MediaItemId); if (uploadedFile == null) { return(new JsonResult <ImportResultModel>(null, new JsonSerializerSettings(), Encoding.UTF8, this)); } ImportResultModel result; try { var args = new ImportItemsArgs { Database = database, FileExtension = uploadedFile.Extension.ToLower(), FileStream = uploadedFile.GetMediaStream(), RootItemId = new ID(importModel.ImportLocationId), TargetLanguage = Sitecore.Globalization.Language.Parse(languageItem.Name), Map = Map.Factory.BuildMapInfo(new ID(importModel.MappingId)), ImportOptions = new ImportOptions { CsvDelimiter = new[] { importModel.CsvDelimiter }, QuotationMark = importModel.QuotationMark, MultipleValuesImportSeparator = importModel.MultipleValuesSeparator, TreePathValuesImportSeparator = @"\", FirstRowAsColumnNames = importModel.FirstRowAsColumnNames } }; args.ImportOptions.ExistingItemHandling = (ExistingItemHandling) Enum.Parse(typeof(ExistingItemHandling), importModel.ExistingItemHandling); args.ImportOptions.InvalidLinkHandling = (InvalidLinkHandling) Enum.Parse(typeof(InvalidLinkHandling), importModel.InvalidLinkHandling); args.ImportOptions.DataStructureType = (DataStructureType) Enum.Parse(typeof(DataStructureType), importModel.DataStructureType); Sitecore.Diagnostics.Log.Info( string.Format("EzImporter: mappingId:{0} mediaItemId:{1} firstRowAsColumnNames:{2}", importModel.MappingId, importModel.MediaItemId, args.ImportOptions.FirstRowAsColumnNames), this); args.Timer.Start(); CorePipeline.Run("importItems", args); args.Timer.Stop(); if (args.Aborted) { result = new ImportResultModel { HasError = true, Log = args.Statistics.ToString(), ErrorMessage = args.Message, ErrorDetail = args.ErrorDetail }; } else { result = new ImportResultModel { Log = args.Statistics.ToString() + " Duration: " + args.Timer.Elapsed.ToString("c") }; } } catch (Exception ex) { result = new ImportResultModel { HasError = true, ErrorMessage = ex.Message, ErrorDetail = ex.ToString() }; } return(new JsonResult <ImportResultModel>(result, new JsonSerializerSettings(), Encoding.UTF8, this)); }
public static ImportResultModel Import(Stream stream, bool isXml) { ImportResultModel result = new ImportResultModel(); try { switch (GetType(stream, isXml)) { case "Book": result.Books = ImportBooks(stream, isXml).Select(b => new ExportableBookModel { Id = b.Id, Amount = b.Amount, PhotoId = b.PhotoId, Pages = b.Pages, Genre = b.Genre, Author = b.Author, Title = b.Title, Year = b.Year, Price = b.Price, Selected = true, PhotoPath = b.PhotoPath }).ToList(); break; case "Journal": result.Journals = ImportJournals(stream, isXml).Select(b => new ExportableJournalModel() { Id = b.Id, Date = b.Date, Amount = b.Amount, PhotoId = b.PhotoId, Periodicity = b.Periodicity, Subjects = b.Subjects, Title = b.Title, Price = b.Price, Selected = true, PhotoPath = b.PhotoPath }) .ToList(); break; case "Newspaper": result.Newspapers = ImportNewspapers(stream, isXml).Select(b => new ExportableNewspaperModel() { Id = b.Id, Date = b.Date, Amount = b.Amount, PhotoId = b.PhotoId, Periodicity = b.Periodicity, Title = b.Title, Price = b.Price, Selected = true, PhotoPath = b.PhotoPath }) .ToList(); break; } } catch (Exception e) { result.Message = e.Message; return(result); } return(result); }
public static DiaryViewModel GetDays(ImportResultModel model) => new DiaryViewModel { Days = model.Entries.OrderByDescending(e => e.Time).GroupBy(e => e.Time.Date), Entries = model.Entries.OrderByDescending(e => e.Time) };
public ActionResult SummitImport(string CityId, string CountyId, string ProjectId, int isRename = 1) { var file = Request.Files[0]; string path = @"D:\项目\聚力环境测评系统\NFine.Web\bin\TemporaryFilesDiskPath\"; string fileName = file.FileName; string filePath = Path.Combine(path, fileName); ImportResultModel result = new ImportResultModel(); int failureQuantity, successfulQuantity; try { if (NFine.Code.FileHelper.IsExistFile(path)) { NFine.Code.FileHelper.DeleteFile(path); } file.SaveAs(filePath); using (ExcelHelper exHelp = new ExcelHelper(filePath)) { var datatable = exHelp.ExcelToDataTable(filePath, true); ProfileSanitationGarbageBoxEntity[] models = new ProfileSanitationGarbageBoxEntity[datatable.Rows.Count]; ProfileSanitationGarbageBoxEntity model; for (int i = 0; i < datatable.Rows.Count; i++) { model = new ProfileSanitationGarbageBoxEntity(); var code = datatable.Rows[i]["序"].ToString(); var streetName = datatable.Rows[i]["街道"].ToString(); var garbageBoxTypeName = datatable.Rows[i]["类型"].ToString(); var address = datatable.Rows[i]["地址"].ToString(); string streetKey = ""; var streetList = StreetApp.GetDictionary(d => d.StreetName == streetName); if (streetList.Count > 0) { streetKey = streetList[0].Key; } else { continue; } model.F_EnCode = int.Parse(code); model.CityId = CityId; model.CountyId = CountyId; model.ProjectId = ProjectId; model.StreetId = streetKey; model.Address = address; models[i] = model; } App.ImportData(models, out successfulQuantity, out failureQuantity); result.IsSucceed = true; result.FailureQuantity = failureQuantity; result.SuccessfulQuantity = successfulQuantity; result.TotalQuantity = models.Length; } } catch (Exception ex) { result.IsSucceed = false; result.ErrorMessage = ex.ToString(); } finally { if (NFine.Code.FileHelper.IsExistFile(path)) { NFine.Code.FileHelper.DeleteFile(path); } } return(Success(string.Format("总条数:{0},成功条数:{1},失败条数:{2}", result.TotalQuantity, result.FailureQuantity, result.ErrorMessage))); }
private static void ProcessExtraData(ImportSheetModel sheet, bool isCoverData, ImportResultModel result, ExcelWorksheet worksheet, List <string> extraCols) { foreach (var ex in sheet.ExtraCols) { extraCols.Add(worksheet.Cells[ex.RowIndex, ex.ColIndex].Value == null ? "" : worksheet.Cells[ex.RowIndex, ex.ColIndex].Value.ToString().Trim()); } var modelExtra = new ImportErrorRowModel(); var errorsExtra = new List <ImportErrorColModel>(); try { sheet.ParseToEntityExtra(extraCols, ref errorsExtra, isCoverData); if (errorsExtra.Count > 0) { modelExtra.RowIndex = 0; modelExtra.Values = extraCols; modelExtra.ErrorCols = errorsExtra; result.ErrorRows.Add(modelExtra); } } catch (Exception e) { modelExtra.RowIndex = 0; modelExtra.Values = extraCols; modelExtra.ErrorCols.Add(new ImportErrorColModel() { ColName = "", Message = e.ToString(), }); result.ErrorRows.Add(modelExtra); } }
public ActionResult SummitImport(string CityId, string CountyId, int isRename = 1) { var file = Request.Files[0]; string path = @"D:\项目\卫星设备台账流程管理\NFine.Web\bin\TemporaryFilesDiskPath\"; string fileName = file.FileName; ImportResultModel result = new ImportResultModel(); int failureQuantity, successfulQuantity; try { file.SaveAs(Path.Combine(path, fileName)); #region 导出 if (FileHelper.IsExistFile(Path.Combine(path, fileName))) { FileHelper.DeleteFile(Path.Combine(path, fileName)); using (ExcelHelper exHelp = new ExcelHelper(Path.Combine(path, fileName))) { var datatable = exHelp.ExcelToDataTable(fileName, true); ProfileMainWayEntity[] models = new ProfileMainWayEntity[datatable.Rows.Count]; ProfileMainWayEntity model; for (int i = 0; i < datatable.Rows.Count; i++) { var mainWayName = datatable.Rows[i]["主路名"].ToString(); var jdName = datatable.Rows[i]["街道"].ToString(); var fCode = datatable.Rows[i]["序号"].ToString(); var StreetNamekey = StreetApp.GetDictionary(d => d.StreetName == jdName)[0].Key; var streetModel = StreetApp.GetForm(StreetNamekey); model = new ProfileMainWayEntity() { CityId = streetModel.CityId, CountyId = streetModel.CountyId, StreetId = streetModel.F_Id, MainWayName = mainWayName, F_EnCode = fCode }; models[i] = model; } mainWayApp.ImportData(models, out successfulQuantity, out failureQuantity); result.IsSucceed = true; result.FailureQuantity = failureQuantity; result.SuccessfulQuantity = successfulQuantity; result.TotalQuantity = models.Length; } } #endregion } catch (Exception ex) { result.IsSucceed = false; result.ErrorMessage = ex.ToString(); } finally { } return(Success(string.Format("总条数:{0},成功条数:{1},失败条数:{2}", result.TotalQuantity, result.FailureQuantity, result.ErrorMessage))); }
protected ImportResultModel <TImportModel, TImportOverviewModel> SaveImportResult <TImportModel, TImportOverviewModel>(ImportResultModel <TImportModel, TImportOverviewModel> importResultModel, List <TImportModel> allImportModel, Func <TImportModel, TImportModel> create, Func <TImportModel, TImportModel> update) where TImportModel : IExternalIdHolder { foreach (var updateImportModel in importResultModel.UpdateImportModels) { if (allImportModel.Any(m => m.Id == updateImportModel.Id)) { update(updateImportModel); } else { //We will recreate Deleted Items with a different ID (Deleted between Import and Commit) updateImportModel.Id = Guid.NewGuid(); create(updateImportModel); } } foreach (var updateImportModel in importResultModel.CreateImportModels) { create(updateImportModel); } return(importResultModel); }
protected ImportResultModel <TImportModel, TImportOverviewModel> GetImportResultModel <TImportModel, TImportOverviewModel>(XlsxImportResult <TImportModel> importResult, List <TImportModel> allImportModel, Func <TImportModel, TImportModel, bool> areEqual, Func <TImportModel, TImportModel, bool> isExternalIdEqual, List <string> warnings) where TImportModel : IExternalIdHolder { if (importResult.HasError) { return(new ImportResultModel <TImportModel, TImportOverviewModel>(importResult.ErrorList, warnings)); } var validator = validatorFactory.GetValidator <TImportModel>(); var errorList = new List <string>(); foreach (var modelInfo in importResult.ModelInfos) { ValidationResult validationResult = validator.Validate(modelInfo.Model); errorList.AddRange(validationResult.Errors.Select(e => e.ErrorMessage + string.Format(LocalizationService.GetLocalizedError(ValidationError.RowN), modelInfo.RowNumber))); } LogImportEreigniss(errorList.Count); if (errorList.Any()) { return(new ImportResultModel <TImportModel, TImportOverviewModel>(errorList, warnings)); } var resultModel = new ImportResultModel <TImportModel, TImportOverviewModel>(null, warnings); foreach (var importModel in importResult.ModelInfos.ToList()) { var model = importModel.Model; //case a ExtrnalID matches -> Update if ((allImportModel.FirstOrDefault(m => isExternalIdEqual(m, model))) != null) { model.Id = allImportModel.FirstOrDefault(m => isExternalIdEqual(m, model)).Id; resultModel.UpdateImportModels.Add(model); resultModel.UpdateImportOverviewModels.Add(Translate <TImportModel, TImportOverviewModel>(model)); } else { var firstOrDefaultImprotModel = allImportModel.FirstOrDefault(m => areEqual(m, model)); //we found an entity with if (firstOrDefaultImprotModel != null) { if (string.IsNullOrEmpty(model.ExternalId) || string.IsNullOrEmpty(firstOrDefaultImprotModel.ExternalId)) { model.Id = firstOrDefaultImprotModel.Id; resultModel.UpdateImportModels.Add(model); resultModel.UpdateImportOverviewModels.Add( Translate <TImportModel, TImportOverviewModel>(model)); } //non of the ExternalIds is null but they are not qual B/2 case -> error else { errorList.Add( string.Format( LocalizationService.GetLocalizedError(ValidationError.NonMatchingExternalId), importModel.RowNumber)); } } //we cannot find it by enternalid or by natural key case C -> create else { allImportModel.Add(model); resultModel.CreateImportModels.Add(model); resultModel.CreateImportOverviewModels.Add(Translate <TImportModel, TImportOverviewModel>(model)); } } } if (errorList.Any()) { return(new ImportResultModel <TImportModel, TImportOverviewModel>(errorList, warnings)); } return(resultModel); }
private async Task HandleFailedImportResultAsync(ImportResultModel importResult) { await _importRequestRepository.UpdateStatusAsync(importResult.RequestId, ImportRequestStatus.FAILED); }
public ImportResultModel ImportWithExtra(Stream stream, ImportSheetModel sheet, bool isCoverData) { ImportResultModel result = new ImportResultModel(); using (var xlPackage = new ExcelPackage(stream)) { var worksheet = xlPackage.Workbook.Worksheets[sheet.SheetName]; if (worksheet == null) { throw new Exception("未找到名为 " + sheet.SheetName + " 的Sheet"); } for (var i = 1; i <= sheet.ColCount; i++) { result.HeaderRow.Add(worksheet.Cells[sheet.HeaderRowIndex, i].Value == null ? "" : worksheet.Cells[sheet.HeaderRowIndex, i].Value.ToString().Trim()); } var extraCols = new List <string>(); if (sheet.ExtraCols != null && sheet.ExtraCols.Count > 0) { foreach (var ex in sheet.ExtraCols) { extraCols.Add(worksheet.Cells[ex.RowIndex, ex.ColIndex].Value == null ? "" : worksheet.Cells[ex.RowIndex, ex.ColIndex].Value.ToString().Trim()); } var modelExtra = new ImportErrorRowModel(); var errorsExtra = new List <ImportErrorColModel>(); try { sheet.ParseToEntityExtra(extraCols, ref errorsExtra, isCoverData); if (errorsExtra.Count > 0) { modelExtra.RowIndex = 0; modelExtra.Values = extraCols; modelExtra.ErrorCols = errorsExtra; result.ErrorRows.Add(modelExtra); } } catch (Exception e) { modelExtra.RowIndex = 0; modelExtra.Values = extraCols; modelExtra.ErrorCols.Add(new ImportErrorColModel() { ColName = "", Message = e.ToString(), }); result.ErrorRows.Add(modelExtra); } } //如果extra出错,则读取所有单元格到error里,以便原样输出 if (result.ErrorRows.Count > 0) { int iRow = sheet.StartRowIndex; while (true) { bool allColumnsAreEmpty = true; for (var i = 1; i <= sheet.ColCount; i++) { if (worksheet.Cells[iRow, i].Value != null && !String.IsNullOrEmpty(worksheet.Cells[iRow, i].Value.ToString())) { allColumnsAreEmpty = false; break; } } if (allColumnsAreEmpty) { break; } List <string> values = new List <string>(); for (var i = 1; i <= sheet.ColCount; i++) { values.Add(worksheet.Cells[iRow, i].Value == null ? "" : worksheet.Cells[iRow, i].Value.ToString().Trim()); } var modelRow = new ImportErrorRowModel() { RowIndex = iRow, Values = values, ErrorCols = new List <ImportErrorColModel>() { new ImportErrorColModel() { ColIndex = -1, } }, }; result.ErrorRows.Add(modelRow); iRow++; } } //extra没有错,转实体 else { int iRow = sheet.StartRowIndex; while (true) { bool allColumnsAreEmpty = true; for (var i = 1; i <= sheet.ColCount; i++) { if (worksheet.Cells[iRow, i].Value != null && !String.IsNullOrEmpty(worksheet.Cells[iRow, i].Value.ToString())) { allColumnsAreEmpty = false; break; } } if (allColumnsAreEmpty) { break; } List <string> values = new List <string>(); for (var i = 1; i <= sheet.ColCount; i++) { values.Add(worksheet.Cells[iRow, i].Value == null ? "" : worksheet.Cells[iRow, i].Value.ToString().Trim()); } if (extraCols.Count > 0) { values.AddRange(extraCols); } var model = new ImportErrorRowModel(); var errors = new List <ImportErrorColModel>(); try { sheet.ParseToEntityMain(values, ref errors, isCoverData); if (errors.Count > 0) { model.RowIndex = iRow; if (extraCols.Count > 0) { model.Values = values.Take(sheet.ColCount).ToList(); } else { model.Values = values; } model.ErrorCols = errors; result.ErrorRows.Add(model); } } catch (Exception ex) { model.RowIndex = iRow; if (extraCols.Count > 0) { model.Values = values.Take(sheet.ColCount).ToList(); } else { model.Values = values; } model.ErrorCols.Add(new ImportErrorColModel() { ColName = "", Message = ex.ToString(), }); result.ErrorRows.Add(model); } iRow++; } } } if (result.ErrorRows.Count > 0) { result.Result = ImportResult.Failed; } else { result.Result = ImportResult.Successful; } return(result); }
private static void ProcessMainData(ImportSheetModel sheet, bool isCoverData, ImportResultModel result, ExcelWorksheet worksheet, List <string> extraCols) { int iRow = sheet.StartRowIndex; while (true) { bool allColumnsAreEmpty = true; for (var i = 1; i <= sheet.ColCount; i++) { if (worksheet.Cells[iRow, i].Value != null && !String.IsNullOrEmpty(worksheet.Cells[iRow, i].Value.ToString())) { allColumnsAreEmpty = false; break; } } if (allColumnsAreEmpty) { break; } List <string> values = new List <string>(); for (var i = 1; i <= sheet.ColCount; i++) { values.Add(worksheet.Cells[iRow, i].Value == null ? "" : worksheet.Cells[iRow, i].Value.ToString().Trim()); } if (extraCols.Count > 0) { values.AddRange(extraCols); } var model = new ImportErrorRowModel(); var errors = new List <ImportErrorColModel>(); try { sheet.ParseToEntityMain(values, ref errors, isCoverData); if (errors.Count > 0) { model.RowIndex = iRow; if (extraCols.Count > 0) { model.Values = values.Take(sheet.ColCount).ToList(); } else { model.Values = values; } model.ErrorCols = errors; result.ErrorRows.Add(model); } } catch (Exception ex) { model.RowIndex = iRow; if (extraCols.Count > 0) { model.Values = values.Take(sheet.ColCount).ToList(); } else { model.Values = values; } model.ErrorCols.Add(new ImportErrorColModel() { ColName = "", Message = ex.ToString(), }); result.ErrorRows.Add(model); } iRow++; } }