コード例 #1
0
        public async Task <PortfolioOrder> AddOrderById(PortfolioOrderDTO po)
        {
            var portfolioOrder = new PortfolioOrder
            {
                OrderId     = po.OrderId,
                PortfolioId = po.PortfolioId
            };

            return(await _genericRepo.AddAsync(portfolioOrder));
        }
コード例 #2
0
        public async Task <IActionResult> PutOrder(PortfolioOrderDTO po)
        {
            try
            {
                int userId = Int32.Parse(this.User.FindFirstValue(ClaimTypes.NameIdentifier));

                var portfolio = await _portfolioServices.GetPortfolioByIdAsync(po.PortfolioId);

                var order = await _orderServices.GetOrderById(po.OrderId);

                if (portfolio == null)
                {
                    return(StatusCode(400, "Portfolio with Id " + po.PortfolioId + " was not found."));
                }
                if (order == null)
                {
                    return(StatusCode(400, "Order with Id " + po.OrderId + " was not found."));
                }
                if (portfolio.UserId != userId)
                {
                    return(StatusCode(401));
                }
                if (order.UserId != userId)
                {
                    return(StatusCode(401));
                }
                if (await _portfolioServices.PortfolioOrderExists(po.OrderId, po.PortfolioId))
                {
                    return(StatusCode(400, "Portfolio with id " + po.PortfolioId + " already contains order with id " + po.OrderId));
                }
                await _portfolioServices.AddOrderById(po);

                return(StatusCode(201));
            }
            catch
            {
                return(StatusCode(500, "Something went wrong while attempting to add order with id " + po.OrderId + " to portfolio with id " + po.PortfolioId));
            }
        }