public async Task <IEnumerable <string> > SendSaleFile(FileStatusParamDto fileStatusParamDto, IFormFile formFile, int network, int user) { var extensions = Path.GetFileName(formFile.FileName).Split('.').Last().ToUpper(); if (extensions == "XLS") { return new string[1] { "favor importar arquivo com extensão .xlsx." } } ; if (extensions != "XLSX") { return new string[1] { "favor importar arquivo com extensão .xlsx." } } ; if (await _saleFileRepository.ExistFile(fileStatusParamDto.CurrentMonth, fileStatusParamDto.CurrentYear, network)) { return new string[1] { "Existe um arquivo em fase de processamento ou ja foi processado" } } ; var fileName = $"{DateTime.Now.Year}" + $"{DateTime.Now.Month.ToString().PadLeft(2, '0')}" + $"{DateTime.Now.Day.ToString().PadLeft(2, '0')}" + $"{DateTime.Now.Hour.ToString().PadLeft(2, '0')}" + $"{DateTime.Now.Minute.ToString().PadLeft(2, '0')}" + $"{DateTime.Now.Second.ToString().PadLeft(2, '0')}.{extensions}"; var path = Path.Combine(_env.WebRootPath, $"Content/SpreadSheet/Sale/{Path.GetFileName(fileName)}"); if (File.Exists(path)) { File.Delete(path); } using (var stream = new FileStream(path, FileMode.Create)) { await formFile.CopyToAsync(stream); } var spreadSheetMessages = new List <string>(); var columnsToValidate = new string[11] { "REVENDA", "COD LOJA", "CNPJ", "CPF VENDEDOR", "NOME VENDEDOR", "CATEGORIA", "DESCRIÇÃO PRODUTO", "QUANTIDADE", "DATA VENDA", "NÚMERO PEDIDO", "CÓDIGO EAN" }; var fileInfo = new FileInfo(path); using (var excelPackage = new ExcelPackage(fileInfo)) { var tab = excelPackage.Workbook.Worksheets[1]; spreadSheetMessages = FileManipulator.ValidateSpreadsheet(tab, columnsToValidate); } if (spreadSheetMessages.Count == 0) { _saleFileRepository.Save(new SaleFile { CreatedAt = DateTime.Now, CurrentMonth = fileStatusParamDto.CurrentMonth, CurrentYear = fileStatusParamDto.CurrentYear, FileName = fileName, FileStatus = await _fileStatusRepository.GetById((int)FileStatusEnum.Pending), Network = await _networkRepository.GetById(network), User = await _userRepository.GetById(user) }); await _unitOfWork.CommitAsync(); spreadSheetMessages.Add("Carga recebida com sucesso. Aguarde a validação dos seus dados."); } return(spreadSheetMessages); }