protected IActionResult GetPricesForSecuritiesList(DateTime?date, String tickers) { if (!Regex.IsMatch(tickers, "^([A-Z]{1,5})(,([A-Z]{1,5})){0,499}$")) { return(BadRequest("If a list of ticker symbols is provided, it must be as a comma separated list (without spaces)")); } var tickerList = tickers.Split(','); var result = _securityPricesService.GetSecurityPrices(date, tickerList); if (result.IsSuccess) { var models = _mapper.Map <List <SecurityPrice>, List <PriceModel> >(result.Value); return(Ok(models)); } else { switch (result.Error) { case InvalidTradeDateError error: return(BadRequest(new InvalidTradeDateMessageModel(error))); case TickerNotFoundError error: return(BadRequest(new TickerNotFoundMessageModel(error))); case InvalidDateForTickerError error: return(BadRequest(new InvalidDateForTickerMessageModel(error))); default: return(ControllerExtensions.InternalServerError(this, new ServerErrorMessageModel())); } } }
protected IActionResult GetPricesForAllSecurities(DateTime?date) { var result = _securityPricesService.GetSecurityPrices(date); if (result.IsSuccess) { var models = _mapper.Map <List <SecurityPrice>, List <PriceModel> >(result.Value); return(Ok(models)); } else { switch (result.Error) { case InvalidTradeDateError error: return(BadRequest(new InvalidTradeDateMessageModel(error))); case ApplicationMissingDataError error: return(ControllerExtensions.InternalServerError(this, new ServerErrorMessageModel())); default: return(ControllerExtensions.InternalServerError(this, new ServerErrorMessageModel())); } } }
public IActionResult Get(String ticker, [FromQuery] SecurityPriceParameters parameters) { var result = _securityPricesService.GetSecurityPrices(ticker, parameters.StartDate, parameters.EndDate); if (result.IsSuccess) { var models = _mapper.Map <List <SecurityPrice>, List <PriceModel> >(result.Value); return(Ok(models)); } else { switch (result.Error) { case InvalidTickerFormatError error: return(BadRequest(new InvalidTickerFormatMessageModel(error))); case TickerNotFoundError error: return(BadRequest(new TickerNotFoundMessageModel(error))); case ApplicationMissingDataError error: return(ControllerExtensions.InternalServerError(this, new ServerErrorMessageModel())); default: return(ControllerExtensions.InternalServerError(this, new ServerErrorMessageModel())); } } }
public IActionResult Get(String ticker) { var result = _securityService.GetSecurity(ticker); if (result.IsSuccess) { var model = _mapper.Map <Security, SecurityModel>(result.Value); return(Ok(model)); } else { switch (result.Error) { case InvalidTickerFormatError error: return(BadRequest(new InvalidTickerFormatMessageModel(error))); case TickerNotFoundError error: return(BadRequest(new TickerNotFoundMessageModel(error))); case ApplicationError error: return(ControllerExtensions.InternalServerError(this, new ServerErrorMessageModel())); default: return(ControllerExtensions.InternalServerError(this, new ServerErrorMessageModel())); } } }
public IActionResult Get() { var result = _securityService.GetSecurities(); if (result.IsSuccess) { var models = _mapper.Map <List <Security>, List <SecurityModel> >(result.Value); return(Ok(models)); } else { switch (result.Error) { case ApplicationMissingDataError error: return(ControllerExtensions.InternalServerError(this, new ServerErrorMessageModel())); default: return(ControllerExtensions.InternalServerError(this, new ServerErrorMessageModel())); } } }
protected override ActionResult MapErrorResult(Result result) { switch (result.Error) { case InvalidTradeDateError error: return(BadRequest(new ApiMessageModel() { Message = result.Error.Message })); case ApplicationError error: return(ControllerExtensions.InternalServerError(this, new ApiMessageModel() { Message = result.Error.Message })); default: return(ControllerExtensions.InternalServerError(this, new ApiMessageModel() { Message = result.Error.Message })); } }