示例#1
0
        /// <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));
        }
示例#2
0
        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 }));
        }