示例#1
0
        public ActionResult <IEnumerable <OrderInfosDto> > GetClientOrders(int clientId)
        {
            var client = clientService.GetClientById(clientId);

            if (client == null)
            {
                return(NotFound());
            }

            var orders      = orderService.GetClientOrders(clientId);
            var ordersInfos = new List <OrderInfosDto>();

            foreach (var order in orders)
            {
                OrderInfosDto orderInfo;
                if (order.Status == EnumOrderStatus.Pending)
                {
                    orderInfo = new OrderInfosDto
                    {
                        OrderId       = order.Id,
                        OrderTime     = order.OrderTime,
                        OrderPrice    = order.OrderPrice,
                        OrderStatus   = order.Status,
                        DeliveryPrice = order.DeliveryPrice
                    };
                }
                else
                {
                    var deliveryInfos    = deliveryInfoService.GetOrderDeliveryInfo(order.Id);
                    var orderDeliveryMan = deliveryManService.GetDeliveryManById(deliveryInfos.IdDeliveryMan);

                    orderInfo = new OrderInfosDto
                    {
                        OrderId               = order.Id,
                        OrderTime             = order.OrderTime,
                        OrderPrice            = order.OrderPrice,
                        OrderStatus           = order.Status,
                        EstimatedDeliveryTime = deliveryInfos.EstimatedDeliveryTime,
                        DeliveryPrice         = order.DeliveryPrice,
                        DeliveryManId         = orderDeliveryMan.Id,
                        DeliveryManName       = $"{orderDeliveryMan.FirstName} {orderDeliveryMan.LastName}",
                        DeliveryManPicture    = orderDeliveryMan.ImageBase64,
                        RealDeliveryTime      = deliveryInfos.RealDeliveryTime
                    };
                }
                ordersInfos.Add(orderInfo);
            }
            return(Ok(ordersInfos));
        }
示例#2
0
        public ActionResult <IEnumerable <OrderInfosDto> > GetClientTreatedOrders(int clientId)
        {
            var client = clientService.GetClientById(clientId);

            if (client == null)
            {
                return(NotFound());
            }

            var orders      = orderService.GetClientTreatedOrders(clientId);
            var ordersInfos = new List <OrderInfosDto>();

            foreach (var order in orders)
            {
                var deliveryInfos    = deliveryInfoService.GetOrderDeliveryInfo(order.Id);
                var orderDeliveryMan = deliveryManService.GetDeliveryManById(deliveryInfos.IdDeliveryMan);

                // We have to consider the situation where the deliveryMan object is null

                var orderInfo = new OrderInfosDto
                {
                    OrderId            = order.Id,
                    OrderTime          = order.OrderTime,
                    OrderPrice         = order.OrderPrice,
                    OrderStatus        = order.Status,
                    DeliveryPrice      = order.DeliveryPrice,
                    DeliveryManId      = orderDeliveryMan.Id,
                    DeliveryManName    = $"{orderDeliveryMan.FirstName} {orderDeliveryMan.LastName}",
                    DeliveryManPicture = orderDeliveryMan.ImageBase64,
                    RealDeliveryTime   = deliveryInfos.RealDeliveryTime
                };
                ordersInfos.Add(orderInfo);
            }

            return(Ok(ordersInfos));
        }