Example #1
0
        public IHttpActionResult AddQuestion(AddQuestionDto addQuestionDto)
        {
            if (string.IsNullOrWhiteSpace(addQuestionDto.Title))
            {
                return(Json(new { Success = false, Msg = "标题不能为空!", Data = "" }));
            }
            if (string.IsNullOrWhiteSpace(addQuestionDto.Content))
            {
                return(Json(new { Success = false, Msg = "内容不能为空!", Data = "" }));
            }
            if (addQuestionDto.UserInfoId == 0)
            {
                return(Json(new { Success = false, Msg = "用户不能为空!", Data = "" }));
            }

            var model = _questionService.Insert(new Domain.Model.Question
            {
                Content    = addQuestionDto.Content,
                Sort       = 0,
                CTime      = DateTime.Now,
                IsHot      = 0,
                IsTop      = 0,
                Reads      = 0,
                Title      = addQuestionDto.Title,
                UserInfoId = addQuestionDto.UserInfoId,
                IsEnable   = 1
            });

            return(Json(new { Success = true, Msg = "OK", Data = model }));
        }
        public async Task AddQuestionAsync(AddQuestionDto questionDto)
        {
            Domain.Entity.Question question = _mapper.Map <Domain.Entity.Question>(questionDto);
            await _context.Question.AddAsync(question);

            await _context.SaveChangesAsync();
        }
        public async Task AddQuestionAsync(AddQuestionDto questionDto)
        {
            if (questionDto == null)
            {
                throw new InvalidOperationException("Question mustn't be null");
            }

            await _repository.AddQuestionAsync(questionDto);
        }
Example #4
0
        public void AddQuestionDtoConverterTheory(string jsonString, AddQuestionDto expectedDto)
        {
            var dto = JsonSerializer.Deserialize<AddQuestionDto>(jsonString, options);
            dto.Should().BeEquivalentTo(expectedDto);

            var json = JsonSerializer.Serialize(dto, options);
            json.Should().Be(jsonString);

            json = JsonSerializer.Serialize<object>(dto, options);
            json.Should().Be(jsonString);
        }
        public async Task <IActionResult> AddQuestion([FromBody] AddQuestionDto questionDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            await _serivce.AddQuestionAsync(questionDto);

            return(Ok());
        }
Example #6
0
        public async Task <OperationResult <int> > CreateQuestion(AddQuestionDto questionDto)
        {
            Answer answer = questionMapper.MapToAnswer(questionDto);

            var areCategoriesProvided = questionDto.Categories.Count > 0;

            if (areCategoriesProvided && !categoryService.DoCategoriesExist(questionDto.Categories))
            {
                return(new BadRequestError());
            }

            return(await questionService.CreateQuestion(questionDto.Question, answer, questionDto.Categories));
        }
        public async Task <ActionResult <QuestionDto> > UpdateQuestion(int id, [FromBody] AddQuestionDto questionDto)
        {
            Question question = await unitOfWork.Questions.GetById(id);

            if (question == null)
            {
                return(NotFound());
            }
            Organization organization = await unitOfWork.Organizations.GetById(question.OrganizationId);

            if (organization == null)
            {
                return(BadRequest());
            }
            AppUser user = await userManager.GetUserAsync(User);

            user = unitOfWork.AppUsers.GetUserWithOrgs(user.Id);
            if (!(user.IsOwnerOfOrg(organization.Id) || user.IsExaminerOfOrg(organization.Id) || user.IsExamineeOfOrg(organization.Id)))
            {
                return(Forbid());
            }
            unitOfWork.QuestionOptions.RemoveRange(await unitOfWork.QuestionOptions.Find(qo => qo.QuestionId == question.Id));
            IEnumerable <Option> options = questionDto.Options;

            Mapper.Map(questionDto, question);
            question.QuestionOptions = new List <QuestionOption>();
            foreach (Option item in options)
            {
                Option option = await unitOfWork.Options.SingleOrDefault(o => o.Name == item.Name);

                if (option == null)
                {
                    option = item;
                    await unitOfWork.Options.Add(option);
                }
                await unitOfWork.SaveAsync();

                question.QuestionOptions.Add(new QuestionOption {
                    OptionId = item.Id, Option = option
                });
            }
            unitOfWork.Questions.Update(question);
            if (await unitOfWork.SaveAsync() < 1)
            {
                return(BadRequest());
            }
            else
            {
                return(Ok(Mapper.Map <QuestionDto>(question)));
            }
        }
        public Result ValidateAddQuestionDto(AddQuestionDto questionDto)
        {
            if (string.IsNullOrWhiteSpace(questionDto.QuestionText))
            {
                return(Result.Fail(-3));
            }

            if (!questionDto.Answers.Any())
            {
                return(Result.Fail(-4));
            }

            return(answerValidator.ValidateAddAnswerDtos(questionDto.Answers));
        }
Example #9
0
        public async Task <IActionResult> Question(AddQuestionDto addQuestionDto)
        {
            try
            {
                var question = _mapper.Map <Question>(addQuestionDto);
                question.Id          = new Guid();
                question.CreatedDate = DateTime.Now;
                _questionRepository.Add(question);
                var status = await _unitOfWork.Commit();

                if (status)
                {
                    var questionToReturn = _mapper.Map <AddQuestionDto>(question);
                    return(Ok(questionToReturn));
                }
                return(BadRequest());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Example #10
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;
            }
        }
Example #11
0
        public async Task <HttpResponseMessage> AddQuestion(AddQuestionDto question, string orgId)
        {
            var data = await _questionService.AddQuestion(orgId, question);

            return(Request.CreateResponse(HttpStatusCode.Created, data));
        }
Example #12
0
        public async Task <IActionResult> AddQuestion(AddQuestionDto questionDto)
        {
            var result = await questionOrchestrator.CreateQuestion(questionDto);

            return(ActionResult(result));
        }