Esempio n. 1
0
        public async Task SetAnswers([FromBody] AnswerRequest request)
        {
            foreach (var answer in request.Answers)
            {
                var dQuestion = new DQuestion
                {
                    UserId     = request.UserId,
                    QuestionId = answer.Key,
                    Answer     = answer.Value
                };

                _context.DQuestions.Add(dQuestion);
            }

            await _context.SaveChangesAsync();

            Task.Run(async() =>
            {
                await Task.Delay(TimeSpan.FromMinutes(1));
                await _predictionService.CreateActivityPredictionsAsync(request.UserId);
                var userIds = await _matchUsersService.CreateAvailableActivitiesAsync();
                var devices = _notificationManager.GetDevicesForTags(userIds);
                foreach (var d in devices)
                {
                    _notificationManager.SendMessage(d, _notificationManager.ConstructMessage("new"));
                }
            });
        }
Esempio n. 2
0
        public async Task <ActionResult <AnswerRequest> > PostAnswerRequest(AnswerRequest answerRequest)
        {
            _context.AnswerRequests.Add(answerRequest);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetAnswerRequest", new { id = answerRequest.AnswerId }, answerRequest));
        }
Esempio n. 3
0
        public async Task <IActionResult> PutAnswerRequest(short id, AnswerRequest answerRequest)
        {
            if (id != answerRequest.AnswerId)
            {
                return(BadRequest());
            }

            _context.Entry(answerRequest).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!AnswerRequestExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        // GET: AnswerRequests/Details/5
        public async Task <IActionResult> Details(short?id)
        {
            try
            {
                if (id == null)
                {
                    return(NotFound());
                }

                // Préparation de l'appel à l'API
                string accessToken = await HttpContext.GetTokenAsync("access_token");

                HttpClient client = new HttpClient();
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

                // Récurération des données et convertion des données dans le bon type
                string content = await client.GetStringAsync(_configuration["URLAPI"] + $"api/AnswerRequests/{id}");

                AnswerRequest answerRequest = JsonConvert.DeserializeObject <AnswerRequest>(content);

                if (answerRequest == null)
                {
                    return(NotFound());
                }

                return(View(answerRequest));
            }
            catch (HttpRequestException e)
            {
                return(Unauthorized());
            }
        }
Esempio n. 5
0
        public void ChooseByBtn()
        {
            //ตอบ
            var answer = Answers.Where(x => x.AnswerNo == CurrentChoices.QuestionNo).FirstOrDefault();

            answer.Choice = CurrentChoices;

            AnswerRequest ans = new AnswerRequest
            {
                ExamSheetId = TestingData.sheet._id,
                ClientId    = TestingData.Config.ClientId,
                Qid         = QuestionSelect.Question._id,
                ChoiceId    = CurrentChoices._id,
            };

            svc.Answer(ans);

            if (Answers.Where(x => x.Choice.ChoiceNo == 0).Count() == 0)
            {
                SendExamVisibility = Visibility.Visible;
                //LeftScrollVisibility = Visibility.Collapsed;
                //TODO ปุ่มส่งผลสอบกระพิบ
            }
            else
            {
                //ไปข้อถัดไป
                NextQuestion();
            }
        }
Esempio n. 6
0
        public async Task <IActionResult> AddAnswerAsync([FromBody] AnswerRequest answerRequest)
        {
            AnswerResponse answerResponse = new AnswerResponse();

            try
            {
                await answerRequest.GetRequestedUserAsync(_dbContext);

                Answer answer = answerRequest?.Answer;

                if (answer == null)
                {
                    throw new Exception("Answer is empty");
                }

                await _dbContext.Answers.AddAsync(answer);

                await _dbContext.SaveChangesAsync();

                answerResponse.Answers = new List <Answer>()
                {
                    await _dbContext.Answers.FindAsync(answer.Id)
                };

                answerResponse.Message   = "Answer added";
                answerResponse.IsSuccess = true;
            }
            catch (Exception ex)
            {
                answerResponse.Message = ex.Message;
            }

            return(StatusCode(answerResponse.Status, answerResponse));
        }
        public async Task <ActionResult> ValidateAnswer(AnswerRequest answer)
        {
            InitSetAnswersArguments(answer);
            var stepresult = await ExecuteFlowAsync();

            return(ValidateStepResult(stepresult));
        }
        public static async Task ExecuteChallengeAsync(CancellationToken cancelToken)
        {
            var service = new ApiService();
            var token   = await service.GetTokenByApiAsync(cancelToken); // Get token from api call

            var magazineIdsByCategoriesTask = GetMagazineIdsByCategoriesAsync
                                                  (token, (await service.GetCategoriesByApiAsync(token, cancelToken)).Data, service, cancelToken);

            var subscribersTask = service.GetSubscribersByApiAsync(token, cancelToken); // Get subscribers by api call

            var magazineIdsByCategory = await magazineIdsByCategoriesTask;
            var subscribers           = await subscribersTask; // both subscribers and magazine are called async as they are not dependent on each other.

            var subscribersWithMagazineIds = GetSubscribersWithMagazineIds(subscribers);

            var subscriberSubscribedEachCategory = GetSubscriberSubscribedEachCategory(subscribersWithMagazineIds, magazineIdsByCategory);

            var answerRequest = new AnswerRequest()
            {
                Subscribers = subscriberSubscribedEachCategory
            };

            var result = await service.PostAnswerToApiAsync(token, answerRequest, cancelToken);

            PrintPropertiesOfAnswerObject(result);
        }
Esempio n. 9
0
        public async Task <AnswerResponse> PostAnswerToApiAsync(string token, AnswerRequest answerRequest, CancellationToken cancelToken)
        {
            var url      = WebApiUrl.GetConnectionStringForAnswer(token);
            var body     = JsonConvert.SerializeObject(answerRequest);
            var response = await WebApiHelper.GetWebApiResponseAsync <AnswerResponse>(url, HttpMethod.Post, HttpClient, body, cancelToken);

            return(response);
        }
Esempio n. 10
0
 public async Task <IActionResult> AddAnswer([FromBody] AnswerRequest request)
 {
     if (await _feedbackService.AddAnswer(request))
     {
         return(Ok());
     }
     return(BadRequest("False"));
 }
Esempio n. 11
0
        public void Answer(AnswerRequest answer)
        {
            var client  = new RestClient(serviceUrl);
            var request = new RestRequest("Client/Answer", Method.POST);

            request.AddParameter("application/json", JsonConvert.SerializeObject(answer), ParameterType.RequestBody);
            var response = client.Execute(request);
        }
Esempio n. 12
0
        public static Result AnswerRequestToResult(AnswerRequest request)
        {
            Result result = new Result();

            result.AnswerId   = request.AnswerId;
            result.QuestionId = request.QuestionId;
            result.userId     = request.UserId;
            return(result);
        }
 public AnswerSettingsBuilder()
 {
     _channel            = string.Empty;
     _identification     = string.Empty;
     _answerRequest      = new AnswerRequest();
     _paramProduct       = string.Empty;
     _product            = string.Empty;
     _identificationType = string.Empty;
 }
Esempio n. 14
0
        public async Task <AnswerResponse> PostAnswer(string token, string[] subscribers)
        {
            AnswerRequest request = new AnswerRequest {
                subscribers = subscribers
            };
            string action = $"/answer/{token}";

            return(await Communication.Post <AnswerResponse, AnswerRequest>(action, request));
        }
        public async Task <IActionResult> Update(int answerId, AnswerRequest answerRequest)
        {
            bool updated = await _answerService.UpdateAsync(answerId, answerRequest);

            if (updated)
            {
                return(Ok(await _answerService.GetByIdAsync(answerId)));
            }
            return(NotFound());
        }
Esempio n. 16
0
        public async Task <ActionResult <NextQuestionResponse> > SetAnswer(AnswerRequest answer)
        {
            if (!await SurveyService.ValidateAnswerRequest(_context, answer))
            {
                return(NotFound());
            }
            _context.Result.Add(SurveyService.AnswerRequestToResult(answer));
            await _context.SaveChangesAsync();

            return(await SurveyService.GetNextQuestonNumber(_context, answer.QuestionId));
        }
Esempio n. 17
0
        public override AnswerResponse Handle(ParticipatingInfo participant, AnswerRequest request)
        {
            var result = base.Handle(participant, request);

            if (!result.HasError)
            {
                participant.CircutePercent = decimal.Parse(request.Message);
                return(result);
            }
            return(result);
        }
        public async Task <string> Answer(ulong userId, int supportRequestId, string text)
        {
            var request = new AnswerRequest
            {
                UserId           = userId,
                SupportRequestId = supportRequestId,
                Text             = text
            };
            var reply = await _client.AnswerAsync(request);

            return(reply.Message);
        }
Esempio n. 19
0
        public void Answer()
        {
            AnswerRequest ans = new AnswerRequest
            {
                ExamSheetId = TestingData.sheet._id,
                ClientId    = TestingData.Config.ClientId,
                Qid         = CurrentQuestion._id,
                ChoiceId    = CurrentQuestion.UserAnswer._id,
            };

            svc.Answer(ans);
        }
Esempio n. 20
0
        public static async Task <AnswerResponse> PostAnswerToAPIAsync(List <string> Ids, string token)
        {
            var url           = WebApiUrl.GetConnectionStringForAnswer(token);
            var answerRequest = new AnswerRequest()
            {
                subscribers = Ids
            };
            var payload  = new AnswerRequestResponseInfo(answerRequest);
            var response = await RestSharpImp.CallApiGenericPostMethod(payload, url);

            return(response);
        }
Esempio n. 21
0
        public static string Answer(
            AnswerRequest request,
            IAkinatorServer server)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            var url = $"{server.ServerUrl}/answer?session={request.Session}&signature={request.Signature}&step={request.Step}&answer={(int)request.Choice}";

            return(url);
        }
        public async Task <bool> UpdateAsync(int answerId, AnswerRequest answerRequest)
        {
            Answer existingAnswer = await _answerRepository.GetByIdAsync(answerId);

            if (existingAnswer == null)
            {
                return(false);
            }

            existingAnswer.Body          = answerRequest.Body;
            existingAnswer.TimesSelected = answerRequest.TimesSelected;
            return(await _answerRepository.UpdateAsync(existingAnswer));
        }
