public async Task <IHttpActionResult> GetExamAssessment(string email, int examSettingsId)
        {
            int userId = -1;

            foreach (User tmpUsr in await db.Users.ToArrayAsync())
            {
                if (tmpUsr.email == email)
                {
                    userId = tmpUsr.UserPK;
                }

                break;
            }

            Models.ExamAssessment mdlExamAssessment = null;

            foreach (ExamAssessment tmpExam in await db.ExamAssessments.ToArrayAsync())
            {
                if (tmpExam.UserID == userId && tmpExam.SettingsID == examSettingsId)
                {
                    mdlExamAssessment = AutoMapper.Mapper.Map <Models.ExamAssessment>(tmpExam);
                }
            }

            if (mdlExamAssessment == null)
            {
                return(NotFound());
            }

            return(Ok(mdlExamAssessment));
        }
        public async Task <IHttpActionResult> PostExamAssessment(Models.ExamAssessment mdlExam)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            ExamAssessment examAssessment = AutoMapper.Mapper.Map <ExamAssessment>(mdlExam);

            examAssessment = db.ExamAssessments.Add(examAssessment);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = examAssessment.ExamAssessmentID }, examAssessment));
        }
        public async Task <IHttpActionResult> PutExamAssessment(string email, int settingsId, Models.ExamAssessment mdlExamAssessment)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            ExamAssessment saveExamAssessment = null;

            try
            {
                saveExamAssessment = await db.ExamAssessments.SingleAsync(e => e.User.email == email && e.ExamSetting.ExamSettingsID == settingsId);
            }
            catch (Exception e)
            {
                return(NotFound());
            }

            ExamAssessment tmpExamAssessment = AutoMapper.Mapper.Map <ExamAssessment>(mdlExamAssessment);

            tmpExamAssessment.ExamAssessmentID = saveExamAssessment.ExamAssessmentID;

            db.ExamAssessments.Attach(saveExamAssessment);

            saveExamAssessment = tmpExamAssessment;

            db.Entry(saveExamAssessment).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                return(NotFound());
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }