/// <summary> /// Return page with link to copy /// if link is already exist - delete previous and create new /// </summary> /// <param name="id">Id of quiz</param> public ActionResult QuizLink(int?id) { var quiz = cx.Quizzes.Find(id); if (quiz == null) { return(HttpNotFound()); } var reference = cx.QuizReferences.Where(x => x.Quiz.Id == quiz.Id).ToList(); var model = new QuizLinkView() { Quiz = quiz }; model.IsQuizValid = helper.IsQuizValid(quiz.Id, out List <string> Errors); if (!model.IsQuizValid) { model.Errors = Errors; } if (reference.Count() != 0 && model.IsQuizValid) { model.Reference = reference.Single(); model.IsRefExists = true; model.Link = GenerateLink(reference.Single()); } return(View(model)); }
public ActionResult GetLink(QuizLinkView view) { var quiz = cx.Quizzes.Find(view.Quiz.Id); if (quiz == null) { return(HttpNotFound()); } var reference = cx.QuizReferences.Where(x => x.Quiz.Id == quiz.Id).ToList(); if (reference.Count != 0) { cx.QuizReferences.RemoveRange(reference); } var model = new QuizReference() { Id = helper.LinkGenerator(), Quiz = quiz, Deadline = view.Reference.Deadline, AttemptCount = view.Reference.AttemptCount, Type = view.Reference.Type }; cx.QuizReferences.Add(model); cx.SaveChanges(); return(RedirectToAction("QuizLink", new { id = quiz.Id })); }