/// <summary>
        ///
        /// </summary>
        /// <param name="triangleDto"></param>
        /// <returns></returns>
        public Response DetermineTriangleType(TriangleDto triangleDto)
        {
            if (!_triangleValidator.IsTriangleValid(triangleDto))
            {
                return(new FailResponse("Sides don't form a triangle"));
            }

            if (triangleDto.A == triangleDto.B && triangleDto.B == triangleDto.C)
            {
                return(CreateSuccessResponse(TriangleType.Equilateral));
            }
            else if (triangleDto.A == triangleDto.B || triangleDto.B == triangleDto.C || triangleDto.A == triangleDto.C)
            {
                return(CreateSuccessResponse(TriangleType.Isosceles));
            }
            else if (DoesSatisfyPythagoras(triangleDto.A, triangleDto.B, triangleDto.C) ||
                     DoesSatisfyPythagoras(triangleDto.B, triangleDto.A, triangleDto.C) ||
                     DoesSatisfyPythagoras(triangleDto.C, triangleDto.A, triangleDto.B))
            {
                return(CreateSuccessResponse(TriangleType.RightAngled));
            }
            else
            {
                return(CreateSuccessResponse(TriangleType.Scalene));
            }
        }
Esempio n. 2
0
        // IAngleDeterminationService /////////////////////////////////////////////////////////////
        String IAngleDeterminationService.DetermineTriangleType(TriangleDto triangle)
        {
            var triangleWithType = _mapper.Map <Triangle>(triangle);

            _determineTrangleType.DetermineType(ref triangleWithType);

            switch (triangleWithType.Type)
            {
            case TriangleType.Acute:
                return("острый");

            case TriangleType.Obtuse:
                return("тупой");

            case TriangleType.Rectangular:
                return("прямоугольный");

            case TriangleType.Equilateral:
                return("равносторонний");

            case TriangleType.Isosceles:
                return("равнобедренный");

            default:
                throw new InvalidOperationException("Undefined triangle type");
            }
        }
        public IActionResult DetermineTriangleType([FromBody] TriangleDto triangle)
        {
            //Determine the type of triangle
            var response = _triangleTypeChecker.DetermineTriangleType(triangle);

            //Failed response
            if (!response.Status)
            {
                return(BadRequest(response));
            }

            //Successful response
            return(Ok(response));
        }
Esempio n. 4
0
        /// <summary>
        /// Submit button action
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void BtnTriangleType_Click(object sender, EventArgs e)
        {
            // dont do anything if page is invalid
            if (!Page.IsValid)
            {
                return;
            }

            //create a triangle dto
            var triangle = new TriangleDto
            {
                A = decimal.Parse(A.Text),
                B = decimal.Parse(B.Text),
                C = decimal.Parse(C.Text),
            };

            //create a rest client
            var client  = new RestClient("http://localhost:54643/api/geometry");
            var request = new RestRequest("determinetriangletype", Method.POST);

            request.AddJsonBody(triangle);

            //send request to service
            var restResponse = client.Execute(request);

            if (restResponse.StatusCode == System.Net.HttpStatusCode.OK) //success
            {
                var jObject = JObject.Parse(restResponse.Content);

                var triangleType = jObject.GetValue("triangleDescription").ToString();

                Output.Text = triangleType;
            }
            else if (restResponse.StatusCode == System.Net.HttpStatusCode.BadRequest) //failure
            {
                var jObject = JObject.Parse(restResponse.Content);
                jObject.TryGetValue("errors", out JToken errors);
                if (errors != null)
                {
                    Output.Text = errors.ToString();
                }

                jObject.TryGetValue("errorMessage", out JToken errorMessage);

                if (errorMessage != null)
                {
                    Output.Text = errorMessage.ToString();
                }
            }
        }
Esempio n. 5
0
        public async Task <FigureCreationResultDto> StoreFigureAsync([FromBody] IFigureDto figureDto)
        {
            if (figureDto == null)
            {
                throw new ArgumentNullException(nameof(figureDto));
            }

            IFigure figure = figureDto switch
            {
                CircleDto circleDto => new Circle(circleDto.Radius),
                TriangleDto triangleDto => new Triangle(triangleDto.A, triangleDto.B, triangleDto.C),
                _ => throw new InvalidOperationException(
                          $"Controller does not support figures with the type {figureDto.GetType()}")
            };

            var id = await _figureRepository.StoreAsync(figure).ConfigureAwait(true);

            return(new FigureCreationResultDto
            {
                Id = id
            });
        }