Ejemplo n.º 1
0
        public async void Add_RemoveById_CanAddNewAnswerThenRemoveByIdentifier()
        {
            var fixture   = new Fixture();
            var newAnswer = fixture.Create <Answer>();

            const string newId = "987";

            newAnswer.Id = newId;

            const string newText = "I'm a new answer";

            newAnswer.Text = newText;

            await repository.Add(newAnswer);

            var actual = await repository.GetById(newId);

            actual.ShouldNotBeNull();
            actual.Text.ShouldEqual(newText);

            await repository.RemoveById(newId);

            var reCheck = await repository.GetById(newId);

            reCheck.ShouldBeNull();
        }
Ejemplo n.º 2
0
        protected void btnWrite_Click(object sender, EventArgs e)
        {
            // 보안 문자를 정확히 입력했거나, 로그인된 상태라면
            if (IsImageTextCorrect())
            {
                UploadProcess(); // 파일 업로드 관련 코드 분리

                // 폼의 값들을 모델 클래스에 담기
                var model = new ArticleBase();
                model.Id       = Convert.ToInt32(_Id);
                model.Category = ddlCategoryList.SelectedValue; // 카테고리
                model.Name     = HtmlUtility.Encode(txtName.Text);
                model.Email    = HtmlUtility.Encode(txtEmail.Text);
                model.Homepage = txtHomepage.Text;
                model.Title    = HtmlUtility.Encode(txtTitle.Text);
                model.Content  = txtContent.Text;
                model.FileName = _FileName;
                model.FileSize = _FileSize;
                model.Password = txtPassword.Text;
                model.PostIp   = Request.UserHostAddress;
                model.Encoding = rdoEncoding.SelectedValue;



                // 데이터베이스에 저장
                switch (FormType)
                {
                case BoardWriteFormType.Modify:
                    model.ModifyIp = Request.UserHostAddress;
                    model.FileName = ViewState["FileName"].ToString();
                    model.FileSize = Convert.ToInt32(ViewState["FileSize"]);
                    int r = _repository.UpdateModel(model);
                    if (r > 0)     // 업데이트 완료
                    {
                        Response.Redirect($"AnswerDetails.aspx?Id={_Id}");
                    }
                    else
                    {
                        lblError.Text = "업데이트가 되지 않았습니다. 암호를 확인하세요.";
                    }
                    break;

                case BoardWriteFormType.Reply:
                    model.ParentNum = Convert.ToInt32(_Id);
                    _repository.ReplyModel(model);
                    Response.Redirect("AnswerIndex.aspx");
                    break;

                default:
                    Console.WriteLine(_repository + "/" + model);
                    _repository.Add(model);
                    Response.Redirect("AnswerIndex.aspx");
                    break;
                }
            }
            else
            {
                lblError.Text = "보안 코드가 틀립니다. 다시 입력하세요.";
            }
        }
