public async Task UpdateQuestion(OrgQuestion question) { using (_dbContext) { _dbContext.Entry(question).State = EntityState.Modified; await _dbContext.SaveChangesAsync(); } }
public async Task AddOrgQuestion(OrgQuestion input, bool saveNow = true) { await dBContext.OrgQuestion.AddAsync(input); if (saveNow) { await dBContext.SaveChangesAsync().ConfigureAwait(false); } }
public async Task AddQuestion(OrgQuestion question) { using (_dbContext) { _dbContext.OrgQuestion.Add(question); foreach (var option in question.QuestionOption) { _dbContext.QuestionOption.Add(option); } await _dbContext.SaveChangesAsync(); } }
public async Task <ReturnQuestionDto> AddQuestion(string orgId, AddQuestionDto question) { try { bool isOrgValid = Guid.TryParse(orgId, out Guid orgPublicId); if (!isOrgValid) { _customExceptionValidationService.CustomValidation("Invalid Organization Id.", HttpStatusCode.BadRequest); } if (question.Question == null || question.Options.Count < 2 || question.SubjectId == null) { _customExceptionValidationService.CustomValidation("PLease provide correct data.", HttpStatusCode.BadRequest); } bool isSubjectValid = Guid.TryParse(question.SubjectId, out Guid subjectPublicId); if (!isSubjectValid) { _customExceptionValidationService.CustomValidation("Invalid Subject Id.", HttpStatusCode.BadRequest); } var orgData = _orgRepository.GetOrganizationByPublicId(orgPublicId); if (orgData == null) { _customExceptionValidationService.CustomValidation("No Organization Registered.", HttpStatusCode.NotFound); } var subjectdata = _subjectRepository.GetSubjectByPublicId(subjectPublicId); if (subjectdata == null) { _customExceptionValidationService.CustomValidation("Incorrect Subject.", HttpStatusCode.NotFound); } var dbQuestionModel = new OrgQuestion { Question = question.Question, SubjectId = subjectdata.Id, PublicId = Guid.NewGuid(), CreatedDate = System.DateTime.UtcNow, LastUpdatedDateTime = System.DateTime.UtcNow, OrganizationId = orgData.Id }; var questionOptions = new List <QuestionOption>(); foreach (var option in question.Options) { var q = new QuestionOption { QOption = option.Option, IsCorrect = option.IsCorrect, QuestionId = dbQuestionModel.Id, OrgQuestion = dbQuestionModel, PublicId = Guid.NewGuid() }; questionOptions.Add(q); } dbQuestionModel.QuestionOption = questionOptions; await _questinRepository.AddQuestion(dbQuestionModel); return(new ReturnQuestionDto { QuestionId = dbQuestionModel.PublicId }); } catch (Exception) { throw; } }