/// <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)); } }
// 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)); }
/// <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(); } } }
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 }); }