public ApiResponse AddServiceCode(ServiceCodeDTO serviceCodeDTO) { ApiResponse response = new ApiResponse(); long serviceCodeId = inventoryManager.ServiceCodeIsNotUnique(serviceCodeDTO.ServiceCode); if (serviceCodeId > 0) { response.AddMessage("ServiceCode", new List <string>() { "This service code is in use. Please choose another." }); } else if (inventoryManager.GeneralLedgerIsNotUnique(serviceCodeDTO.GeneralLedger)) { response.AddMessage("GeneralLedger", new List <string>() { "This General Ledger value is in use. Please choose another." }); } else { response.Id = inventoryManager.AddServiceCode(serviceCodeDTO); if (response.Id == 0) { response.AddMessage("DbError", new List <string>() { "There was an error saving this service code." }); } } return(response); }
public async Task <ApiResponse <List <Option> > > GetOptionsByQuestion(Guid questionId, Guid userExamId) { var result = new ApiResponse <List <Option> >(); try { var response = dbContext.Options. Where(o => o.Question.Id == questionId).ToList() .Select(e => { e.IsCorrect = false; return(e); }).ToList(); var optionSelected = dbContext.UserAnswers .Where(e => (e.Option.QuestionId == questionId && e.UserExamId == userExamId)); if (optionSelected.Count() == 0) { result.Data = response; result.AddSuccess(); } else { result.Data = null; result.AddMessage("Question answered already"); } return(await Task.FromResult(result)); } catch (Exception ex) { result.AddError(ex); return(await Task.FromResult(result)); } }
public async Task <ApiResponse <bool> > UpdateUserExamStatus(Guid userExamId) { var result = new ApiResponse <bool>(); try { var userExam = await dbContext.UserExams.FirstOrDefaultAsync(e => e.Id == userExamId); if (userExam != null) { userExam.Status = Models.DB.Exams.enums.Status.Completed; await dbContext.SaveChangesAsync(); result.Data = true; result.AddSuccess(); } else { result.Data = false; result.AddMessage("Exam not enrolled yet"); } return(await Task.FromResult(result)); } catch (Exception ex) { result.AddError(ex); return(await Task.FromResult(result)); } }
public static ApiResponse FromCommand(CommandResponse response) { var apiResponse = new ApiResponse(response.Success); apiResponse.AddExtra(response.ExtraData); apiResponse.AddMessage(response.Message); return(apiResponse); }
public async Task <ApiResponse <bool> > EnrollUserExam(UserExamViewModel userExam) { var result = new ApiResponse <bool>(); try { var oUserExam = await dbContext.UserExams .FirstOrDefaultAsync(e => (e.ExamId == userExam.ExamId && e.ApplicationUserId == this.CurrentUser().Id)) as UserExam; if (oUserExam == null) { var userExamd = new UserExam { ApplicationUserId = this.CurrentUser().Id, ExamId = userExam.ExamId, Status = userExam.Status, StartDate = userExam.StartDate, EndDate = userExam.EndDate, Score = userExam.Score }; await dbContext.UserExams.AddAsync(userExamd); await dbContext.SaveChangesAsync(); result.Data = true; result.AddSuccess(); result.AddMessage("You are Enrolled Succesfully"); return(await Task.FromResult(result)); } else { result.Data = false; result.AddMessage("You have already been enrolled successfully"); return(await Task.FromResult(result)); } } catch (Exception ex) { result.AddError(ex); return(await Task.FromResult(result)); } }
public async Task <ApiResponse <bool> > SubmitUserAnswer(List <UserAnswerViewModel> userAnswer) { var result = new ApiResponse <bool>(); try { var proceed = false; for (var i = 0; i < userAnswer.Count; i++) { var currentUseranswer = await dbContext.UserAnswers .FirstOrDefaultAsync(a => (a.OptionId == userAnswer[0].OptionId && a.UserExamId == userAnswer[0].UserExamId)); if (currentUseranswer == null) { var checkAnswer = await dbContext.Options.FindAsync(userAnswer[0].OptionId); if (checkAnswer.IsCorrect) { var checkUserExam = await dbContext.UserExams.FirstOrDefaultAsync(ue => ue.Id == userAnswer[0].UserExamId); checkUserExam.Score = checkUserExam.Score + checkAnswer.Score; } var oUserAnswer = new UserAnswer { OptionId = userAnswer[i].OptionId, UserExamId = userAnswer[i].UserExamId }; await dbContext.AddAsync(oUserAnswer); result.AddSuccess(); result.Data = true; proceed = true; } else { result.Data = false; result.AddMessage("Answer Already Exist"); } } if (proceed) { await dbContext.SaveChangesAsync(); } return(await Task.FromResult(result)); } catch (Exception ex) { result.AddError(ex); return(await Task.FromResult(result)); } }
public async Task <ApiResponse <bool> > Delete(Guid id) { var response = new ApiResponse <bool>(); try { var question = await dbContext.Questions.FindAsync(id); var options = await dbContext.Options.Where(q => q.QuestionId == id).ToListAsync(); foreach (var i in options) { dbContext.Options.Remove(i); } await dbContext.SaveChangesAsync(); if (question == null) { response.Data = false; response.AddMessage("Questions not found"); return(await Task.FromResult(response)); } dbContext.Questions.Remove(question); await dbContext.SaveChangesAsync(); response.Data = true; response.AddSuccess(); return(await Task.FromResult(response)); } catch (Exception ex) { response.AddError(ex); return(await Task.FromResult(response)); } }
public async Task <ApiResponse <bool> > DeleteUserExam(Guid id, Guid examId) { var result = new ApiResponse <bool>(); try { var entity = await dbContext.UserExams.FirstOrDefaultAsync(a => (a.Id == id && a.ExamId == examId && a.ApplicationUserId == this.CurrentUser().Id)); dbContext.UserExams.Remove(entity); await dbContext.SaveChangesAsync(); result.Data = true; result.AddSuccess(); result.AddMessage("You left the exam.."); return(await Task.FromResult(result)); } catch (Exception ex) { result.AddError(ex); return(await Task.FromResult(result)); } }
public async Task <ApiResponse <UserExamViewModel> > GetUserExamById(Guid id, Guid examId) { var result = new ApiResponse <UserExamViewModel>(); try { var entity = await dbContext.UserExams .Select(u => new UserExamViewModel { ExamId = u.ExamId, ApplicationUserId = u.ApplicationUserId, EndDate = u.EndDate, StartDate = u.StartDate, Score = u.Score, Status = u.Status, Id = u.Id }) .FirstOrDefaultAsync(a => (a.Id == id && a.ExamId == examId && a.ApplicationUserId == this.CurrentUser().Id)); if (entity != null) { result.Data = entity; result.AddSuccess(); return(await Task.FromResult(result)); } else { result.Data = entity; result.AddMessage("No Exam Available"); return(await Task.FromResult(result)); } } catch (Exception ex) { result.AddError(ex); return(await Task.FromResult(result)); } }