Пример #1
0
        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()));
                }
            }
        }
Пример #2
0
        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()));
                }
            }
        }
Пример #6
0
        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
                }));
            }
        }