private void UpdateDataCustom(IExcelDataReader reader, int step = 0, ValidaImportDto validaImportDto = null) { // read the data of the record and gearbox if (step == 1) { for (int column = 0; column < reader.FieldCount; column++) { if (column == 0) { var value = reader.GetValue(column).ToString().Split('-'); if (value != null && value.Count() != 0) { validaImportDto.GearBoxNumber = value[0]; validaImportDto.ProfileNumber = value[1]; break; } } } } else { //read the data of the table of content for (int i = 0; i < reader.FieldCount; i++) { if (i == 0) { var value = reader.GetValue(i).ToString(); validaImportDto.TableOfContentName = !string.IsNullOrEmpty(value) ? value : string.Empty; break; } } } }
public async Task <IActionResult> ValidateBulkInsert() { IFormCollection form; form = await Request.ReadFormAsync(); object obj = Request.Form["validData"]; // object ValidaImportDto data = Libs.DeserializeObject <ValidaImportDto>(obj.ToString()); ReturnResult <ValidaImportDto> result = new ReturnResult <ValidaImportDto>(); IFormFile file = Request.Form.Files.FirstOrDefault(); result.Item.ImportDataDTOs = new List <ImportDataDTO>(); string directoryPathFileUpload = Path.Combine(Const.FILE_UPLOAD_DIR, Const.FILE_IMPORT); if (!_fileService.FileExist(directoryPathFileUpload)) { Directory.CreateDirectory(directoryPathFileUpload); _fileService.Delete(directoryPathFileUpload, file.FileName); } var dataValidations = new DataValidations(); dataValidations.IsCorrect = true; dataValidations.dataValidationDTOs = new List <DataValidationDTO>(); var fileExtension = file.FileName.Split('.'); if (fileExtension.Length != 0) { if (fileExtension[1].Equals("xls") || fileExtension[1].Equals("xlsx") || fileExtension[1].Equals("csv")) { string path = Path.Combine(directoryPathFileUpload, file.FileName); FilesUtillities.CopyFileToPhysicalDiskSync(file, path); Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); using (var stream = new FileStream(path, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)) { using (var reader = ExcelReaderFactory.CreateReader(stream)) { int column = 1; do { while (reader.Read()) { if (column == 1 || column == 2) { UpdateDataCustom(reader, column, result.Item); } else if (column == 4 || column == 5 || column == 6) { result.Item.ProfileTitle = ReadDataProfileTitle(reader, column); } else if (column == 3) { column++; continue; } else if (column != reader.RowCount) { var importData = GetImportDataDTO(reader, column); if (importData != null) { DataValidation(column, importData, dataValidations); result.Item.ImportDataDTOs.Add(importData); } } column++; } } while (reader.NextResult()); } } _fileService.Delete(directoryPathFileUpload, file.FileName); } } return(Ok(dataValidations)); }