// GET: AnswersSnapshots

        public async Task <ActionResult> NewSnapShot(int?studentId, int?quizzId)
        {
            AnswersSnapshot answersSnapshot = new AnswersSnapshot();

            answersSnapshot.student       = db.Students.Find(studentId);
            answersSnapshot.quizz         = db.Quizzs.Find(quizzId);
            answersSnapshot.createdOn     = DateTime.Now;
            answersSnapshot.lastChangedOn = DateTime.Now;
            db.AnswersSnapshots.Add(answersSnapshot);

            var selectedQuestions = (from a in db.Questions
                                     where a.quizz.ID == quizzId
                                     select a).ToList();
            int temp = 1;

            foreach (var item in selectedQuestions)
            {
                Answer newAnswer = new Answer();
                newAnswer.answersSnapshot   = answersSnapshot;
                newAnswer.question          = item;
                newAnswer.TrueOrFalseAnswer = null;
                newAnswer.questionSequence  = temp;
                if (temp == selectedQuestions.Count())
                {
                    newAnswer.isLastQuestion = true;
                }
                temp = temp + 1;
                db.Answers.Add(newAnswer);
            }
            await db.SaveChangesAsync();

            return(View(answersSnapshot));
        }
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            AnswersSnapshot answersSnapshot = await db.AnswersSnapshots.FindAsync(id);

            db.AnswersSnapshots.Remove(answersSnapshot);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        public async Task <ActionResult> Edit([Bind(Include = "ID,status,createdOn,lastChangedOn")] AnswersSnapshot answersSnapshot)
        {
            if (ModelState.IsValid)
            {
                db.Entry(answersSnapshot).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(answersSnapshot));
        }
        public async Task <ActionResult> SubmitSnapshot(int?answerId)
        {
            Answer answer = await db.Answers.FindAsync(answerId);

            AnswersSnapshot answersSnapshot = await db.AnswersSnapshots.FindAsync(answer.answersSnapshot.ID);

            answersSnapshot.status          = "Submitted";
            db.Entry(answersSnapshot).State = EntityState.Modified;
            await db.SaveChangesAsync();

            return(RedirectToAction("GetQuizzesForStudents", "Quizzs"));
        }
        public async Task <ActionResult> Create([Bind(Include = "ID,status,createdOn,lastChangedOn")] AnswersSnapshot answersSnapshot)
        {
            if (ModelState.IsValid)
            {
                db.AnswersSnapshots.Add(answersSnapshot);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(answersSnapshot));
        }
        // GET: AnswersSnapshots/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AnswersSnapshot answersSnapshot = await db.AnswersSnapshots.FindAsync(id);

            if (answersSnapshot == null)
            {
                return(HttpNotFound());
            }
            return(View(answersSnapshot));
        }
        public async Task <ActionResult> ResumeSnapShot(int?snapshotId)
        {
            AnswersSnapshot answerSnapshot = await db.AnswersSnapshots.FindAsync(snapshotId);

            return(View("NewSnapShot", answerSnapshot));
        }