Beispiel #1
0
 public async Task UpdateQuestion(OrgQuestion question)
 {
     using (_dbContext)
     {
         _dbContext.Entry(question).State = EntityState.Modified;
         await _dbContext.SaveChangesAsync();
     }
 }
Beispiel #2
0
        public async Task AddOrgQuestion(OrgQuestion input, bool saveNow = true)
        {
            await dBContext.OrgQuestion.AddAsync(input);

            if (saveNow)
            {
                await dBContext.SaveChangesAsync().ConfigureAwait(false);
            }
        }
Beispiel #3
0
 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();
     }
 }
Beispiel #4
0
        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;
            }
        }