コード例 #1
0
 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;
             }
         }
     }
 }
コード例 #2
0
        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));
        }