public List <SaveResult <PODTO> > ExecuteImport(POImportDTO importDTO, DateTime dateStamp) { using (var transaction = new TransactionScope(TransactionScopeOption.Required, TimeSpan.FromHours(1))) { var list = CreateListFromExcelBase64(importDTO); var result = GetSaveResults(list, dateStamp); Db.SaveChanges(); transaction.Complete(); return(result); } }
public List <PODTO> CreateListFromExcelBase64(POImportDTO importDTO) { var base64 = importDTO.File; base64 = base64.Replace("data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,", ""); var wb = ExcelConverter.FromBase64(base64); var sheet = wb.Worksheet("POUpload"); var nonEmptyRowCount = sheet.RowsUsed().Count() + 1; var poQuery = new POQuery(Db); List <PODTO> poList = new List <PODTO>(); //first index is 1, and the first one is header title for (int i = 2; i < nonEmptyRowCount; i++) { var row = sheet.Row(i); var newPO = CreatePODTO(row); poList.Add(newPO); } return(poList); }