Exemplo n.º 1
0
        public void GetAnswer_Success()
        {
            DataSetFactory dataSetFactory = new DataSetFactory();
            AnswerResponse answerResponse = dataSetFactory.GetAndPostAnswer().Result;

            Assert.IsTrue(answerResponse.Success);
        }
Exemplo n.º 2
0
        private async Task <IActionResult> GetAnswerByParameterName(string parameterName)
        {
            try
            {
                AnswerResponse result = null;
                switch (parameterName)
                {
                case "alleenstaande":
                    result = await GetLivingSituation("alleenstaande");

                    break;

                case "aanvrager_met_toeslagpartner":
                    result = await GetLivingSituation("alleenstaande");

                    break;

                case "toetsingsinkomen":
                    result = await GetAssessmentIncome();

                    break;

                default:
                    return(StatusCode(400, $"ParameterName supplied: '{parameterName}' is not a valid parameter."));
                }
                return(StatusCode(200, result));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new ServerError500Response(ex)));
            }
        }
Exemplo n.º 3
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));
        }
Exemplo n.º 4
0
        private async Task <AnswerResponse> GetLivingSituation(string type)
        {
            string value = null;

            switch (type)
            {
            case "alleenstaande":
                value = "true";
                break;

            case "aanvrager_met_toeslagpartner":
                value = "false";
                break;

            default:
                throw new Exception($"Unspecified livingsituation requested: '{type}'");
            }
            var answerPayload = new AnswerResponse
            {
                Parameters = new List <Parameter> {
                    new Parameter
                    {
                        Name  = type,
                        Value = value
                    }
                }
            };

            return(answerPayload);
        }
Exemplo n.º 5
0
        public AnswerResponse DataSetPostAnswerTest()
        {
            // TODO uncomment below to test the method and replace null with proper value
            // Get DataSet ID

            Init();
            string            datasetId         = "fnxIQtYq1Qg";
            DatasetIdResponse responseDataSetId = instance.DataSetGetDataSetId();

            Assert.IsInstanceOf <DatasetIdResponse>(responseDataSetId, "response is DatasetIdResponse");
            datasetId = responseDataSetId.DatasetId;

            // Get the Dealers and vehicles for the given DataSetID
            Answer answer = new Answer();

            answer = instance.DataSetGetCheat(datasetId);   //// CHEAT answer



            // Post the response answer
            //var response = instance.DataSetPostAnswer(datasetId, answer);
            AnswerResponse ansResponse = instance.DataSetPostAnswer(datasetId, answer);

            Assert.IsInstanceOf <AnswerResponse>(ansResponse, "response is AnswerResponse");

            return(ansResponse);
        }
Exemplo n.º 6
0
        static async Task Main(string[] args)
        {
            try
            {
                MagazineStore m = new MagazineStore();

                // Get Token
                Token t = await m.GetToken();

                Console.WriteLine($"Retrieved Token : {t.token}");
                // Get Subscribers
                var tSubscribers = m.GetSubscribers(t.token);
                // Get Magazines
                var tMagazines = m.GetMagazines(t.token);
                Task.WaitAll(new Task[] { tSubscribers, tMagazines });
                Subscribers s         = tSubscribers.Result;
                var         magazines = tMagazines.Result;
                // Get List of Subscribers who subscribed magazine in each category
                var list = m.GetSubscribersForAllCategories(s.data, magazines);
                // Submit the answer and get the response
                AnswerResponse a = await m.PostAnswer(t.token, list);

                Console.WriteLine(JsonConvert.SerializeObject(a));
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Unhandled Exception : {ex.Message}");
            }
        }
 public List <AnswerResponse> GetAnswers(string gameId)
 {
     _log.LogInformation($"Get answers for gameId {gameId}");
     return(_gameContext.Answers
            .Where(x => x.GameId == gameId)
            .Select(x => AnswerResponse.FromAnswer(x))
            .ToList());
 }
 public AnswerResponse GetAnswer(int answerId)
 {
     _log.LogInformation($"Get answer for answerId {answerId}");
     return(_gameContext.Answers
            .Where(x => x.Id == answerId)
            .Select(x => AnswerResponse.FromAnswer(x))
            .First());
 }
Exemplo n.º 9
0
 public QuestionData(AnswerResponse response)
 {
     Question = new KeyValuePair <string, string>(
         response.parameters.questionid,
         response.parameters.question);
     Answers = response.parameters.answers
               .Select(ans => ans.answer)
               .ToList();
     Progression = response.parameters.progression;
 }
Exemplo n.º 10
0
 public static void PrintPropertiesOfAnswerObject(AnswerResponse answerResponse)
 {
     Console.WriteLine("answerCorrect: " + answerResponse.data.answerCorrect);
     Console.WriteLine("totalTime: " + answerResponse.data.totalTime);
     Console.WriteLine("shouldBe: " + answerResponse.data.shouldBe);
     Console.WriteLine("success: " + answerResponse.success);
     Console.WriteLine("token: " + answerResponse.token);
     Console.WriteLine("message: " + answerResponse.message);
     Console.ReadLine();
 }
Exemplo n.º 11
0
        public async Task <AnswerResponse> CheckAnswer(string gameName, string playerName, int answerId)
        {
            var data       = new AnswerResponse();
            var questionId = await GetCurrentQuestionId(gameName);

            var answers = await GetAllAnswers(gameName, questionId - 1);

            data.isCorrect       = answers[answerId].isCorrect;
            data.correctAnswerId = answers.FindIndex(x => x.isCorrect);
            return(data);
        }
Exemplo n.º 12
0
        public async Task <AnswerResponse> CheckAnswer(string gameName, string playerName, int answerId)
        {
            AnswerResponse data  = new AnswerResponse();
            var            lines = await File.ReadAllLinesAsync(_gameDirectoryPath + $"/{gameName}/{_defaultQuestionFile}");

            var questions  = ParseQuestions(lines);
            var questionId = await GetCurrentQuestionId(gameName);

            data.isCorrect       = questions[questionId].Answers[answerId].isCorrect;
            data.correctAnswerId = questions[questionId].Answers.FindIndex(x => x.isCorrect == true);
            return(data);
        }
        private AnswerResponse FormatThirdQuestionAnswerResponse(CountryPublicHoliday result)
        {
            AnswerResponse formattedResponse = new AnswerResponse();

            formattedResponse.AdditionalInfo = new List <string>();
            formattedResponse.QuestionString = ThirdQuestionString;
            formattedResponse.Answer         = result.CountryCode + ", " + result.CountryName;
            foreach (var holiday in result.UniqueHolidays)
            {
                formattedResponse.AdditionalInfo.Add(string.Format("{0} is unique holiday for {1}", holiday.Date.ToShortDateString(), holiday.Name));
            }
            formattedResponse.Explanation = string.Format("The country contains {0} unique holidays in 2019!", result.UniqueHolidays.Count);
            return(formattedResponse);
        }
        public AnswerResponse AnswerQuestion(int questionNumber)
        {
            if (questionNumber == 1)
            {
                CountryPublicHoliday result = this.publicHolidaysOperations.GetMaxHolidaysCountry(2019);
                if (result != null)
                {
                    this.answerResponse = FormatFirstQuestionAnswerResponse(result);
                }
                else
                {
                    return(GetExceptionAnswerResponse(ExceptionMessageString));
                }
            }

            else if (questionNumber == 2)
            {
                HolidaysMonth result = this.publicHolidaysOperations.GetMaxHolidaysMonthGlobally(2019);
                if (result != null)
                {
                    this.answerResponse = FormatSecondQuestionAnswerResponse(result);
                }
                else
                {
                    return(GetExceptionAnswerResponse(ExceptionMessageString));
                }
            }

            else if (questionNumber == 3)
            {
                CountryPublicHoliday result = this.publicHolidaysOperations.GetMaxUniqueHolidaysCountry(2019);
                if (result != null)
                {
                    this.answerResponse = FormatThirdQuestionAnswerResponse(result);
                }
                else
                {
                    return(GetExceptionAnswerResponse(ExceptionMessageString));
                }
            }

            else
            {
                return(GetExceptionAnswerResponse("Question number is not provided, Please pass correct question number."));
            }

            this.answerResponse.Status = true;
            return(this.answerResponse);
        }
        private AnswerResponse FormatSecondQuestionAnswerResponse(HolidaysMonth result)
        {
            AnswerResponse formattedResponse = new AnswerResponse();

            formattedResponse.AdditionalInfo = new List <string>();
            formattedResponse.QuestionString = SecondQuestionString;
            formattedResponse.Answer         = result.MonthName;
            result.Holidays.Sort();
            foreach (var day in result.Holidays)
            {
                formattedResponse.AdditionalInfo.Add(string.Format("Day: {0} is public holiday globally", day.ToString()));
            }
            formattedResponse.Explanation = string.Format("The month contains {0} Holidays in 2019!", result.Holidays.Count);
            return(formattedResponse);
        }
Exemplo n.º 16
0
        private async Task <AnswerResponse> GetAssessmentIncome()
        {
            var answerPayload = new AnswerResponse
            {
                Parameters = new List <Parameter>
                {
                    new Parameter
                    {
                        Name  = "toetsingsinkomen",
                        Value = "24000"
                    }
                }
            };

            return(answerPayload);
        }
Exemplo n.º 17
0
 private void LoadAnswersCommentsToResponse(AnswerEntity entity, AnswerResponse response)
 {
     entity.Comments.ToList().ForEach(comment =>
     {
         var newComment = new CommentResponse
         {
             Id   = comment.Id,
             Body = comment.Body,
             User = new UserResponse
             {
                 Id = comment.UserId
             }
         };
         response.Comments.Add(newComment);
     });
 }
Exemplo n.º 18
0
        public object Any(Answer request)
        {
            Guid userId = UserSession.GetUserId();

            TableRepository tableRepository = new TableRepository();

            // create answers
            AnswerEntry answerEntry = tableRepository.Get <AnswerEntry>(Tables.Answers, request.QuestionId, userId);

            if (answerEntry == null)
            {
                DateTime dateTime = DateTime.UtcNow;
                answerEntry = new AnswerEntry(request.QuestionId, userId)
                {
                    Content      = request.Content,
                    Creation     = dateTime,
                    Modification = dateTime,
                    Votes        = 0
                };

                // update the answers count
                QuestionEntry questionEntry = tableRepository.Get <QuestionEntry>(Tables.Questions, request.QuestionOwnerId, request.QuestionId);
                if (questionEntry != null)
                {
                    questionEntry.Answers++;
                    tableRepository.InsertOrMerge(questionEntry, Tables.Questions);
                }
            }
            else
            {
                // perform an edit
                answerEntry.Content      = request.Content;
                answerEntry.Modification = DateTime.UtcNow;
            }

            tableRepository.InsertOrMerge(answerEntry, Tables.Answers);

            AnswerResponse response = new AnswerResponse
            {
                Result = ErrorCode.OK
            };


            return(response);
        }
Exemplo n.º 19
0
        static async Task RunAsync()
        {
            try
            {
                VAutoClient.Initialize();

                Console.WriteLine("Retreiving data set id...");
                DatasetIdResponse datasetIdResponse = await VAutoClient.GetDataSetIdAsync();

                string dataSetId = datasetIdResponse.datasetId;
                Console.WriteLine("Done.");

                Console.WriteLine("Retreiving vehicle ids...");
                VehicleIdsResponse vehicleIds = await VAutoClient.GetVehicleIdsAsync(dataSetId);

                Console.WriteLine("Done.");

                Console.WriteLine("Purging vehicle id duplicates...");
                IEnumerable <int> vehicleIdList = vehicleIds.vehicleIds.Distinct();   //ensure duplicate calls for vehicle data are not performed.
                Console.WriteLine("Done.");

                Console.WriteLine("Retreiving vehicle and dealer data...");
                List <Task <VehicleResponse> > vehicleDataTasks = new List <Task <VehicleResponse> >();
                List <Task <DealersResponse> > dealerDataTasks  = new List <Task <DealersResponse> >();
                await GetVehicleAndDealerData(dataSetId, vehicleIdList, vehicleDataTasks, dealerDataTasks);

                Console.WriteLine("Done.");

                Console.WriteLine("Building answer...");
                Answer answer = BuildAnswer(dealerDataTasks, vehicleDataTasks);
                Console.WriteLine("Done.");

                Console.WriteLine("Posting answer...");
                AnswerResponse answerResponse = await VAutoClient.PostAnswer(dataSetId, answer);

                Console.WriteLine("Done.");

                Console.WriteLine("Result: {0}\nMessage: {1}\nMilliseconds: {2}", answerResponse.success, answerResponse.message, answerResponse.totalMilliseconds);
            }
            catch (Exception e)
            {
                Console.WriteLine("\n\nException: {0}\n\nStackTrace: {1}", e.Message, e.StackTrace);
            }
        }
Exemplo n.º 20
0
        static async Task <AnswerResponse> postAnswer(string token, List <string> subscribers)
        {
            SubscibersList listToSubmit = new SubscibersList()
            {
                subscribers = subscribers
            };
            HttpResponseMessage response = await client.PostAsJsonAsync("api/answer/" + token, JToken.FromObject(listToSubmit));

            string result = string.Empty;

            if (response.IsSuccessStatusCode)
            {
                result = await response.Content.ReadAsStringAsync();
            }
            JObject        apiResponse = JObject.Parse(result);
            AnswerResponse output      = apiResponse.GetValue("data").ToObject <AnswerResponse>();

            return(output);
        }
Exemplo n.º 21
0
        public async Task <IActionResult> GetAnswersByQuestionIdAsync(int questionId)
        {
            AnswerResponse answerResponse = new AnswerResponse();

            try
            {
                answerResponse.Answers = await _dbContext.Answers
                                         .Where(a => a.QuestionId == questionId)
                                         .ToListAsync();

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

            return(StatusCode(answerResponse.Status, answerResponse));
        }
        public static async Task <AnswerResponse> PostAnswer(string dataSetId, Answer answerRequest)
        {
            var jsonContent   = JsonConvert.SerializeObject(answerRequest);
            var stringContent = new StringContent(jsonContent, Encoding.UTF8, "application/json");

            HttpResponseMessage response = await client.PostAsync(client.BaseAddress.AbsoluteUri + string.Format("/api/{0}/answer", dataSetId), stringContent);

            AnswerResponse answerResponse = null;

            if (response.IsSuccessStatusCode || response.StatusCode == System.Net.HttpStatusCode.BadRequest)
            {
                answerResponse = await response.Content.ReadAsAsync <AnswerResponse>();
            }
            else
            {
                throw new Exception(string.Format("Failed to post the answer.\n\n{0}\n\nDataSet ID: {1}\n\n{2}", response.ReasonPhrase, dataSetId, jsonContent));
            }
            return(answerResponse);
        }
Exemplo n.º 23
0
        private void LoadAnswersToResponse(QuestionEntity entity, QuestionResponse response)
        {
            entity.Answers.ToList().ForEach(answer =>
            {
                var newAnswer = new AnswerResponse()
                {
                    Id    = answer.Id,
                    Body  = answer.Body,
                    Votes = answer.Votes,
                    User  = new UserResponse
                    {
                        Id = answer.UserId
                    }
                };
                LoadAnswersCommentsToResponse(answer, newAnswer);

                response.Answers.Add(newAnswer);
            });
        }
Exemplo n.º 24
0
        public async Task <IActionResult> GetAnswerByIdAsync(int id)
        {
            AnswerResponse answerResponse = new AnswerResponse();

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

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

            return(StatusCode(answerResponse.Status, answerResponse));
        }
Exemplo n.º 25
0
        /// <inheritdoc/>
        async Task <AnswerServiceResponse> ISubmitAnswerService.SubmitNewAnswer()
        {
            string datasetId = (await apiService.CreateDataSet()).DatasetId;

            // Create an answer for this dataset
            Answer answer = await GetAnswer(datasetId);

            // Submit the answer and return response
            AnswerServiceResponse finalServiceResponse = new AnswerServiceResponse
            {
                JsonRequest = JsonConvert.SerializeObject(answer, Formatting.Indented)
            };
            AnswerResponse answerResponse = await apiService.PostAnswer(datasetId, answer);

            finalServiceResponse.Success           = answerResponse.Success;
            finalServiceResponse.Message           = answerResponse.Message;
            finalServiceResponse.TotalMilliseconds = answerResponse.TotalMilliseconds;

            return(finalServiceResponse);
        }
        /// <summary>
        /// Dataset factory
        /// Gets dataset ID, calls vehicle factory, then dealer factory to obtain data necessary for answer
        /// </summary>
        /// <returns></returns>
        public async Task <AnswerResponse> GetAndPostAnswer()
        {
            AnswerResponse    answerResponse    = new AnswerResponse();
            Answer            answer            = new Answer();
            DatasetIdResponse datasetIdResponse = dataSetApi.GetDataSetId();

            //check datasetid response then get list of vehicles
            if (CheckDatasetIdResponse(datasetIdResponse))
            {
                string datasetId = datasetIdResponse.DatasetId;
                answer.Dealers = await vehiclesFactory.GetListOfVehicles(datasetId);

                answerResponse = dataSetApi.PostAnswer(datasetId, answer);
                return(answerResponse);
            }
            else
            {
                throw new ApiException(404, "DatasetIdResponse or Dataset ID not found.");
            }
        }
Exemplo n.º 27
0
        public GameStatusResponse GetStatusResponse(string gameId, string playerId)
        {
            var status = GetStatus(gameId);

            if (status == null)
            {
                return(null);
            }

            var gameStatus = GameStatusResponse.FromStatus(status);

            gameStatus.IsCurrentChoice    = status.ChoosingPlayerId == playerId;
            gameStatus.RemainingQuestions = RemainingQuestions(gameId);

            // Return previous choice
            if (!gameStatus.IsCurrentChoice)
            {
                gameStatus.ChoiceA = _playData.GetPreviousChoiceA();
                gameStatus.ChoiceB = _playData.GetPreviousChoiceB();
            }
            else if (gameStatus.ChoiceA == null || gameStatus.ChoiceB == null)
            {
                // TODO: Something with EF not populating the object, can look at it later
                var choiceA = _gameContext.Answers.Find(status.ChoiceAId);
                var choiceB = _gameContext.Answers.Find(status.ChoiceBId);
                gameStatus.ChoiceA = AnswerResponse.FromAnswer(choiceA);
                gameStatus.ChoiceB = AnswerResponse.FromAnswer(choiceB);
            }

            if (gameStatus.ChoosingPlayer == null)
            {
                var player = _gameContext.Players.Find(status.ChoosingPlayerId);
                if (player != null)
                {
                    gameStatus.ChoosingPlayer            = PlayerResponse.FromPlayer(player);
                    gameStatus.ChoosingPlayer.IsChoosing = true;
                }
            }

            return(gameStatus);
        }
Exemplo n.º 28
0
        void OutputResults(AnswerResponse response)
        {
            Log("Server Results");

            var successResult = response.Success.HasValue ? response.Success.Value.ToString() : "N/A";

            Log($"{nameof(response.Success)}: {successResult}");

            var timeResult = response.TotalMilliseconds.HasValue ? Convert.ToString(response.TotalMilliseconds.Value) : "N/A";

            Log($"{nameof(response.TotalMilliseconds)}: {timeResult}");

            Log($"{nameof(response.Message)}: '{response.Message}'");

            var json             = JsonConvert.SerializeObject(response);
            var responseFilePath = Path.Combine(Environment.CurrentDirectory, "Answer.json");

            Log($"Outputting results to file in '{responseFilePath}'");

            File.WriteAllText(responseFilePath, json);
        }
        public AnswerResponse AddAnswer(string request, string gameId)
        {
            _log.LogInformation($"Adding answer for gameId {gameId}: {request}");

            if (!_gameContext.Games.Any(x => x.Id == gameId))
            {
                return(null);
            }

            var answer = _gameContext.Answers.Add(
                new Answer
            {
                Text      = request,
                Submitted = DateTime.Now,
                GameId    = gameId
            });

            _gameContext.SaveChanges();

            return(AnswerResponse.FromAnswer(answer.Entity));
        }
Exemplo n.º 30
0
        public GameStatusResponse MakeChoice(string gameId, int answerId)
        {
            // Update answers, eliminated and increase chosen count
            var status        = GetStatus(gameId);
            var choiceA       = GetAnswer(status.ChoiceAId);
            var choiceB       = GetAnswer(status.ChoiceBId);
            var currentPlayer = status.ChoosingPlayerId;

            if (status.ChoiceAId == answerId)
            {
                choiceA.ChosenCount++;
                choiceB.IsEliminated = true;
            }
            else if (status.ChoiceBId == answerId)
            {
                choiceB.ChosenCount++;
                choiceA.IsEliminated = true;
            }
            else
            {
                return(null);
            }

            // Set previous questions to current questions
            _playData.SetPreviousChoiceA(AnswerResponse.FromAnswer(status.ChoiceA));
            _playData.SetPreviousChoiceB(AnswerResponse.FromAnswer(status.ChoiceB));

            // Get new questions
            SetNewChoice(status);

            // New Player
            status.ChoosingPlayer = GetNextPlayer(gameId);

            _gameContext.GameState.Update(status);
            _gameContext.Players.Update(status.ChoosingPlayer);
            _gameContext.SaveChanges();

            return(GetStatusResponse(gameId, currentPlayer));
        }
Exemplo n.º 31
0
        public object Any(Answer request)
        {
            Guid userId = UserSession.GetUserId();

            TableRepository tableRepository = new TableRepository();

            // create answers
            AnswerEntry answerEntry = tableRepository.Get<AnswerEntry>(Tables.Answers, request.QuestionId, userId);
            if (answerEntry == null)
            {
                DateTime dateTime = DateTime.UtcNow;
                answerEntry = new AnswerEntry(request.QuestionId, userId)
                {
                    Content = request.Content,
                    Creation = dateTime,
                    Modification = dateTime,
                    Votes = 0
                };

                // update the answers count
                QuestionEntry questionEntry = tableRepository.Get<QuestionEntry>(Tables.Questions, request.QuestionOwnerId, request.QuestionId);
                if (questionEntry != null)
                {
                    questionEntry.Answers++;
                    tableRepository.InsertOrMerge(questionEntry, Tables.Questions);
                }
            }
            else
            {
                // perform an edit
                answerEntry.Content = request.Content;
                answerEntry.Modification = DateTime.UtcNow;
            }

            tableRepository.InsertOrMerge(answerEntry, Tables.Answers);

            AnswerResponse response = new AnswerResponse
            {
                Result = ErrorCode.OK
            };

            return response;
        }