Esempio n. 23
0
        public async Task <IActionResult> AddAnswer(Guid questionId, [FromBody] AnswerRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(GetModelErrorResponse());
            }
            request.QuestionId = questionId;
            // request.UserId = extract from token payload

            var answerId = await _question.RegisterAnswer(request);

            return(GetResponse <Guid>(answerId, StatusCodes.Status201Created));
        }
Esempio n. 24
0
        public async Task <Answer> PostAnswerAsync(string datasetId, AnswerRequest request)
        {
            var url     = $"api/{datasetId}/answer";
            var content = new StringContent(
                JsonConvert.SerializeObject(request),
                Encoding.UTF8,
                "application/json"
                );
            var response = await _http.PostAsync(url, content);

            var str = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <Answer>(str));
        }
Esempio n. 25
0
        public object ProcessRequest(byte[] requestBytes, IPAddress address, WebSocket socket)
        {
            var requestAsString = _toStringConverter.Convert(requestBytes);

            try
            {
                var json    = JObject.Parse(requestAsString);
                var type    = json["type"].ToString();
                var payload = json["payload"].ToString();



                switch (type)
                {
                case "clientOffer":
                    var clientOfferRequest        = new ClientOfferRequest(address, socket, payload);
                    var clientOfferRequestHandler = _handlersFactory.Create(clientOfferRequest, clientOfferRequest.GetResponseType());

                    return(clientOfferRequestHandler.Handle(clientOfferRequest));

                case "serverOffer":
                    var serverRequest        = new ServerOfferRequest(address, socket, payload);
                    var serverRequestHandler = _handlersFactory.Create(serverRequest, serverRequest.GetResponseType());

                    return(serverRequestHandler.Handle(serverRequest));

                case "answer":
                    var answerRequest        = new AnswerRequest(address, socket, payload);
                    var answerRequestHandler = _handlersFactory.Create(answerRequest, answerRequest.GetResponseType());

                    return(answerRequestHandler.Handle(answerRequest));

                case "new-ice":
                    var newICERequest        = new NewICEAvailableRequest(address, socket, payload);
                    var newICERequestHandler = _handlersFactory.Create(newICERequest, newICERequest.GetResponseType());

                    return(newICERequestHandler.Handle(newICERequest));

                case "txt":
                default:
                    var txtRequest        = new TxtRequest(address, socket, payload);
                    var txtRequestHandler = _handlersFactory.Create(txtRequest, txtRequest.GetResponseType());
                    return(txtRequestHandler.Handle(txtRequest));
                }
            }
            catch (System.Exception ex)
            {
                return($@"An error {ex} occured.");
            }
        }