Ejemplo n.º 3
0
        public UpdateResult Create(Model.Models.Survey survey)
        {
            UpdateResult result = new UpdateResult();

            try
            {
                _surveyRepository.Add(survey);
                Save();

                foreach (Question question in survey.Questions)
                {
                    question.SurveyId = survey.Id;
                    _questionRepository.Add(question);
                }

                Save();

                foreach (Question question in survey.Questions)
                {
                    foreach (Answer answer in question.Answers)
                    {
                        answer.QuestionId = question.Id;
                        _answerRepository.Add(answer);
                    }
                }

                Save();
            }
            catch (Exception exception)
            {
                result.State       = 4;
                result.KeyLanguage = UpdateResult.ERROR_WHEN_UPDATED;
            }
            return(result);
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Vote(int questionnaireId, int questionId, int answerId, string comment)
        {
            var userId = userManager.GetUserId(User);

            Comment c = null;

            if (!string.IsNullOrWhiteSpace(comment))
            {
                c = new Comment()
                {
                    CommentValue = comment,
                    UserId       = userId
                };
                await commentRepository.AddAsync(c);
            }

            var answer = new Answer()
            {
                QuestionId       = questionId,
                QuestionnaireId  = questionnaireId,
                PossibleAnswerId = answerId,
                UserId           = userId,
                CommentId        = c?.Id
            };
            await answerRepository.Add(answer);

            await unitOfWork.CommitAsync();

            // var nextQuestionId = await NextQuestionId(questionnaireId, questionId);
            var nextQuestionId = await questionnaireRepository.NextQuestionId(questionnaireId, questionId);

            return(RedirectToAction("Question", new { id = nextQuestionId ?? -1 }));
        }
Ejemplo n.º 5
0
        public bool Add(int clientId, IEnumerable <Answer> awnser)
        {
            foreach (var awsner in awnser)
            {
                awsner.ClientId = clientId;
                _answerRepository.Add(awsner);
            }

            return(true);
        }
Ejemplo n.º 6
0
        private void CustomiseAndAddSampleAnswers(IEnumerable <Answer> answers, IEnumerable <Question> questions)
        {
            var       identifier = 1;
            const int userIdOne  = 123;
            const int userIdTwo  = 999;

            var enumerable = questions as Question[] ?? questions.ToArray();
            var questionId = enumerable.Length > 0 ? enumerable[0].Id : "0";

            foreach (var answer in answers)
            {
                var localAnswer = answer;
                localAnswer.Id         = identifier.ToString(CultureInfo.InvariantCulture);
                localAnswer.QuestionId = questionId;
                localAnswer.DateTime   = DateTime.Now.AddDays(-identifier);
                localAnswer.Views      = (identifier * 10);

                switch (identifier)
                {
                case 1:
                    localAnswer.UserId  = userIdOne;
                    localAnswer.Public  = true;
                    localAnswer.Removed = true;
                    localAnswer.Text    = "answer one...";
                    break;

                case 2:
                    localAnswer.UserId  = userIdOne;
                    localAnswer.Public  = true;
                    localAnswer.Removed = false;
                    localAnswer.Text    = "answer two...";
                    break;

                case 3:
                    localAnswer.UserId  = userIdOne;
                    localAnswer.Public  = false;
                    localAnswer.Removed = true;
                    localAnswer.Text    = "answer three...";
                    break;

                case 4:
                    localAnswer.UserId  = userIdTwo;
                    localAnswer.Public  = false;
                    localAnswer.Removed = false;
                    localAnswer.Text    = "answer four...";
                    break;
                }

                identifier++;

                AsyncHelpers.RunSync(() => answerRepository.Add(localAnswer));
            }
        }
Ejemplo n.º 7
0
        public async Task <AnswerViewModel> AnswerQuestion(long questionId, string answer, long userId)
        {
            var entity = _answerRepository.Add(new Answer
            {
                Text       = answer,
                QuestionId = questionId,
                UserId     = userId
            });
            await _uow.CommitAsync();

            var result = _mapper.Map <AnswerViewModel>(entity);

            return(result);
        }
Ejemplo n.º 8
0
        public async Task <IActionResult> Create([Bind("AnswerId,QuestionId,AnswerText,IsCorrect")] Answer answer)
        {
            if (ModelState.IsValid)
            {
                _answerRepository.Add(answer);

                await _answerRepository.Save();

                TempData["info"] = "The answer has been saved.";

                return(RedirectToAction(nameof(Edit), "Questions", new { id = answer.QuestionId }));
            }
            return(View(answer));
        }
Ejemplo n.º 9
0
        public IActionResult Add_Answer()
        {
            string title    = Request.Form["Title"];
            string number   = Request.Form["True"];
            string question = Request.Form["QuestionId"];
            Answer answ     = new Answer()
            {
                Title = title, IsTrue = Boolean.Parse(number), QuestionID = int.Parse(question)
            };

            a.Add(answ);
            a.Save();
            return(View());
        }
Ejemplo n.º 10
0
        public async Task <Result <AnswerResponse> > Add(AddAnswerCommand command)
        {
            var validationResult = Validate(await _addAnswerCommandValidator.Validate(command));

            if (!validationResult.Success)
            {
                return(validationResult);
            }

            var Answer = command.ToAnswer();

            await _repository.Add(Answer);

            return(new Result <AnswerResponse>(AnswerResponse.ToResponse(Answer)));
        }
Ejemplo n.º 11
0
 public int InsertOrUpdateAnwerOfQuestion(Answer answer)
 {
     if (answer != null && answer.Id == 0)
     {
         answerRepository.Add(answer);
     }
     if (answer != null && answer.Id != 0)
     {
         answerRepository.Update(answer);
     }
     else
     {
         return(0);
     }
     return(1);
 }
Ejemplo n.º 12
0
        public MessageReport Create(Answer obj)
        {
            var rp = new MessageReport();

            try
            {
                _IAnswerRepository.Add(obj);
                rp.Success = true;
                rp.Message = "Thêm câu trả lời thành công!";
            }
            catch (Exception ex)
            {
                rp.Message = ex.Message;
            }
            return(rp);
        }
Ejemplo n.º 13
0
        public async Task <CreateAnswerResponse> CreateOrUpdateAnswerAsync(Answer answer)
        {
            // TODO :: CHECK IF SUBTEST BELONGS TO TOKEN USER'S TESTS
            //https://stackoverflow.com/questions/46112258/how-do-i-get-current-user-in-net-core-web-api-from-jwt-token

            if (answer.Id == 0)
            {
                _answerRepository.Add(answer);
            }
            else
            {
                _answerRepository.Update(answer);
            }
            await _unitOfWork.CompleteAsync();

            return(new CreateAnswerResponse(true, null, answer));
        }
Ejemplo n.º 14
0
        public AnswerDTO AddNewAnswer(AnswerDTO answerDto)
        {
            //create ForumTopic model
            Answer domain = _answerFactory.Create(answerDTO: answerDto);

            if (!ValidateDomainModel(u: domain) ||
                !ForumTopicIdCheck(id: domain.ForumTopicId, forumTopicRepository: _forumTopicRepository))
            {
                return(null);
            }

            var ret = _answerRepository.Add(entity: domain);

            _answerRepository.SaveChanges();

            return(_answerFactory.Create(answer: ret));
        }
Ejemplo n.º 15
0
 public async Task <IActionResult> Answer(string id, AnswerPostDto answerPostDto)
 {
     try
     {
         var answer = _mapper.Map <Answer>(answerPostDto);
         answer.UserId = new Guid(id);
         _answerRepository.Add(answer);
         if (await _unitOfWork.Commit())
         {
             return(Ok());
         }
         return(BadRequest());
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Ejemplo n.º 16
0
        public ActionResult <Strawpoll> PostStrawpoll(Strawpoll poll)
        {
            List <Answer> answers = new List <Answer>();

            poll.Answers.ToList().ForEach(e =>
            {
                Answer newAnswer = new Answer(e.AnswerString, e.AmountVoted);
                answers.Add(newAnswer);
                _answerRepository.Add(newAnswer);
            });

            Strawpoll pollDB = new Strawpoll(poll.Question, poll.DateCreated, answers);

            _strawpollRepository.Add(poll);
            _strawpollRepository.SaveChanges();

            return(CreatedAtAction(nameof(GetStrawpollById), new { id = poll.StrawpollId }, poll));
        }
Ejemplo n.º 17
0
        public IActionResult TakeExam(TakeExamViewModel giveExamViewModel)
        {
            var questions = examQuestionRepository.GetExamQuestions(giveExamViewModel.ExamId).Select(c => c.Question).Select(c => c.QuestionChoices.Select(v => v.Choice.IsCorrect)).ToList();
            int score     = 0;
            var user      = userManager.GetUserId(User);

            try
            {
                foreach (var item in giveExamViewModel.Answers)
                {
                    Answer answer = new Answer
                    {
                        AppUserId  = int.Parse(user),
                        ChoiceId   = item.ChoiceId,
                        IsSelected = item.IsSelected
                    };
                    answerRepository.Add(answer);
                    var choice = choiceRepository.Get(item.ChoiceId);
                    if (item.IsSelected == true && choice.IsCorrect == true)
                    {
                        score++;
                    }
                }
            }
            catch
            {
                return(NotFound());
            }

            double resultScore = Math.Round((((double)score / (double)questions.Count) * 100), 2);

            Result result = new Result
            {
                AppUserId = int.Parse(user),
                ExamId    = giveExamViewModel.ExamId,
                Score     = resultScore,
                Exam      = examRepository.Get(giveExamViewModel.ExamId),
                dateTime  = DateTime.Now
            };

            resultRepository.Add(result);
            return(RedirectToAction("FinishExam", new { ResultId = result.Id }));
        }
Ejemplo n.º 18
0
        public async Task <IActionResult> AddAnswer(AnswerForCreationDto answerDto)
        {
            var user = await _userRepository.GetUserByUsernameAsync(answerDto.Username);

            var answer = _mapper.Map <Answer>(answerDto);

            answer.UserId = user.Id;

            if (user != null)
            {
                _answerRepository.Add <Answer>(answer);
                await _answerRepository.SaveAll();

                user.Answers.Add(answer);
                await _userRepository.SaveAll();

                return(Ok(_mapper.Map <AnswerToReturnDto>(answer)));
            }

            throw new Exception("Nie udało się dodać rozwiązania");
        }
Ejemplo n.º 19
0
 public void CreateAnswer(AnswerEdit model)
 {
     _repo.Add(AnswerFactory.CreateAnswerFromAnswerEdit(model));
 }
Ejemplo n.º 20
0
 public void Create(AnswerDto answer)
 {
     _answerRepository.Add(_mapper.Map <Answer>(answer));
 }
Ejemplo n.º 21
0
        public async Task <IActionResult> Add([FromBody] AnswerEntity answer)
        {
            var result = await answerRepository.Add(answer);

            return(Ok(result));
        }
Ejemplo n.º 22
0
 public void RegisterAnswer(Answer answer)
 {
     _answerRepository.Add(answer);
 }
Ejemplo n.º 23
0
        public void Junior_CanAdd_JuniorAccount_Test()
        {
            var customer = new Customer {
                AccountType = _accountTypeRepository.GetAccountTypeByName(AccountType.CurrentAccount.Value), CustomerName = "Junior2"
            };

            _customerRepository.Add(customer);
            var survey   = _surveyRepository.GetAll().FirstOrDefault(s => s.Title == Survey.FirstSurvey.Item2);
            var custSurv = new CustomerSurvey
            {
                CustomerId = customer.Id,
                SurveyId   = survey.Id,
                Date       = DateTime.Now
            };

            _customerSurveyRepository.Add(custSurv);
            var ageQuestion = _questionRepository.GetAll().FirstOrDefault(q => q.QuestionText == Question.Age.Value);              //Age?
            var selectedAge = _possibleAnswersRepository.GetAll().FirstOrDefault(pa => pa.Text == PossibleAnswers.Age_0_17.Value); //"0-17"
            var answerAge   = new Answer {
                CustomerId = customer.Id, SurveyId = survey.Id, QuestionId = ageQuestion.Id, SelectedAnswerId = selectedAge.Id
            };

            _answerRepository.Add(answerAge);
            var studQuestion = _questionRepository.GetAll().FirstOrDefault(q => q.QuestionText == Question.Student.Value);;   //Is Student?
            var selectedStud = _possibleAnswersRepository.GetAll().FirstOrDefault(pa => pa.Text == PossibleAnswers.No.Value); //"no"
            var answerStud   = new Answer {
                CustomerId = customer.Id, SurveyId = survey.Id, QuestionId = studQuestion.Id, SelectedAnswerId = selectedStud.Id
            };

            _answerRepository.Add(answerStud);
            var incomeQuestion = _questionRepository.GetAll().FirstOrDefault(q => q.QuestionText == Question.Income.Value);           //Income?
            var selectedIncome = _possibleAnswersRepository.GetAll().FirstOrDefault(pa => pa.Text == PossibleAnswers.Income_0.Value); //"0"
            var answerIncome   = new Answer {
                CustomerId = customer.Id, SurveyId = survey.Id, QuestionId = incomeQuestion.Id, SelectedAnswerId = selectedIncome.Id
            };

            _answerRepository.Add(answerIncome);

            var    bundleRecomemndation = new BundleRecomendationService(_context);
            Bundle recomendeBundle      = bundleRecomemndation.Recommend(customer, survey);

            var    product       = _productRepository.GetByName(Product.JuniorSaverAccount.Value);
            var    prodSelection = new ProducSelectionService(_context);
            string msg;
            var    res = prodSelection.IsCanAddProduct(product, customer, survey, out msg);

            _output.WriteLine($"Recomended Bundle: {recomendeBundle?.BundleName} \tValue: {recomendeBundle?.Value}");
            foreach (var productBundle in recomendeBundle?.ProductIncluded)
            {
                _output.WriteLine($"\tIncluded Product: {productBundle.Product.ProductName}");
            }
            _output.WriteLine($"\tres: [{res}], Msg: [{msg}]");
            Assert.True(res);
            //Assert.Equal("Stud not hits", msg);
        }
Ejemplo n.º 24
0
 public Answer Add(Answer model)
 {
     return(_answerRepository.Add(model));
 }
Ejemplo n.º 25
0
        public void JuniorTest()
        {
            var customer = new Customer
            {
                //Id = 99,
                AccountType  = _accountTypeRepository.GetAccountTypeByName(AccountType.CurrentAccount.Value),
                CustomerName = "Junior1"
            };

            _customerRepository.Add(customer);
            var survey   = _surveyRepository.GetAll().FirstOrDefault(s => s.Title == Survey.FirstSurvey.Item2);
            var custSurv = new CustomerSurvey
            {
                CustomerId = customer.Id,
                SurveyId   = survey.Id,
                Date       = DateTime.Now
            };

            _customerSurveyRepository.Add(custSurv);
            var ageQuestion = _questionRepository.GetAll().FirstOrDefault(q => q.QuestionText == Question.Age.Value);              //Age?
            var selectedAge = _possibleAnswersRepository.GetAll().FirstOrDefault(pa => pa.Text == PossibleAnswers.Age_0_17.Value); //"0-17"
            var answerAge   = new Answer {
                CustomerId = customer.Id, SurveyId = survey.Id, QuestionId = ageQuestion.Id, SelectedAnswerId = selectedAge.Id
            };

            _answerRepository.Add(answerAge);
            var studQuestion = _questionRepository.GetAll().FirstOrDefault(q => q.QuestionText == Question.Student.Value);;   //Is Student?
            var selectedStud = _possibleAnswersRepository.GetAll().FirstOrDefault(pa => pa.Text == PossibleAnswers.No.Value); //"no"
            var answerStud   = new Answer {
                CustomerId = customer.Id, SurveyId = survey.Id, QuestionId = studQuestion.Id, SelectedAnswerId = selectedStud.Id
            };

            _answerRepository.Add(answerStud);
            var incomeQuestion = _questionRepository.GetAll().FirstOrDefault(q => q.QuestionText == Question.Income.Value);           //Income?
            var selectedIncome = _possibleAnswersRepository.GetAll().FirstOrDefault(pa => pa.Text == PossibleAnswers.Income_0.Value); //"0"
            var answerIncome   = new Answer {
                CustomerId = customer.Id, SurveyId = survey.Id, QuestionId = incomeQuestion.Id, SelectedAnswerId = selectedIncome.Id
            };

            _answerRepository.Add(answerIncome);

            var    bundleRecomemndation = new BundleRecomendationService(_context);
            Bundle recomendeBundle      = bundleRecomemndation.Recommend(customer, survey);

            _output.WriteLine($"Recomended Bundle: {recomendeBundle?.BundleName} Value: {recomendeBundle?.Value}");
            Assert.Equal(Bundle.JuniorSaver.Value, recomendeBundle?.BundleName);
            _output.WriteLine($"\tIncluded Product: {recomendeBundle?.ProductIncluded?.FirstOrDefault().Product.ProductName}");
            Assert.Equal(Product.JuniorSaverAccount.Value, recomendeBundle?.ProductIncluded?.FirstOrDefault().Product.ProductName);
        }
Ejemplo n.º 26
0
 public Answer Add(Answer entity)
 {
     return(repository.Add(entity));
 }
        public Task <Unit> Handle(CreateOneCustomerAssistDingCommand request, CancellationToken cancellationToken)
        {
            // 命令验证
            if (!request.IsValid())
            {
                // 错误信息收集
                NotifyValidationErrors(request);//主要为验证的信息
                // 返回,结束当前线程
                return(Task.FromResult(new Unit()));
            }

            ////客服人员的,上一条协助打卡与下一条协助打卡时间间隔至少30秒
            //var lastestAssistDing = _customerAssistDingRepository.GetLastestOperateBySupporter(request.SupporterOid);
            //if (lastestAssistDing != null && lastestAssistDing.CreateTime.AddSeconds(30) > DateTime.Now)
            //{
            //    //引发错误事件
            //    TimeSpan ts = (lastestAssistDing.CreateTime.AddSeconds(30) - DateTime.Now);
            //    Bus.RaiseEvent(new DomainNotification("", "休息一下吧," + ts.Seconds + "秒后,再试!"));
            //    return Task.FromResult(new Unit());
            //}

            //查询所有问题
            var questionaire = _questionnaireRepository.GetById(Guid.Parse("AA46576C-9FD5-4CB9-87B1-CCEDBF68A92D"));//打卡问题集

            if (questionaire == null)
            {
                //引发错误事件
                Bus.RaiseEvent(new DomainNotification("", "系统异常,操作失败"));
                return(Task.FromResult(new Unit()));
            }
            Guid[] questionGuids = JsonConvert.DeserializeObject <Guid[]>(questionaire.Question);
            if (questionGuids == null)
            {
                //引发错误事件
                Bus.RaiseEvent(new DomainNotification("", "系统异常,操作失败"));
                return(Task.FromResult(new Unit()));
            }

            DateTime createTime = DateTime.Now;

            //一个人每天只有一次的打卡机会
            var oneDingAnswer = _answerRepository.GetOneDingAnswerByQuestionGuid(request.CustomerOid, questionGuids[0], request.AssistTime);

            if (oneDingAnswer != null)
            {
                //引发错误事件
                Bus.RaiseEvent(new DomainNotification("", "【" + oneDingAnswer.Ctime.ToString("yyyy-MM-dd HH:mm:ss") + "】" + "客户已经打卡,每人每天只有一次打卡机会"));
                return(Task.FromResult(new Unit()));
            }


            //增加协助记录
            var customerAssistDing = new CustomerAssistDing(
                Guid.NewGuid(),
                Guid.Parse("AA46576C-9FD5-4CB9-87B1-CCEDBF68A92D"),
                request.CustomerOid,
                request.SupporterOid,
                request.AssistTime,
                createTime,
                0
                );

            _customerAssistDingRepository.Add(customerAssistDing);

            //处理问题的答案
            for (int i = 0; i < questionGuids.Count(); i++)
            {
                //依据question查询question详细信息
                var question = _questionRepository.GetById(questionGuids[i]);


                //查找每一个GUID对于的答案
                string answerContent = "";
                bool   findAnswer    = false;
                foreach (var questionAnswer in request.AssistDing)
                {
                    if (questionAnswer.QuestionOID == question.QuestionGuid)
                    {
                        findAnswer    = true;
                        answerContent = questionAnswer.AnswerContent;
                        break;
                    }
                }

                if (findAnswer == false)
                {
                    answerContent = "此回答自动屏蔽";//客户没有回答这个问题
                }

                if (question.Type != "PhotoGraph")
                {
                    answerContent = JsonConvert.SerializeObject(answerContent);
                }

                var answer = new Answer(
                    Guid.NewGuid(),
                    request.CustomerOid,
                    0,
                    request.AssistTime,
                    request.AssistTime,
                    answerContent,
                    question.Version,
                    Guid.Empty,
                    questionGuids[i]
                    );
                _answerRepository.Add(answer);
            }

            if (Commit())
            {
                // 提交成功后,这里可以发布领域事件,比如短信通知
            }
            return(Task.FromResult(new Unit()));
        }
Ejemplo n.º 28
0
 public void Add(Answer obj)
 {
     _repository.Add(obj);
 }
 public Answer AddAnswer(Answer answer)
 {
     return(_answerRepository.Add(answer));
 }