public async Task <CustomerResponse <List <CustomerStatus> > > Import(IFormFile formFile, CancellationToken cancellationToken) { if (formFile == null || formFile.Length <= 0) { return(CustomerResponse <List <CustomerStatus> > .GetResult(-1, "File này đang rỗng!", 0, 0, null)); } if (!Path.GetExtension(formFile.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase)) { return(CustomerResponse <List <CustomerStatus> > .GetResult(-1, "Loại file này không được hỗ trợ!", 0, 0, null)); } var filename = formFile.FileName; var list = new List <Customer>(); using (var stream = new MemoryStream()) { await formFile.CopyToAsync(stream, cancellationToken); using (var package = new ExcelPackage(stream)) { ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; var rowCount = worksheet.Dimension.Rows; for (int row = 3; row <= rowCount; row++) { Customer customer = new Customer(); customer.CustomerCode = worksheet.Cells[row, 1].Value == null ? "" : worksheet.Cells[row, 1].Value.ToString().Trim(); customer.CustomerName = worksheet.Cells[row, 2].Value == null ? "" : worksheet.Cells[row, 2].Value.ToString().Trim(); customer.CustomerMemberId = worksheet.Cells[row, 3].Value == null ? "" : worksheet.Cells[row, 3].Value.ToString().Trim(); customer.CustomerGroupName = worksheet.Cells[row, 4].Value == null ? "" : worksheet.Cells[row, 4].Value.ToString().Trim(); customer.PhoneNumber = worksheet.Cells[row, 5].Value == null ? "" : worksheet.Cells[row, 5].Value.ToString().Trim(); customer.CompanyName = worksheet.Cells[row, 7].Value == null ? "" : worksheet.Cells[row, 7].Value.ToString().Trim(); customer.TaxCode = worksheet.Cells[row, 8].Value == null ? "" : worksheet.Cells[row, 8].Value.ToString().Trim(); customer.Email = worksheet.Cells[row, 9].Value == null ? "" : worksheet.Cells[row, 9].Value.ToString().Trim(); customer.Address = worksheet.Cells[row, 10].Value == null ? "" : worksheet.Cells[row, 10].Value.ToString().Trim(); customer.Note = worksheet.Cells[row, 11].Value == null ? "" : worksheet.Cells[row, 11].Value.ToString().Trim(); //customer.DateOfBirth = DateTime.Parse(worksheet.Cells[row, 6].Value.ToString().Trim()); list.Add(customer); } } } var rows = _customerStatusService.ProcessData(list); if (rows.Data.Count() > 0 || rows != null) { return(CustomerResponse <List <CustomerStatus> > .GetResult(0, "Dữ liệu đã xử lý thành công", rows.SuccessCount, rows.FailCount, rows.Data)); } else { return(CustomerResponse <List <CustomerStatus> > .GetResult(1, "Có lỗi khi xử lý dữ liệu", 0, 0, null)); } }
public async Task <CustomerResponse <List <Customer> > > Import(IFormFile formFile, CancellationToken cancellationToken) { //kiểm tra file null if (formFile == null || formFile.Length <= 0) { return(CustomerResponse <List <Customer> > .GetResult(-1, "formfile is empty")); } // kiểm tra định dạng file if (!Path.GetExtension(formFile.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase)) { return(CustomerResponse <List <Customer> > .GetResult(-1, "Not support file extension")); } //thực hiện get dữ liệu từ file var list = new List <Customer>(); using (var stream = new MemoryStream()) { await formFile.CopyToAsync(stream, cancellationToken); using (var package = new ExcelPackage(stream)) { ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; var rowCount = worksheet.Dimension.Rows; for (int row = 3; row < rowCount; row++) { //get ngày tháng //khởi tạo biến dateTime = ngày hiện tại DateTime dateTime = DateTime.Today; // kiểm tra null if (worksheet.Cells[row, 6].Value == null) { // nếu null gán = ngày hiện tại dateTime = DateTime.UtcNow; } else { // lấy dữ liệu dateTime trong file excel và parse về kiểu Datetime string sDate = worksheet.Cells[row, 6].Value.ToString(); //dateTime = DateTime.ParseExact(sDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); //validate datetime //- Nếu chỉ nhập năm thì ngày sinh hiển thị sẽ là 01/01/[năm] //- Nếu nhập tháng/ năm thì sẽ lấy ngày là ngày 01: 01/[tháng]/[năm] dateTime = (DateTime)validDateOfBirth(sDate); } // get email //khởi tạo email = "" var email = ""; // kiểm tra giá trị null khi lấy từ trong file excel if (worksheet.Cells[row, 9].Value == null) { // gán email = null nếu giá trị = null email = null; } else {// gán giá trị email = giá trị trong file excel email = worksheet.Cells[row, 9].Value.ToString().Trim(); } //thêm dữ liệu và list list.Add(new Customer { CustomerCode = (worksheet.Cells[row, 1].Value == null) ? "" : worksheet.Cells[row, 1].Value.ToString().Trim(), FullName = (worksheet.Cells[row, 2].Value == null) ? "" : worksheet.Cells[row, 2].Value.ToString().Trim(), MemberCardCode = (worksheet.Cells[row, 3].Value == null) ? "" : worksheet.Cells[row, 3].Value.ToString().Trim(), CustomerGroupName = (worksheet.Cells[row, 4].Value == null) ? "" : worksheet.Cells[row, 4].Value.ToString().Trim(), PhoneNumber = (worksheet.Cells[row, 5].Value == null) ? "" : worksheet.Cells[row, 5].Value.ToString().Trim(), //DateOfBirth = DateTime.Parse( worksheet.Cells[row, 6].Value.ToString()), DateOfBirth = dateTime, CompanyName = (worksheet.Cells[row, 7].Value == null) ? "" : worksheet.Cells[row, 7].Value.ToString().Trim(), CompanyTaxCode = (worksheet.Cells[row, 8].Value == null) ? "" : worksheet.Cells[row, 8].Value.ToString().Trim(), Email = email, Address = (worksheet.Cells[row, 10].Value == null) ? "" : worksheet.Cells[row, 10].Value.ToString().Trim(), Note = (worksheet.Cells[row, 11].Value == null) ? "" : worksheet.Cells[row, 11].Value.ToString().Trim() }); } } } //kiểm tra các trường mã khách hàng, tên nhóm khách hàng, số điện thoại có bị trùng lặp trong file hoặc đã tồn tại trên hệ thống for (var k = 0; k < list.Count; k++) { list[k].Status = null; //kiểm tra trùng lặp trong file // khởi tạo biến check Mã khách hàng: // false - không có trong file // true - có trong file bool checkCustomerCode = false; // khởi tạo biến check số điện thoại: // false - không có trong file // true - có trong file bool checkPhoneNumber = false; for (int i = k + 1; i < list.Count; i++) { // kiểm tra trùng mã khách hàng if (list[k].CustomerCode == list[i].CustomerCode) { checkCustomerCode = true; } //Kiểm tra trùng số điện thoại if (list[k].PhoneNumber == list[i].PhoneNumber) { checkPhoneNumber = true; } } //add status if (checkCustomerCode) { list[k].Status += "Mã khách hàng đã trùng với mã khách hàng khách trong tệp nhập khẩu. \n"; } if (checkPhoneNumber) { list[k].Status += "Số điện thoại " + list[k].PhoneNumber + " đã trùng với số điện thoại của khách hàng khác trong tệp nhập khẩu.\n"; } //kiểm tra trùng trong cơ sở dữ liệu. check(list[k]); } // thêm vào db var rowAffect = Insert(list); return(CustomerResponse <List <Customer> > .GetResult(0, "OK", list)); }
public async Task <CustomerResponse <List <CustomerStatus> > > Import(IFormFile formFile, CancellationToken cancellationToken) { if (formFile == null || formFile.Length <= 0) { return(CustomerResponse <List <CustomerStatus> > .GetResult(-1, "File này đang rỗng!", 0, 0, null)); } if (!Path.GetExtension(formFile.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase)) { return(CustomerResponse <List <CustomerStatus> > .GetResult(-1, "Loại file này không được hỗ trợ!", 0, 0, null)); } var filename = formFile.FileName; var list = new List <CustomerStatus>(); using (var stream = new MemoryStream()) { await formFile.CopyToAsync(stream, cancellationToken); using (var package = new ExcelPackage(stream)) { ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; var rowCount = worksheet.Dimension.Rows; for (int row = 3; row <= rowCount; row++) { Customer customer = new Customer(); customer.CustomerCode = worksheet.Cells[row, 1].Value == null ? "" : worksheet.Cells[row, 1].Value.ToString().Trim(); customer.CustomerName = worksheet.Cells[row, 2].Value == null ? "" : worksheet.Cells[row, 2].Value.ToString().Trim(); customer.CustomerMemberId = worksheet.Cells[row, 3].Value == null ? "" : worksheet.Cells[row, 3].Value.ToString().Trim(); customer.CustomerGroupName = worksheet.Cells[row, 4].Value == null ? "" : worksheet.Cells[row, 4].Value.ToString().Trim(); customer.PhoneNumber = worksheet.Cells[row, 5].Value == null ? "" : worksheet.Cells[row, 5].Value.ToString().Trim(); customer.CompanyName = worksheet.Cells[row, 7].Value == null ? "" : worksheet.Cells[row, 7].Value.ToString().Trim(); customer.TaxCode = worksheet.Cells[row, 8].Value == null ? "" : worksheet.Cells[row, 8].Value.ToString().Trim(); customer.Email = worksheet.Cells[row, 9].Value == null ? "" : worksheet.Cells[row, 9].Value.ToString().Trim(); customer.Address = worksheet.Cells[row, 10].Value == null ? "" : worksheet.Cells[row, 10].Value.ToString().Trim(); customer.Note = worksheet.Cells[row, 11].Value == null ? "" : worksheet.Cells[row, 11].Value.ToString().Trim(); //customer.DateOfBirth = DateTime.Parse(worksheet.Cells[row, 6].Value.ToString().Trim()); CustomerStatus customerStatus = new CustomerStatus(); customerStatus.Customer = customer; customerStatus.StatusDetail = StatusData(list, customer); if (customerStatus.StatusDetail != "Hợp lệ") { customerStatus.DataIsValid = true; } else { customerStatus.DataIsValid = false; } list.Add(customerStatus); //list.Add(new CustomerStatus //{ // CustomerCode = worksheet.Cells[row, 1].Value.ToString().Trim(), // CustomerName = worksheet.Cells[row, 2].Value.ToString().Trim(), // CustomerMemberId = worksheet.Cells[row, 3].Value.ToString().Trim(), // CustomerGroupName = worksheet.Cells[row, 4].Value.ToString().Trim(), // PhoneNumber = worksheet.Cells[row, 5].Value.ToString().Trim(), // //tempDate = worksheet.Cells[row, 6].Value.ToString().Trim(), // DateOfBirth = DateTime.Parse(worksheet.Cells[row, 6].Value.ToString().Trim()), // CompanyName = worksheet.Cells[row, 7].Value.ToString().Trim(), // TaxCode = worksheet.Cells[row, 8].Value.ToString().Trim(), // Email = worksheet.Cells[row, 9].Value == null ? "" : worksheet.Cells[row, 9].Value.ToString().Trim(), // Address = worksheet.Cells[row, 10].Value == null ? "" : worksheet.Cells[row, 10].Value.ToString().Trim(), //}); } } } // add list to db .. // here just read and return return(CustomerResponse <List <CustomerStatus> > .GetResult(0, "OK", 0, 0, list)); }