//-> UploadCustomer public async Task <int> UploadCustomer(UploadCustomer uploadExcel) { if (uploadExcel.ExcelFile.ContentLength < 0) { throw new HttpException((int)HttpStatusCode.BadRequest, "Not a valid file"); } if (!uploadExcel.ExcelFile.FileName.EndsWith(".xlsx")) { throw new HttpException((int)HttpStatusCode.BadRequest, "Only .xlsx is allowed"); } using (var transaction = db.Database.BeginTransaction()) { try { XLWorkbook Workbook = new XLWorkbook(uploadExcel.ExcelFile.InputStream); IXLWorksheet WorkSheet = null; WorkSheet = Workbook.Worksheet("sheet1"); if (!DocumentHelper.SaveExcelFile(uploadExcel.ExcelFile)) { throw new HttpException((int)HttpStatusCode.BadRequest, "Error saving file."); } WorkSheet.FirstRow().Delete();//delete header column int countUpdateRecord = 0; foreach (var row in WorkSheet.RowsUsed()) { //var soNumber = row.Cell(1).Value.ToString().Trim().Replace(" ", string.Empty);//Get ist cell. 1 represent column number //var status = row.Cell(2).Value.ToString().Trim().Replace(" ", string.Empty); ; var ex = await db.tblCustomers.FirstOrDefaultAsync(x => x.code.ToLower() == row.Cell(1).Value.ToString().Trim().ToLower() && x.deleted == null); if (ex == null) { var record = new tblCustomer(); record.code = row.Cell(1).Value.ToString().Trim(); record.firstName = row.Cell(2).Value.ToString().Trim(); db.tblCustomers.Add(record); await db.SaveChangesAsync(); countUpdateRecord++; } } transaction.Commit(); return(countUpdateRecord); } catch (Exception ex) { transaction.Rollback(); throw new Exception(ex.Message); } } }
//[ValidateAntiForgeryToken] public async Task <String> UploadCustomer(UploadCustomer uploadExcel) { try { if (!ModelState.IsValid) { throw new HttpException((int)HttpStatusCode.BadRequest, ConstantHelper.KEY_IN_REQUIRED_FIELD); } Response.StatusCode = 200; return($"ok{await handler.UploadCustomer(uploadExcel)}"); } catch (HttpException) { return("no"); } }