Exemple #1
0
        public OrderResponseModel GetUserOrders(UserModel user, int page = Constants.DEFAULTPAGE)
        {
            var filter = new OrderFilterModel
            {
                UserId = user.Id
            };

            var dbOrders    = _orderRepository.Get(filter, page: page).ToList();
            var orders      = new List <OrderModel>();
            var orderIds    = dbOrders.Select(order => order.Id).ToList();
            var itemsFilter = new OrderItemFilterModel {
                OrderIds = orderIds
            };
            var allItems = _itemRepository.Get(itemsFilter);

            foreach (var order in dbOrders)
            {
                var mappedOrder  = _mapper.Map <OrderModel>(order);
                var currentItems = allItems.Where(item => item.OrderId == order.Id).ToList();
                mappedOrder.CurrentItems = _mapper.Map <List <OrderItemModel> >(currentItems);
                mappedOrder.Total        = currentItems.Sum(item => item.SubTotal);
                orders.Add(mappedOrder);
            }
            return(new OrderResponseModel
            {
                Orders = orders,
                PageCount = GetPageCount(user.Id)
            });
        }
Exemple #2
0
        public List <OrderModel> GetAllOrders(bool isPaid = true, bool isUnpaid = true, string field = null, string ascending = Constants.DEFAULTSORTORDER, int page = Constants.DEFAULTPAGE, bool getRemoved = false)
        {
            var filter = new OrderFilterModel
            {
                IsPaid   = isPaid,
                IsUnpaid = isUnpaid
            };
            var dbOrders    = _orderRepository.Get(filter, field, ascending == Constants.DEFAULTSORTORDER, getRemoved, page);
            var orders      = new List <OrderModel>();
            var orderIds    = dbOrders.Select(order => order.Id).ToList();
            var itemsFilter = new OrderItemFilterModel {
                OrderIds = orderIds
            };
            var allItems = _itemRepository.Get(itemsFilter);

            foreach (var order in dbOrders)
            {
                var mappedOrder  = _mapper.Map <OrderModel>(order);
                var currentItems = allItems.Where(item => item.OrderId == order.Id).ToList();
                var mappedItems  = _mapper.Map <List <OrderItemModel> >(currentItems);
                mappedOrder.CurrentItems = mappedItems;
                mappedOrder.Total        = currentItems.Sum(item => item.SubTotal);
                orders.Add(mappedOrder);
            }
            return(orders);
        }
Exemple #3
0
        public List <OrderItemEntity> Get(OrderItemFilterModel orderItemFilterModel = null)
        {
            Expression <Func <OrderItemEntity, bool> > filter = null;

            if (orderItemFilterModel is not null)
            {
                filter = item => !orderItemFilterModel.OrderIds.Any() || orderItemFilterModel.OrderIds.Contains(item.OrderId);
            }
            return(base.Get(filter).ToList());
        }