/// <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); }
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); }
/// <remarks/> public void GetAutoOrdersAsync(GetAutoOrdersRequest GetAutoOrdersRequest) { this.GetAutoOrdersAsync(GetAutoOrdersRequest, null); }