Esempio n. 26
0
        public async Task <Guid> RegisterAnswer(AnswerRequest request)
        {
            var answerId = Guid.NewGuid();
            var command  = new AnswerCommand
            {
                Id         = answerId,
                Body       = request.Body,
                UserId     = request.UserId,
                QuestionId = request.QuestionId
            };
            await _mediator.Send(command);

            return(answerId);
        }
Esempio n. 27
0
        public async Task <Answer> AnswerAsync(string id, AnswerRequest request, CancellationToken cancellationToken)
        {
            var answer = new Answer {
                QuestionId = id, Content = request.Content, Id = Guid.NewGuid().ToString()
            };

            _answerCollection.InsertOneAsync(answer, cancellationToken);

            var filter = Builders <Question> .Filter.Eq(q => q.Id, id);

            var update = Builders <Question> .Update.Push(q => q.Answers, answer.Id);

            await _questionCollection.UpdateOneAsync(filter, update, null, cancellationToken);

            return(answer);
        }
Esempio n. 28
0
        public IActionResult PostAnswer(string gameId,
                                        [FromBody] AnswerRequest answer)
        {
            _log.LogInformation($"Add an answer to {gameId}: {answer.Answer}");
            if (answer.Answer == null)
            {
                return(new StatusCodeResult(400));
            }
            var ans = _answerService.AddAnswer(answer.Answer, gameId);

            if (ans == null)
            {
                return(new StatusCodeResult(404));
            }

            return(new JsonResult(ans));
        }
