public ActionResult Create(NewTestView view) { if (ModelState.IsValid) { var response = MovementsHelper.NewTest(view, User.Identity.Name); if (response.Succeeded) { return(RedirectToAction("Index")); } ModelState.AddModelError(string.Empty, response.Message); } var user = db.Users.Where(u => u.UserName == User.Identity.Name).FirstOrDefault(); ViewBag.UserID = new SelectList(db.Users, "UserID", "UserName", view.UserID); view.SummaryDetails = db.TestSummaryDetailTmps.Where(tdt => tdt.UserName == User.Identity.Name).ToList(); view.QuestionDetails = db.TestQuestionDetailTmps.Where(tdt => tdt.UserName == User.Identity.Name).ToList(); return(View(view)); }
// GET: TestHeaders/Create public ActionResult Create() { ViewBag.Msg = TempData["msg"]; //para buscar el usuario logeado var user = db.Users.Where(u => u.UserName == User.Identity.Name).FirstOrDefault(); if (user == null) { return(RedirectToAction("Index", "Home")); } var view = new NewTestView { Date = DateTime.Now, SummaryDetails = db.TestSummaryDetailTmps.Where(tdt => tdt.UserName == User.Identity.Name).ToList(), QuestionDetails = db.TestQuestionDetailTmps.Where(tqdt => tqdt.UserName == User.Identity.Name).ToList(), }; return(View(view)); }
public static Response NewTest(NewTestView view, string userName) { using (var transaction = db.Database.BeginTransaction()) { try { var user = db.Users.Where(u => u.UserName == userName).FirstOrDefault(); var testHeader = new TestHeader { UserID = user.UserID, Date = view.Date, StateID = DBHelper.GetState("created", db), }; db.TestHeaders.Add(testHeader); db.SaveChanges(); var details = db.TestSummaryDetailTmps.Where(tsdt => tsdt.UserName == userName).ToList(); var questionDetails = db.TestQuestionDetailTmps.Where(tqdt => tqdt.UserName == userName).ToList(); foreach (var detail in details) { var testDetail = new TestDetail { TestHeaderID = testHeader.TestHeaderID, //SubCategoryID = detail.SubCategoryID, SubCategoryName = detail.SubCategoryName, Value = int.Parse(detail.TestAnswer.Value), UserID = user.UserID, }; db.TestDetails.Add(testDetail); db.TestSummaryDetailTmps.Remove(detail); } foreach (var detail2 in questionDetails) { var testDetailQuestion = new TestDetailQuestion { TestHeaderID = testHeader.TestHeaderID, //SubCategoryID = detail2.SubCategoryID, QuestionName = detail2.QuestionName, Value = int.Parse(detail2.TestAnswer.Value), UserID = user.UserID, }; db.TestDetailQuestions.Add(testDetailQuestion); db.TestQuestionDetailTmps.Remove(detail2); } db.SaveChanges(); transaction.Commit(); return(new Response { Succeeded = true, }); } catch (Exception ex) { transaction.Rollback(); return(new Response { Message = ex.Message, Succeeded = false, }); } } }