예제 #1
0
        public CustomerOrderEntity GetCustomerOrderById(string id, CustomerOrderResponseGroup responseGroup)
        {
            var query = CustomerOrders.Where(x => x.Id == id)
                        .Include(x => x.Discounts)
                        .Include(x => x.TaxDetails);

            if ((responseGroup & CustomerOrderResponseGroup.WithAddresses) == CustomerOrderResponseGroup.WithAddresses)
            {
                var addresses = Addresses.Where(x => x.CustomerOrderId == id).ToArray();
            }
            if ((responseGroup & CustomerOrderResponseGroup.WithInPayments) == CustomerOrderResponseGroup.WithInPayments)
            {
                var inPayments       = InPayments.Where(x => x.CustomerOrderId == id).ToArray();
                var paymentsIds      = inPayments.Select(x => x.Id).ToArray();
                var paymentAddresses = Addresses.Where(x => paymentsIds.Contains(x.PaymentInId)).ToArray();
            }
            if ((responseGroup & CustomerOrderResponseGroup.WithItems) == CustomerOrderResponseGroup.WithItems)
            {
                var lineItems = LineItems.Include(x => x.TaxDetails)
                                .Include(x => x.Discounts)
                                .Where(x => x.CustomerOrderId == id).ToArray();
            }
            if ((responseGroup & CustomerOrderResponseGroup.WithShipments) == CustomerOrderResponseGroup.WithShipments)
            {
                var shipments = Shipments.Include(x => x.TaxDetails)
                                .Include(x => x.Discounts)
                                .Include(x => x.Items)
                                .Include(x => x.Packages.Select(y => y.Items))
                                .Where(x => x.CustomerOrderId == id).ToArray();
                var shipmentIds = shipments.Select(x => x.Id).ToArray();
                var addresses   = Addresses.Where(x => shipmentIds.Contains(x.ShipmentId)).ToArray();
            }
            return(query.FirstOrDefault());
        }
예제 #2
0
        public CustomerOrderEntity GetCustomerOrderById(string id, CustomerOrderResponseGroup responseGroup)
        {
            var query = CustomerOrders.Where(x => x.Id == id)
                        .Include(x => x.Discounts)
                        .Include(x => x.Properties)
                        .Include(x => x.TaxDetails);

            if ((responseGroup & CustomerOrderResponseGroup.WithAddresses) == CustomerOrderResponseGroup.WithAddresses)
            {
                query = query.Include(x => x.Addresses);
            }
            if ((responseGroup & CustomerOrderResponseGroup.WithInPayments) == CustomerOrderResponseGroup.WithInPayments)
            {
                query = query.Include(x => x.InPayments.Select(y => y.Addresses))
                        .Include(x => x.InPayments.Select(y => y.Properties));
            }
            if ((responseGroup & CustomerOrderResponseGroup.WithItems) == CustomerOrderResponseGroup.WithItems)
            {
                query = query.Include(x => x.Items.Select(y => y.Discounts)).Include(x => x.Items.Select(y => y.TaxDetails));
            }
            if ((responseGroup & CustomerOrderResponseGroup.WithShipments) == CustomerOrderResponseGroup.WithShipments)
            {
                query = query.Include(x => x.Shipments.Select(y => y.Discounts))
                        .Include(x => x.Shipments.Select(y => y.Items))
                        .Include(x => x.Shipments.Select(y => y.Addresses))
                        .Include(x => x.Shipments.Select(y => y.Properties))
                        .Include(x => x.Shipments.Select(y => y.TaxDetails));
            }
            return(query.FirstOrDefault());
        }
예제 #3
0
        public CustomerOrderEntity GetCustomerOrderByNumber(string orderNumber, CustomerOrderResponseGroup responseGroup)
        {
            var id = CustomerOrders.Where(x => x.Number == orderNumber).Select(x => x.Id).FirstOrDefault();

            if (id != null)
            {
                return(GetCustomerOrderById(id, responseGroup));
            }
            return(null);
        }
        public virtual CustomerOrderEntity[] GetCustomerOrdersByIds(string[] ids, CustomerOrderResponseGroup responseGroup)
        {
            var query = CustomerOrders.Where(x => ids.Contains(x.Id))
                        .Include(x => x.Discounts)
                        .Include(x => x.TaxDetails);

            if ((responseGroup & CustomerOrderResponseGroup.WithAddresses) == CustomerOrderResponseGroup.WithAddresses)
            {
                var addresses = Addresses.Where(x => ids.Contains(x.CustomerOrderId)).ToArray();
            }
            if ((responseGroup & CustomerOrderResponseGroup.WithInPayments) == CustomerOrderResponseGroup.WithInPayments)
            {
                var inPayments = InPayments.Include(x => x.TaxDetails)
                                 .Include(x => x.Discounts)
                                 .Where(x => ids.Contains(x.CustomerOrderId)).ToArray();
                var paymentsIds      = inPayments.Select(x => x.Id).ToArray();
                var paymentAddresses = Addresses.Where(x => paymentsIds.Contains(x.PaymentInId)).ToArray();
                var transactions     = Transactions.Where(x => paymentsIds.Contains(x.PaymentInId)).ToArray();
            }
            if ((responseGroup & CustomerOrderResponseGroup.WithItems) == CustomerOrderResponseGroup.WithItems)
            {
                var lineItems = LineItems.Include(x => x.TaxDetails)
                                .Include(x => x.Discounts)
                                .Where(x => ids.Contains(x.CustomerOrderId)).ToArray();
            }
            if ((responseGroup & CustomerOrderResponseGroup.WithShipments) == CustomerOrderResponseGroup.WithShipments)
            {
                var shipments = Shipments.Include(x => x.TaxDetails)
                                .Include(x => x.Discounts)
                                .Include(x => x.Items)
                                .Include(x => x.Packages.Select(y => y.Items))
                                .Where(x => ids.Contains(x.CustomerOrderId)).ToArray();
                var shipmentIds = shipments.Select(x => x.Id).ToArray();
                var addresses   = Addresses.Where(x => shipmentIds.Contains(x.ShipmentId)).ToArray();
            }
            return(query.ToArray());
        }