public IActionResult FilterExtremumCandles([FromBody] CandlesFiltrationRequestModel request, bool analyzeOnly) { var modelErrors = CandlesFiltrationRequestModel.CheckupModel(request); if (modelErrors.Count > 0) { var response = new ErrorResponse(); foreach (var me in modelErrors) { response.AddModelError(me.Key, me.Value); } return(BadRequest(response)); } var filtrationLaunchResult = _candlesFiltrationManager.Filtrate(request, analyzeOnly); switch (filtrationLaunchResult) { case CandlesFiltrationManager.FiltrationLaunchResult.AlreadyInProgress: return(Ok("The previous filtration session still has not been finished. Parallel execution is not supported.")); case CandlesFiltrationManager.FiltrationLaunchResult.AssetPairNotSupported: return(BadRequest( ErrorResponse.Create("The specified asset pair is not supported."))); default: return(Ok()); } }
public void OnException(ExceptionContext context) { if (context.Exception is ArgumentValidationException argException) { ErrorResponse error= ErrorResponse.Create("Validation Error"); error.AddModelError(argException.ParamName, argException.Message); context.HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest; var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(error); byte[] data = Encoding.UTF8.GetBytes(jsonString); context.HttpContext.Response.ContentType = "application/json"; context.HttpContext.Response.Body.Write(data, 0, data.Length); context.ExceptionHandled = true; } }