Ejemplo n.º 1
0
        public async Task <object> CreateResponseBenchmark([FromQuery] string formId, [FromQuery] string incorrectRatio)
        {
            bool formIdParseSuccess = ObjectId.TryParse(formId, out ObjectId formIdObject);

            if (!formIdParseSuccess)
            {
                return(BadRequest(new
                {
                    success = false,
                    message = "Invalid Form Id"
                }));
            }

            bool incorrectRatioParseSuccess = float.TryParse(incorrectRatio, out float incorrectRatioValue);

            if (!incorrectRatioParseSuccess)
            {
                incorrectRatioValue = 0;
            }

            try
            {
                FormResponseModel formResponse = await $"{Constants.BASE_URL}"
                                                 .AppendPathSegment("form")
                                                 .AppendPathSegment($"{formId}")
                                                 .GetJsonAsync <FormResponseModel>();

                NewResponseViewModel newResponse = responseGenerator.GenerateRandomResponse(
                    formResponse.form, incorrectRatioValue);

                var watch = Stopwatch.StartNew();

                ResponseModel response = await $"{Constants.BASE_URL}"
                                         .AppendPathSegment("response")
                                         .SetQueryParams(new { formId })
                                         .PostJsonAsync(newResponse)
                                         .ReceiveJson <ResponseModel>();

                watch.Stop();

                return(Ok(new
                {
                    success = true,
                    timeElapsed = watch.ElapsedMilliseconds,
                    response
                }));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(new JsonResult(new
                {
                    success = false,
                    message = e.Message
                }));
            }
        }