Esempio n. 29
0
        public async Task AnswerAsync_Right_ShouldBeOk()
        {
            var question = await CreateOrGetOneQuestionWithNoAnswerAsync();

            question.Should().NotBeNull();

            var answer = new AnswerRequest {
                Content = "问题一的回答一"
            };
            await _questionService.AnswerAsync(question.Id, answer, CancellationToken.None);

            var questionWithAnswer = await _questionService.GetWithAnswerAsync(question.Id, CancellationToken.None);

            questionWithAnswer.Should().NotBeNull();
            questionWithAnswer.AnswerList.Should().NotBeEmpty();
            questionWithAnswer.AnswerList.First().Content.Should().Be(answer.Content);
        }
        public void InitSetAnswersArguments(AnswerRequest answer)
        {
            var userId = long.Parse(User.Identity.GetUserId(), CultureInfo.InvariantCulture);

            ProcessFlowArgument.User = new User
            {
                Id = userId
            };
            ProcessFlowArgument.Execution = new Execution
            {
                ProductId = 1,
                Id        = ExecutionId
            };
            ProcessFlowArgument.IsSubmitting = true;
            var arg = ProcessFlowArgument as IAnswerQuestionArgument;

            arg.AnswerRequest   = answer;
            ProcessFlowArgument = arg;
        }
Esempio n. 31
0
        /// <summary>
        /// A Player has answered.
        /// The result of this method is to show the waiting screen to everyone who has already answered and then when everyone has answered to show the voting screen
        /// </summary>
        public void Answer(AnswerRequest data)
        {
            Trace.TraceInformation("Answer called " + data.GameId);
            var playerId = Context.User.Identity.GetUserId();
            if (!string.IsNullOrEmpty(playerId) && !string.IsNullOrEmpty(data.Answer))
            {
                var game = GameConstants.Dal.LoadGame<Lee>(data.GameId) as Lee;
                game.RecordPlayerAnswer(playerId, data.Answer);
                GameConstants.Dal.SaveGame(game);

                //find all of the users that we should update
                var playersToUpdate = game.CurrentRound.PlayerInputs.Where(pi => !string.IsNullOrEmpty(pi.Answer)).Select(pi => pi.PlayerId).ToArray();
                UpdateClients(game, GetUserGroup(playersToUpdate));
            }
        }