コード例 #1
0
 /// <remarks/>
 public void GetAutoOrdersAsync(GetAutoOrdersRequest GetAutoOrdersRequest, object userState) {
     if ((this.GetAutoOrdersOperationCompleted == null)) {
         this.GetAutoOrdersOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAutoOrdersOperationCompleted);
     }
     this.InvokeAsync("GetAutoOrders", new object[] {
                 GetAutoOrdersRequest}, this.GetAutoOrdersOperationCompleted, userState);
 }
コード例 #2
0
        public static IEnumerable <AutoOrder> GetCustomerAutoOrders(int customerid, int?autoOrderID = null, bool includePaymentMethods = true)
        {
            var autoOrders      = new List <AutoOrder>();
            var detailItemCodes = new List <string>();

            var request = new GetAutoOrdersRequest
            {
                CustomerID      = customerid,
                AutoOrderStatus = AutoOrderStatusType.Active
            };

            if (autoOrderID != null)
            {
                request.AutoOrderID = (int)autoOrderID;
            }

            var aoResponse = ExigoDAL.WebService().GetAutoOrders(request);

            if (!aoResponse.AutoOrders.Any())
            {
                return(autoOrders);
            }

            foreach (var aor in aoResponse.AutoOrders)
            {
                autoOrders.Add((AutoOrder)aor);
            }

            detailItemCodes = autoOrders.SelectMany(a => a.Details.Select(d => d.ItemCode)).Distinct().ToList();


            var autoOrderIds     = autoOrders.Select(a => a.AutoOrderID).ToList();
            var createdDateNodes = new List <AutoOrderCreatedDate>();
            var aoDetailInfo     = new List <AutoOrderDetailInfo>();

            using (var context = ExigoDAL.Sql())
            {
                var nodeResults = context.QueryMultiple(@"
                    SELECT
                        AutoOrderID,
                        CreatedDate
                    FROM
                        AutoOrders
                    WHERE
                        AutoOrderID in @ids

                    SELECT
                        ItemCode,
                        SmallImageName,
                        IsVirtual
                    FROM Items
                    WHERE ItemCode in @itemcodes
                    ",
                                                        new
                {
                    ids       = autoOrderIds,
                    itemcodes = detailItemCodes
                });

                createdDateNodes = nodeResults.Read <AutoOrderCreatedDate>().ToList();
                aoDetailInfo     = nodeResults.Read <AutoOrderDetailInfo>().ToList();
            }

            foreach (var ao in autoOrders)
            {
                ao.CreatedDate = createdDateNodes.Where(n => n.AutoOrderID == ao.AutoOrderID).Select(n => n.CreatedDate).FirstOrDefault();

                foreach (var detail in ao.Details)
                {
                    var detailInfo = aoDetailInfo.Where(i => i.ItemCode == detail.ItemCode).FirstOrDefault();
                    detail.ImageUrl  = GlobalUtilities.GetProductImagePath(detailInfo.ImageUrl);
                    detail.IsVirtual = detailInfo.IsVirtual;
                }
            }

            if (includePaymentMethods)
            {
                // Add payment methods
                var paymentMethods = GetCustomerPaymentMethods(new GetCustomerPaymentMethodsRequest
                {
                    CustomerID = customerid
                });

                foreach (var autoOrder in autoOrders)
                {
                    IPaymentMethod paymentMethod;
                    switch (autoOrder.AutoOrderPaymentTypeID)
                    {
                    case 1: paymentMethod = paymentMethods.Where(c => c is CreditCard && ((CreditCard)c).Type == CreditCardType.Primary).FirstOrDefault(); break;

                    case 2: paymentMethod = paymentMethods.Where(c => c is CreditCard && ((CreditCard)c).Type == CreditCardType.Secondary).FirstOrDefault(); break;

                    case 3: paymentMethod = paymentMethods.Where(c => c is BankAccount && ((BankAccount)c).Type == BankAccountType.Primary).FirstOrDefault(); break;

                    default: paymentMethod = null; break;
                    }
                    autoOrder.PaymentMethod = paymentMethod;
                }
            }

            return(autoOrders);
        }
コード例 #3
0
 /// <remarks/>
 public void GetAutoOrdersAsync(GetAutoOrdersRequest GetAutoOrdersRequest) {
     this.GetAutoOrdersAsync(GetAutoOrdersRequest, null);
 }