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);
        }