private UploadPeopleRun ProcessImport(CMSDataContext db, bool noupdate, bool ignoremissinggifts, string host, int?pid, ExcelPackage package, bool testing) { var rt = new UploadPeopleRun { Started = DateTime.Now, Count = 0, Processed = 0 }; db.UploadPeopleRuns.InsertOnSubmit(rt); db.SubmitChanges(); var upload = new UploadExcelIpsModel(db, host, pid ?? 0, noupdate, ignoremissinggifts, testing); upload.DoUpload(package); return(rt); }
public ActionResult Index(HttpPostedFileBase file, bool noupdate, bool ignoremissinggifts) { string host = Util.Host; var runningtotals = new UploadPeopleRun { Started = DateTime.Now, Count = 0, Processed = 0 }; DbUtil.Db.UploadPeopleRuns.InsertOnSubmit(runningtotals); DbUtil.Db.SubmitChanges(); var pid = Util.UserPeopleId; var package = new ExcelPackage(file.InputStream); HostingEnvironment.QueueBackgroundWorkItem(ct => { var db = DbUtil.Create(host); try { var m = new UploadExcelIpsModel(host, pid ?? 0, noupdate, ignoremissinggifts, testing: true); m.DoUpload(package); db.Dispose(); db = DbUtil.Create(host); runningtotals = new UploadPeopleRun { Started = DateTime.Now, Count = 0, Processed = 0 }; db.UploadPeopleRuns.InsertOnSubmit(runningtotals); db.SubmitChanges(); m = new UploadExcelIpsModel(host, pid ?? 0, noupdate, ignoremissinggifts); m.DoUpload(package); } catch (Exception ex) { db.Dispose(); db = DbUtil.Create(host); var q = from r in db.UploadPeopleRuns where r.Id == db.UploadPeopleRuns.Max(rr => rr.Id) select r; Elmah.ErrorLog.GetDefault(null).Log(new Elmah.Error(ex)); var rt = q.Single(); rt.Error = ex.Message.Truncate(200); db.SubmitChanges(); } }); return(Redirect("/UploadExcelIps/Progress")); }