public ActionResult Times([FromBody] CalculationModelRequest model) { CalculationModelResponse response; var result = _validator.IsValid(model, out response); if (!result) { return(BadRequest(response)); } response.Result = model.Values.Aggregate((current, next) => current * next); return(Json(response)); }
public ActionResult Divide([FromBody] CalculationModelRequest model) { CalculationModelResponse response; var result = _validator.IsValid(model, out response); if (!result) { return(BadRequest(response)); } try { response.Result = model.Values.Aggregate((current, next) => current / next); } catch (DivideByZeroException) { return(BadRequest(CommonResponses.DivideByZero.ApplyParameter("values"))); } return(Json(response)); }
public bool IsValid(CalculationModelRequest request, out CalculationModelResponse response) { response = new CalculationModelResponse { CorrelationId = _context.CorrelationId }; if (request == null) { response.Errors = new List <ValidationMessage> { new ValidationMessage { Type = ValidationType.Input, Message = _localizer["calculation-model:no-request"].Value, Code = "no_request" } }; return(false); } if (request.Values == null || request.Values.Count < 2) { response.Errors = new List <ValidationMessage> { new ValidationMessage { Type = ValidationType.Input, Message = _localizer["calculation-model:must-contain-more-than-one"].Value, Code = "more_than_one", Parameter = "values" } }; return(false); } return(true); }