public static void GetOrderTransactions(ApiContext apiContext, string ItemID, string TransactionID) { Stopwatch s = Stopwatch.StartNew(); GetOrderTransactionsCall apiCall = new GetOrderTransactionsCall(apiContext); apiContext.ApiLogManager.RecordMessage(String.Format("Getting Order transactions - START, page {0}", 1)); Blink(); ItemTransactionIDTypeCollection inp = new ItemTransactionIDTypeCollection() { new ItemTransactionIDType() { OrderLineItemID = ItemID + "-" + TransactionID } }; OrderTypeCollection items = apiCall.GetOrderTransactions(inp); Blink(); foreach (OrderType i in items) { foreach (TransactionType j in i.TransactionArray) { apiContext.ApiLogManager.RecordMessage(String.Format("TransactionID {0}\tItem ID{1}\tCreated on {2}\tItem Title{3}", i.OrderID, j.Item.ItemID, i.CreatedTime, j.Item.Title)); } } Blink(); apiContext.ApiLogManager.RecordMessage("Getting item list - SUCCESS"); eBayClass.Metrics.GenerateReport(eBayClass.LogManager.ApiLoggerList[0]); eBayClass.LogManager.RecordMessage("Done; ms: " + s.ElapsedMilliseconds.ToString()); Blink(); }
private void button3_Click(object sender, EventArgs e) { DataGridViewRow row = null; if (this.dataGridView1.SelectedRows.Count != 0) { row = this.dataGridView1.SelectedRows[0]; } if (this.dataGridView1.SelectedCells.Count != 0) { row = this.dataGridView1.Rows[this.dataGridView1.SelectedCells[0].RowIndex]; } if (row != null) { GetOrderTransactionsCall apicall = new GetOrderTransactionsCall(Program.GetApiContext()); StringCollection orderids = new StringCollection(new string[] { row.Cells["OrderID"].Value.ToString() }); OrderTypeCollection list = apicall.GetOrderTransactions(orderids); new FrmXml(apicall.SoapResponse).Show(); } else { MessageBox.Show("please select one record!"); } }
private void ProcessOrderData(OrderTypeCollection orders) { foreach (OrderType orderDto in orders) { try { PersistOrder(orderDto); } catch (Exception e) { _logger.Error(string.Format("Order ( {1} | {0} ) synchronization failed: {2}", orderDto.ShippingDetails.SellingManagerSalesRecordNumber, _marketplace.Code, e.Message)); } } _dataContext.SaveChanges(); var combinedOrders = orders.ToArray().Where(p => p.TransactionArray.Count > 1); foreach (OrderType orderDto in combinedOrders) { RemoveParentOrder(orderDto); } _dataContext.SaveChanges(); }
public void GetOrderTransactions() { // GetOrderTransactionsCall api = new GetOrderTransactionsCall( this.apiContext); StringCollection idArray = new StringCollection(); api.OrderIDArrayList = idArray; idArray.Add("1111111111"); //ItemTransactionIDTypeCollection tIdArray = new ItemTransactionIDTypeCollection(); //api.ItemTransactionIDArrayList = tIdArray; //ItemTransactionIDType tId = new ItemTransactionIDType(); //tIdArray.Add(tId); //String itemId = "2222222222"; //tId.ItemID = itemId; //tId.TransactionID = "test transaction id"; // Make API call. ApiException gotException = null; try { OrderTypeCollection orders = api.GetOrderTransactions(idArray); } catch (ApiException ex) { gotException = ex; } Assert.IsNull(gotException); }
private void button2_Click(object sender, EventArgs e) { GetOrdersCall apiCall = new GetOrdersCall(apiContext); Console.WriteLine("Begin to call eBay API, please wait ..."); TimeFilter fltr = new TimeFilter(); fltr.TimeFrom = DateTime.Now.AddDays(-7); fltr.TimeTo = DateTime.Now.AddDays(-2); OrderTypeCollection list = apiCall.GetOrders(fltr, TradingRoleCodeType.Seller, OrderStatusCodeType.All); }
public static List <eBayFBOrder> MapNewOrders(Config cfg, OrderTypeCollection orders) { var ret = new List <eBayFBOrder>(); foreach (OrderType o in orders) { var x = new eBayFBOrder(); x.eBayOrder = o; x.CustomerName = MapCustomerName(cfg, o); ret.Add(x); } return(ret); }
public void GetOrders() { Assert.IsNotNull(TestData.NewItem, "Failed because no item available -- requires successful AddItem test"); // GetOrdersCall api = new GetOrdersCall(this.apiContext); api.OrderRole = TradingRoleCodeType.Seller; api.OrderStatus = OrderStatusCodeType.Active; System.DateTime calTo = System.DateTime.Now; System.DateTime calFrom = calTo.AddHours(-1); api.CreateTimeFrom = calFrom; api.CreateTimeTo = calTo; // Make API call. OrderTypeCollection orders = api.GetOrders(calFrom, calTo, api.OrderRole, api.OrderStatus); }
public static int GetNumberOfItems(ApiContext apiContext, DateTime DateFrom, DateTime DateTo, bool Active = true, bool Completed = true) { eBayClass.LogManager.RecordMessage("Starting a GetNumberOfItems call"); Blink(); Stopwatch s = Stopwatch.StartNew(); GetOrdersCall apiCall = new GetOrdersCall(apiContext); Blink(); apiCall.DetailLevelList = new DetailLevelCodeTypeCollection(new DetailLevelCodeType[] { DetailLevelCodeType.ReturnAll }); apiCall.ApiRequest.OutputSelector = new StringCollection() { "TransactionID", "PaginationResult" }; apiCall.Pagination = new PaginationType() { EntriesPerPage = 100, PageNumber = 1 }; TimeFilter createTime = new TimeFilter() { TimeFrom = DateFrom.Subtract(TimeDiff), TimeTo = DateTo.Subtract(TimeDiff) }; OrderStatusCodeType filterStatus = OrderStatusCodeType.All; if (Active && !Completed) { filterStatus = OrderStatusCodeType.Active; } else if (Completed && !Active) { filterStatus = OrderStatusCodeType.Completed; } OrderTypeCollection items = apiCall.GetOrders(createTime, TradingRoleCodeType.Seller, filterStatus); apiContext.ApiLogManager.RecordMessage(String.Format("Getting item list - SUCCESS, page {0}", 1)); Blink(); eBayClass.Metrics.GenerateReport(eBayClass.LogManager.ApiLoggerList[0]); eBayClass.LogManager.RecordMessage("Done; ms: " + s.ElapsedMilliseconds.ToString()); Blink(); return(apiCall.PaginationResult.TotalNumberOfEntries); }
public void DownloadOrders() { Log("Downloading Orders"); OrderTypeCollection orders = new OrderTypeCollection(); if (!String.IsNullOrEmpty(cfg.Store.SyncOrder.TestOrderID)) { Log("Downloading Test Order# " + cfg.Store.SyncOrder.TestOrderID); orders.Add(ebc.GetTestOrder(cfg.Store.SyncOrder.TestOrderID)); } else { orders = ebc.allCompletedOrders(cfg.Store.SyncOrder.LastDownloads.ToString()); } Log("Orders Downloaded: " + orders.Count); if (orders.Count > 0) { List <eBayFBOrder> ofOrders = DataMappers.MapNewOrders(cfg, orders); Log("Validating Items in Fishbowl."); ValidateItems(ofOrders); Log("Items Validated"); Log("Creating Sales Orders Data."); ValidateOrder(ofOrders, "20"); Log("Finished Creating Sales Order Data."); Log("Validate Carriers"); ValidateCarriers(ofOrders); Log("Carriers Validated"); Log("Kit Items"); ValidateKits(ofOrders); Log("Finished Kits."); var ret = CreateSalesOrders(ofOrders); Log("Result: " + String.Join(Environment.NewLine, ret)); Log("Downloading Orders Finished"); } }
private void BtnGetOrders_Click(object sender, System.EventArgs e) { try { LstOrders.Items.Clear(); GetOrdersCall apicall = new GetOrdersCall(Context); TimeFilter fltr = new TimeFilter(); if (ChkStartFrom.Checked) { fltr.TimeFrom = DatePickStartFrom.Value; } if (ChkStartTo.Checked) { fltr.TimeTo = DatePickStartTo.Value; } OrderTypeCollection orders = apicall.GetOrders(fltr, (TradingRoleCodeType)Enum.Parse(typeof(TradingRoleCodeType), CboRole.SelectedItem.ToString()), (OrderStatusCodeType)Enum.Parse(typeof(OrderStatusCodeType), CboStatus.SelectedItem.ToString())); foreach (OrderType order in orders) { string[] listparams = new string[5]; listparams[0] = order.OrderID; listparams[1] = order.OrderStatus.ToString(); listparams[2] = order.CreatingUserRole.ToString(); listparams[3] = order.AmountSaved.Value.ToString(); string[] itemids = new string[order.TransactionArray.Count]; int indx = 0; foreach (TransactionType trans in order.TransactionArray) { itemids[indx] = trans.Item.ItemID; indx++; } listparams[4] = String.Join(", ", itemids); ListViewItem vi = new ListViewItem(listparams); LstOrders.Items.Add(vi); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void Import(OrderTypeCollection orders) { string insert_ebayorder = string.Format(insertTemplate, "ebayorder", GetColumnsSql(new ds_ebayorder().ebayorder), GetColumnsParamSql(new ds_ebayorder().ebayorder)); string insert_ebayorder_details = string.Format(insertTemplate, "ebayorder_details", GetColumnsSql(new ds_ebayorder().ebayorder_details), GetColumnsParamSql(new ds_ebayorder().ebayorder_details)); ConnTransHandle((MySqlConnection conn, MySqlTransaction trans) => { foreach (OrderType order in orders) { MySqlParameter[] ps = new MySqlParameter[] { new MySqlParameter("OrderID", order.OrderID), new MySqlParameter("OrderStatus", order.OrderStatus), new MySqlParameter("AmountPaid", order.AmountPaid), new MySqlParameter("SellingManagerSalesRecordNumber", order.ShippingDetails.SellingManagerSalesRecordNumber), new MySqlParameter("SellerEmail", order.SellerEmail), new MySqlParameter("SellerUserID", order.SellerUserID) }; base.ExecuteNonQuery(insert_ebayorder, ps, conn, trans); foreach (TransactionType line in order.TransactionArray) { MySqlParameter[] psline = new MySqlParameter[] { new MySqlParameter("OrderID", order.OrderID), new MySqlParameter("ItemID", line.Item.ItemID), new MySqlParameter("SKU", line.Item.SKU), new MySqlParameter("QuantityPurchased", line.QuantityPurchased) }; base.ExecuteNonQuery(insert_ebayorder_details, psline, conn, trans); } } }); }
// http://developer.ebay.com/devzone/xml/docs/Reference/eBay/GetOrders.html public OrderTypeCollection GetOrders(OrderStatusCodeType type, DateTime from, DateTime to) { var call = new GetOrdersCall(api); call.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); var timeFilter = new TimeFilter { TimeFrom = from, TimeTo = to }; var result = new OrderTypeCollection(); bool hasMoreEntries = true; int count = 1; while (hasMoreEntries) { call.Pagination = new PaginationType { PageNumber = count, EntriesPerPage = 200 }; OrderTypeCollection orders = call.GetOrders(timeFilter, TradingRoleCodeType.Seller, type); result.AddRange(orders); hasMoreEntries = call.HasMoreOrders; if (count++ > 10) { break; } } responseXML = call.SoapResponse; return(result); }
public OrderType GetTestOrder(String orderID) { OrderTypeCollection order = new OrderTypeCollection(); GetOrdersCall getOrder = new GetOrdersCall(context); getOrder.DetailLevelList = new DetailLevelCodeTypeCollection(); getOrder.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); getOrder.OrderIDList = new StringCollection(new[] { orderID }); getOrder.Execute(); if (getOrder.ApiResponse.Ack != AckCodeType.Failure) { //Check if any orders are returned if (getOrder.ApiResponse.OrderArray.Count != 0) { order = getOrder.ApiResponse.OrderArray; } foreach (OrderType o in order) { return(o); } } return(null); }
private void BtnGetOrders_Click(object sender, EventArgs e) { try { DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("SellingManagerSalesRecordNumber")); dt.Columns.Add(new DataColumn("BuyerUserID")); dt.Columns.Add(new DataColumn("AmountPaid")); dt.Columns.Add(new DataColumn("Timestamp")); dt.Columns.Add(new DataColumn("SellerEmail")); dt.Columns.Add(new DataColumn("OrderID")); dt.Columns.Add(new DataColumn("ClmItems")); GetOrdersCall apicall = new GetOrdersCall(Program.GetApiContext()); TimeFilter fltr = new TimeFilter(); fltr.TimeFrom = DatePickStartFrom.Value; fltr.TimeTo = DatePickStartTo.Value; _orders = apicall.GetOrders(fltr, (TradingRoleCodeType)Enum.Parse(typeof(TradingRoleCodeType), CboRole.SelectedItem.ToString()), (OrderStatusCodeType)Enum.Parse(typeof(OrderStatusCodeType), CboStatus.SelectedItem.ToString())); if (_orders.Count == 0) { MessageBox.Show("There is no order!"); return; } foreach (OrderType order in _orders) { //string[] listparams = new string[5]; //listparams[0] = order.OrderID; //listparams[1] = order.OrderStatus.ToString(); //listparams[2] = order.CreatingUserRole.ToString(); //listparams[3] = order.AmountSaved.Value.ToString(); string[] itemids = new string[order.TransactionArray.Count]; int indx = 0; foreach (TransactionType trans in order.TransactionArray) { itemids[indx] = trans.Item.ItemID; indx++; } //listparams[4] = String.Join(", ", itemids); //ListViewItem vi = new ListViewItem(listparams); //LstOrders.Items.Add(vi); DataRow dr = dt.NewRow(); dr["SellingManagerSalesRecordNumber"] = order.ShippingDetails.SellingManagerSalesRecordNumber; dr["BuyerUserID"] = order.BuyerUserID.ToString(); dr["AmountPaid"] = order.AmountPaid.ToString(); dr["Timestamp"] = apicall.ResponseTime.ToString(); dr["SellerEmail"] = order.SellerEmail.ToString(); dr["OrderID"] = order.OrderID.ToString(); dr["ClmItems"] = String.Join(", ", itemids); dt.Rows.Add(dr); } this.dataGridView1.DataSource = dt; } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public static List <EbayTransactionType> GetAllOrders(AccountType account, TimeFilter timeFilter, StringCollection orderIds) { List <EbayTransactionType> transList = new List <EbayTransactionType>(); GetOrdersCall getOrdersApiCall = new GetOrdersCall(account.SellerApiContext); getOrdersApiCall.IncludeFinalValueFee = true; DetailLevelCodeType[] detailLevels = new DetailLevelCodeType[] { DetailLevelCodeType.ReturnAll }; getOrdersApiCall.DetailLevelList = new DetailLevelCodeTypeCollection(detailLevels); if (orderIds != null) { getOrdersApiCall.OrderIDList = orderIds; } try { OrderTypeCollection orders = getOrdersApiCall.GetOrders(timeFilter, TradingRoleCodeType.Seller, OrderStatusCodeType.All); foreach (OrderType order in orders) { AddressType addressType = order.ShippingAddress; String shippingAddress = GetShippingAddressString(addressType); String shippingAddressCompact = GetShippingAddressCompactString(addressType); bool completed = order.OrderStatus == OrderStatusCodeType.Completed; foreach (TransactionType trans in order.TransactionArray) { #region Process each ebay transaction // Check if this transaction has already be recorded in system. String transId = trans.TransactionID; if (transId == null || transId == "") { Logger.WriteSystemLog("GetAllOrders: Invalid transaction id, skip and continue."); continue; } EbayTransactionType ebayTrans = new EbayTransactionType(); ebayTrans.SellerName = account.ebayAccount; ebayTrans.OrderId = order.OrderID; ebayTrans.OrderLineItemId = trans.OrderLineItemID; ebayTrans.EbayTransactionId = trans.TransactionID; ebayTrans.EbayRecordId = order.ShippingDetails.SellingManagerSalesRecordNumberSpecified ? order.ShippingDetails.SellingManagerSalesRecordNumber : -1; ebayTrans.BuyerId = order.BuyerUserID; GetUserCall getUserApiCall = new GetUserCall(account.SellerApiContext); getUserApiCall.UserID = order.BuyerUserID; UserType user = getUserApiCall.GetUser(); // BuyerRating if (user.FeedbackScoreSpecified) { ebayTrans.BuyerRating = user.FeedbackScore; } else { ebayTrans.BuyerRating = -1; } // BuyerCountryEbayCode ebayTrans.BuyerCountryEbayCode = addressType.Country.ToString(); // BuyerCountry4PXCode ebayTrans.BuyerCountry4PXCode = ""; // BuyerCountry ebayTrans.BuyerCountry = addressType.CountryName; // BuyerCompanyName ebayTrans.BuyerCompanyName = StringUtil.GetSafeString(addressType.CompanyName); // BuyerName ebayTrans.BuyerName = addressType.Name; // BuyerStateOrProvince ebayTrans.BuyerStateOrProvince = addressType.StateOrProvince; // BuyerCity ebayTrans.BuyerCity = addressType.CityName; // BuyerTel ebayTrans.BuyerTel = addressType.Phone; // BuyerMail ebayTrans.BuyerMail = trans.Buyer.Email; // BuyerPostalCode ebayTrans.BuyerPostalCode = addressType.PostalCode; // BuyerAddress ebayTrans.BuyerAddress = shippingAddress; // BuyerAddressCompact ebayTrans.BuyerAddressCompact = shippingAddressCompact; // BuyerAddressLine1 ebayTrans.BuyerAddressLine1 = addressType.Street1; // BuyerAddressLine2 ebayTrans.BuyerAddressLine2 = addressType.Street2; // BuyerPayPal ebayTrans.BuyerPayPal = trans.Buyer.Email; // ItemId ebayTrans.ItemId = trans.Item.ItemID; // What is the valid way to determine if there is a variation. if (trans.Variation != null && trans.Variation.VariationTitle != null && trans.Variation.VariationTitle.Trim() != "") { // ItemTitle ebayTrans.ItemTitle = trans.Variation.VariationTitle; // ItemSKU ebayTrans.ItemSKU = trans.Variation.SKU; } else { // ItemTitle ebayTrans.ItemTitle = trans.Item.Title; // ItemSKU ebayTrans.ItemSKU = trans.Item.SKU; } // ItemPrice if (trans.TransactionPrice != null) { ebayTrans.ItemPrice = trans.TransactionPrice.Value; } // SaleQuantity ebayTrans.SaleQuantity = trans.QuantityPurchased; if (trans.TransactionPrice != null) { // SalePrice ebayTrans.SalePrice = trans.TransactionPrice.Value * trans.QuantityPurchased; // TotalPrice ebayTrans.TotalPrice = trans.TransactionPrice.Value * trans.QuantityPurchased; } // TODO: there may be multiple transactions in one order. if (order.Total != null) { ebayTrans.TotalPrice = order.Total.Value; ebayTrans.CurrencyId = order.Total.currencyID.ToString(); } else { // Set a default value. ebayTrans.TotalPrice = 0.0; ebayTrans.CurrencyId = ""; } // SaleDate ebayTrans.SaleDate = order.CreatedTime; // SaleDateCN ebayTrans.SaleDateCN = order.CreatedTime.ToLocalTime(); // IsPaid ebayTrans.IsPaid = order.PaidTimeSpecified; // order.AmountPaid // order.CheckoutStatus // ebayPaymentStatus // Status // orderStatus if (ebayTrans.IsPaid == false) { // Some payment is paid using credit card, and while PayPal is processing the payment, // the transaction is marked as unpaid. we should view it as paid. if (order.OrderStatusSpecified && order.OrderStatus == OrderStatusCodeType.Completed) { ebayTrans.IsPaid = true; } } if (ebayTrans.IsPaid == false) { if (order.CheckoutStatus.StatusSpecified && order.CheckoutStatus.Status == CompleteStatusCodeType.Complete) { ebayTrans.IsPaid = true; } } // PaidDate ebayTrans.PaidDate = StringUtil.GetSafeDateTime(order.PaidTime); // IsShipped ebayTrans.IsShipped = order.ShippedTimeSpecified; if (order.ShippedTimeSpecified) { ebayTrans.ShippedDate = StringUtil.GetSafeDateTime(order.ShippedTime); } else { ebayTrans.ShippedDate = DateTime.Now.AddYears(-10); } // Store the shippedDate as the local date time. ebayTrans.ShippedDate = ebayTrans.ShippedDate.ToLocalTime(); // ShippingServiceCode ebayTrans.ShippingServiceCode = ""; // ShippingService ebayTrans.ShippingService = ""; // ShippingTrackingNo ebayTrans.ShippingTrackingNo = ""; // ShippingCost ebayTrans.ShippingCost = 0.0; // FinalValueFee if (trans.FinalValueFee != null) { ebayTrans.FinalValueFee = trans.FinalValueFee.Value; } else { ebayTrans.FinalValueFee = 0.0; } // PayPalFee ebayTrans.PayPalFee = 0.034 * ebayTrans.TotalPrice + 0.3; // IsReceived ebayTrans.IsReceived = false; ebayTrans.IsBuyerLeftFeedback = false; ebayTrans.IsSellerLeftFeedback = false; ebayTrans.IsNeedAttention = false; ebayTrans.MessageStatus = TransactionMessageStatus.NoMessage; ebayTrans.IsContactedBuyer = false; ebayTrans.LastContactedBuyerDate = DateTime.Now.AddYears(-10); ebayTrans.IsResendReplacement = false; ebayTrans.UserComment = ""; GetFeedbackCall getFeedbackApiCall = new GetFeedbackCall(account.SellerApiContext); //DetailLevelCodeType[] detailLevels = new DetailLevelCodeType[] { DetailLevelCodeType.ReturnAll }; getFeedbackApiCall.DetailLevelList = new DetailLevelCodeTypeCollection(detailLevels); getFeedbackApiCall.OrderLineItemID = trans.OrderLineItemID; FeedbackDetailTypeCollection feedbacks = getFeedbackApiCall.GetFeedback(); foreach (FeedbackDetailType feedback in feedbacks) { if (feedback.CommentingUser == account.ebayAccount) { ebayTrans.IsSellerLeftFeedback = true; } if (feedback.CommentingUser == ebayTrans.BuyerId) { ebayTrans.IsBuyerLeftFeedback = true; } } if (trans.ShippingDetails != null) { if (trans.ShippingDetails.ShipmentTrackingDetails.Count == 1) { ShipmentTrackingDetailsType shipmentDetails = trans.ShippingDetails.ShipmentTrackingDetails[0]; ebayTrans.ShippingTrackingNo = shipmentDetails.ShipmentTrackingNumber; } } transList.Add(ebayTrans); #endregion } } } catch (Exception ex) { Logger.WriteSystemLog(string.Format("Unexpected expection : {0}", ex.Message)); } return(transList); } // GetAllOrders
public JsonResult GetEbayOrderData() { DirectlineOrder order = new DirectlineOrder(); List <DirectlineOrder> result = new List <DirectlineOrder>(); /* * * using (DSLEntities entity = new DSLEntities()) * { * * * result = entity.DirectlineOrder.OrderBy(a=>a.DirectlineOrderId).Skip((currentPage - 1) * pageSize).Take(pageSize).ToList(); ; * //写回数据库 * entity.SaveChanges(); * } * Console.WriteLine("OK"); * */ ApiContext apiContext = new ApiContext(); apiContext.SoapApiServerUrl = "https://api.sandbox.ebay.com/wsapi"; ApiCredential apiCredential = new ApiCredential(); apiCredential.eBayToken = "AgAAAA**AQAAAA**aAAAAA**N7s/WQ**nY+sHZ2PrBmdj6wVnY+sEZ2PrA2dj6wFk4GkCpiGpg2dj6x9nY+seQ**wi8EAA**AAMAAA**7o44E/rl2J6N6sif8itG2DKpkdFQqAJK8d28n2dv8mzwagpQVHIjFjmn8RuPzyiw06c9T7vcRo81RNElYv/A8kFvEEcKxGeEtFxuitv2VBs9GO/GkOGJqK3dtl6ivmKazSb5T3XyG9hyer+lk2TgcGZEYgmXbus/D3Ql3vEkjaT7Zr04yowX6EVNa/sv6j2YvncL8/A9nzq9z169en8xS6bOTvcLm/k5XXfbZ4Jyr6zk66ifCK7fJ9Li7yKSsPHHCU9hQo6vgDLLyf/GEDb5j4HV2OGN02vb6iWyMny/HYP17hPNCue6jbc7jNv0klTpPXJ7i2z0pDzqRmfPFSluqeohRojd81FChqjTob+VXJ7nuS1SpG5XxxCAn0B9dylLm91lncPmoi6FJ9HRM1SlHoH/dWqbtlHyjZ5yAuuYpHwAAfqMXuaDsGr6dNfS7JsRePkaKhbkwna2XYasdqZ2VK2jDVoZYwPnsWj7m9S/QxGJ09I+Ar5J1kDpzGjiezy1mruSV3pflqfs8E+HWybzeB+yisrtLf5eBKS8AgW2otQOg/lI3KDJR1+faS5M6ZExnT+K5t8TZn9RKtBaMa07D6/MRkhANKx5RSoMFfT488JETTGNE1IAV/1kf7Pzm1HNqBCxEn97b27SECe6dwVTWwqi6ZR/2G00D1IQDVCmNkSxloApEdlV7qRtOpmUFHzCa8zdS53f0RHSjxV8JfCLvB4FXw/+849jtNek+wtNO3Fcd3nimPqaqF1eWfrIeCBq"; apiContext.ApiCredential = apiCredential; GetOrdersCall get = new GetOrdersCall(apiContext); OrderTypeCollection types = get.GetOrders(DateTime.Parse("2017-01-01 12:33:33"), DateTime.Parse("2017-06-20 12:33:33"), TradingRoleCodeType.Seller, OrderStatusCodeType.All); if (types != null && types.Count > 0) { foreach (OrderType o in types) { DirectlineOrder addOrder = new DirectlineOrder(); addOrder.BuyerName = o.BuyerUserID; addOrder.BBCode = o.TransactionArray[0].Item.ItemID; addOrder.Quantity = o.TransactionArray[0].Item.Quantity.ToString(); addOrder.Status = o.OrderStatus.ToString(); result.Add(addOrder); // textBox.Text = "Order Id:" + types[0].TransactionArray[0].Item.Title + ", Buyer Name:" + types[0].ShippingAddress.Name; } } return(Json(result, JsonRequestBehavior.AllowGet)); }
public static void EbayUploadTrackCode(string account, KeWeiOMS.Domain.OrderType orderType) { ISession NSession = NhbHelper.OpenSession(); Dictionary<string, int> sendNum = new Dictionary<string, int>(); IList<AccountType> accounts = NSession.CreateQuery("from AccountType where AccountName='" + account + "'").SetMaxResults(1). List<AccountType>(); if (accounts.Count > 0) { IList<KeWeiOMS.Domain.OrderType> orderList = new List<KeWeiOMS.Domain.OrderType>(); if (orderType.IsMerger == 1 || orderType.OrderExNo.IndexOf("|") != -1) { orderList = NSession.CreateQuery("from OrderType where MId='" + orderType.Id + "' Or Id ='" + orderType.Id + "'").List<KeWeiOMS.Domain.OrderType>(); } else { orderList.Add(orderType); } ApiContext context = GetGenericApiContext("US"); context.ApiCredential.eBayToken = accounts[0].ApiToken; eBay.Service.Call.CompleteSaleCall call = null; string CarrierUsed = ""; // IList<logisticsSetupType> setups = NSession.CreateQuery("from logisticsSetupType where LId in (select ParentID from LogisticsModeType where LogisticsCode='" + orderType.LogisticMode + "')").List<logisticsSetupType>(); //if (setups != null) //{ // CarrierUsed = setups[0].SetupName; //} CarrierUsed = "China Post"; call = new eBay.Service.Call.CompleteSaleCall(context); foreach (KeWeiOMS.Domain.OrderType order in orderList) { string orderid = ""; string itemid = ""; if (order.OrderExNo.IndexOf("-") == -1) { orderid = order.OrderExNo; GetOrdersCall apicall = new GetOrdersCall(context); OrderTypeCollection orders = null; try { orders = apicall.GetOrders(new StringCollection { order.OrderExNo }); } catch (Exception) { orders = new OrderTypeCollection(); } if (orders.Count > 0) { foreach (TransactionType trans in orders[0].TransactionArray) { itemid = trans.Item.ItemID; orderid = trans.TransactionID; call.Shipment = new ShipmentType(); call.Shipment.DeliveryStatus = eBay.Service.Core.Soap.ShipmentDeliveryStatusCodeType.Delivered; call.Shipment.ShipmentTrackingDetails = new ShipmentTrackingDetailsTypeCollection(); if (orderType.OrderNo == order.TrackCode || order.TrackCode == "" || order.TrackCode == null) { //call.Shipment.ShipmentTrackingNumber = ""; } else { call.Shipment.ShippingCarrierUsed = CarrierUsed; call.Shipment.ShipmentTrackingNumber = orderType.TrackCode.ToString(); } call.Shipment.DeliveryDate = DateTime.Now; call.Shipment.DeliveryDateSpecified = true; call.Shipment.DeliveryStatus = ShipmentDeliveryStatusCodeType.Delivered; try { call.CompleteSale(itemid, orderid, true, true); } catch (Exception ex) { break; } break; } } } else { itemid = order.OrderExNo.Substring(0, order.OrderExNo.IndexOf("-")); orderid = order.OrderExNo.Substring(order.OrderExNo.IndexOf("-") + 1); call.Shipment = new ShipmentType(); call.Shipment.DeliveryStatus = eBay.Service.Core.Soap.ShipmentDeliveryStatusCodeType.Delivered; call.Shipment.ShipmentTrackingDetails = new ShipmentTrackingDetailsTypeCollection(); if (orderType.OrderNo == order.TrackCode || order.TrackCode == "" || order.TrackCode == null) { //call.Shipment.ShipmentTrackingNumber = ""; } else { call.Shipment.ShippingCarrierUsed = CarrierUsed; call.Shipment.ShipmentTrackingNumber = orderType.TrackCode.ToString(); } call.Shipment.DeliveryDate = DateTime.Now; call.Shipment.DeliveryDateSpecified = true; call.Shipment.DeliveryStatus = ShipmentDeliveryStatusCodeType.Delivered; try { call.CompleteSale(itemid, orderid, true, true); } catch (Exception) { continue; } finally { } } } } }
public static void EbayUploadTrackCode(string account, KeWeiOMS.Domain.OrderType orderType) { ISession NSession = NhbHelper.OpenSession(); Dictionary <string, int> sendNum = new Dictionary <string, int>(); IList <AccountType> accounts = NSession.CreateQuery("from AccountType where AccountName='" + account + "'").SetMaxResults(1). List <AccountType>(); if (accounts.Count > 0) { IList <KeWeiOMS.Domain.OrderType> orderList = new List <KeWeiOMS.Domain.OrderType>(); if (orderType.IsMerger == 1 || orderType.OrderExNo.IndexOf("|") != -1) { orderList = NSession.CreateQuery("from OrderType where MId='" + orderType.Id + "' Or Id ='" + orderType.Id + "'").List <KeWeiOMS.Domain.OrderType>(); } else { orderList.Add(orderType); } ApiContext context = GetGenericApiContext("US"); context.ApiCredential.eBayToken = accounts[0].ApiToken; eBay.Service.Call.CompleteSaleCall call = null; string CarrierUsed = ""; // IList<logisticsSetupType> setups = NSession.CreateQuery("from logisticsSetupType where LId in (select ParentID from LogisticsModeType where LogisticsCode='" + orderType.LogisticMode + "')").List<logisticsSetupType>(); //if (setups != null) //{ // CarrierUsed = setups[0].SetupName; //} CarrierUsed = "China Post"; call = new eBay.Service.Call.CompleteSaleCall(context); foreach (KeWeiOMS.Domain.OrderType order in orderList) { string orderid = ""; string itemid = ""; if (order.OrderExNo.IndexOf("-") == -1) { orderid = order.OrderExNo; GetOrdersCall apicall = new GetOrdersCall(context); OrderTypeCollection orders = null; try { orders = apicall.GetOrders(new StringCollection { order.OrderExNo }); } catch (Exception) { orders = new OrderTypeCollection(); } if (orders.Count > 0) { foreach (TransactionType trans in orders[0].TransactionArray) { itemid = trans.Item.ItemID; orderid = trans.TransactionID; call.Shipment = new ShipmentType(); call.Shipment.DeliveryStatus = eBay.Service.Core.Soap.ShipmentDeliveryStatusCodeType.Delivered; call.Shipment.ShipmentTrackingDetails = new ShipmentTrackingDetailsTypeCollection(); if (orderType.OrderNo == order.TrackCode || order.TrackCode == "" || order.TrackCode == null) { //call.Shipment.ShipmentTrackingNumber = ""; } else { call.Shipment.ShippingCarrierUsed = CarrierUsed; call.Shipment.ShipmentTrackingNumber = orderType.TrackCode.ToString(); } call.Shipment.DeliveryDate = DateTime.Now; call.Shipment.DeliveryDateSpecified = true; call.Shipment.DeliveryStatus = ShipmentDeliveryStatusCodeType.Delivered; try { call.CompleteSale(itemid, orderid, true, true); } catch (Exception ex) { break; } break; } } } else { itemid = order.OrderExNo.Substring(0, order.OrderExNo.IndexOf("-")); orderid = order.OrderExNo.Substring(order.OrderExNo.IndexOf("-") + 1); call.Shipment = new ShipmentType(); call.Shipment.DeliveryStatus = eBay.Service.Core.Soap.ShipmentDeliveryStatusCodeType.Delivered; call.Shipment.ShipmentTrackingDetails = new ShipmentTrackingDetailsTypeCollection(); if (orderType.OrderNo == order.TrackCode || order.TrackCode == "" || order.TrackCode == null) { //call.Shipment.ShipmentTrackingNumber = ""; } else { call.Shipment.ShippingCarrierUsed = CarrierUsed; call.Shipment.ShipmentTrackingNumber = orderType.TrackCode.ToString(); } call.Shipment.DeliveryDate = DateTime.Now; call.Shipment.DeliveryDateSpecified = true; call.Shipment.DeliveryStatus = ShipmentDeliveryStatusCodeType.Delivered; try { call.CompleteSale(itemid, orderid, true, true); } catch (Exception) { continue; } finally { } } } } }
/// <summary> /// Callback method for timer /// </summary> private void OnTimer() { GetOrdersCall getOrdersApiCall = new GetOrdersCall(apiContext); OrderTypeCollection orders = null; try { orders = getOrdersApiCall.GetOrders(new TimeFilter { TimeFrom = DateTime.Now.AddDays(DaysAgo), TimeTo = DateTime.Now }, TradingRoleCodeType.Seller, OrderStatusCodeType.Completed); } catch (Exception e) { eventLog.WriteEntry("Unable to connect to the server"); return; } int counter = 0; var ordersList = new List <HeaderRecords>(); bool orderInserted = false; foreach (OrderType order in orders) { try { if (!DAL.HeaderRecords.Exists(order.OrderID)) { orderInserted = true; #region Header record var headerRecord = new HeaderRecords { OrderID = order.OrderID, InvoiceID = order.ShippingDetails.SellingManagerSalesRecordNumber.ToString(), OrderDate = order.PaidTime.ToShortDateString(), Email = order.TransactionArray[0].Buyer.Email, //? it gives the value of "invalid request" BilltoFirstName = order.ShippingAddress.Name, BilltoLastName = order.ShippingAddress.Name, BilltoCompanyName = order.BuyerUserID, DeliveryMethod = order.ShippingServiceSelected.ShippingService == "ShippingMethodStandard" ? "1" : "5", ShippingAndHandling = order.ShippingServiceSelected.ShippingServiceCost.Value.ToString(), Tax = order.ShippingDetails.SalesTax.SalesTaxAmount.Value.ToString(), Discount = "0", OverallTotal = order.Total.Value.ToString(), ShiptoFirstName = order.ShippingAddress.Name.Split(' ')[0], ShiptoLastName = order.ShippingAddress.Name.Split(' ')[1], ShiptoCompanyName = order.BuyerUserID, ShiptoStreetAddress = order.ShippingAddress.Street1, ShiptoOptionalAddress = order.ShippingAddress.Street2, ShiptoCity = order.ShippingAddress.CityName, ShiptoState = order.ShippingAddress.StateOrProvince, ShiptoZip = order.ShippingAddress.PostalCode, ShiptoCountry = order.ShippingAddress.CountryName, ShiptoPhone = order.ShippingAddress.Phone, CatalogName = "EBAY", Source = "EBAY" }; #endregion List <DAL.DetailRecord> detailRecordList = new List <DAL.DetailRecord>(); foreach (TransactionType transactionItem in order.TransactionArray) { #region Detail record var dr = new DAL.DetailRecord { InvoiceID = headerRecord.InvoiceID, PurchaseID = transactionItem.ShippingDetails.SellingManagerSalesRecordNumber.ToString(), SourceCode = transactionItem.Item.Site.ToString(), ItemID = transactionItem.Item.ItemID, ProductDescription = transactionItem.Item.Title, Quantity = transactionItem.QuantityPurchased, UnitPrice = transactionItem.TransactionPrice.Value, ExtendedPrice = transactionItem.TransactionPrice.Value * transactionItem.QuantityPurchased }; detailRecordList.Add(dr); #endregion } headerRecord.ProductSubtotal = detailRecordList.Sum(x => x.ExtendedPrice).ToString(); headerRecord.Commision = GetCommission(headerRecord.ProductSubtotal); try { #region Inserting objects in database using (var scope = new TransactionScope()) { DAL.HeaderRecords.Add(headerRecord); SetSkuCodeForDetailsRecord(detailRecordList); DAL.DetailRecord.Add(detailRecordList); headerRecord.Items.AddRange(detailRecordList); var orderStatus = new DAL.OrderStatus { OrderID = order.OrderID, Status = 1 }; DAL.OrderStatus.Add(orderStatus); var orderMessage = new DAL.OrderMessage { InvoiceID = headerRecord.InvoiceID }; DAL.OrderMessage.Add(orderMessage); scope.Complete(); } #endregion } catch (TransactionAbortedException) { eventLog.WriteEntry("TransactionAbortedException has been thrown"); } ordersList.Add(headerRecord); } } catch (Exception e) { eventLog.WriteEntry(string.Format("An error occured at the step #: {0}; message: {1}", counter, e.Message)); } finally { counter++; } } if (orderInserted) { CreateXmlFile(ordersList); } RestartTimer(); }
public static List <Transaction> GetOrders(IGetOrdersCall AGetOrdersCall, DateTime DateFrom, DateTime DateTo, bool Active = true, bool Completed = true, bool MinimumOutput = false) { AGetOrdersCall.ApiContext.ApiLogManager.RecordMessage("Starting a GetOrders call " + (MinimumOutput ? "with minimum output" : "with normal output")); Blink(); Stopwatch s = Stopwatch.StartNew(); AGetOrdersCall.DetailLevelList = new DetailLevelCodeTypeCollection(new DetailLevelCodeType[] { DetailLevelCodeType.ReturnAll }); AGetOrdersCall.ApiContext.ApiLogManager.RecordMessage(String.Format("Getting item list - START, page {0}", 1)); Blink(); TimeFilter createTime = new TimeFilter() { TimeFrom = DateFrom.Subtract(TimeDiff), TimeTo = DateTo.Subtract(TimeDiff) }; if (MinimumOutput) { AGetOrdersCall.ApiRequest.OutputSelector = new StringCollection(new string[] { "TransactionID", "PaginationResult", "SellingManagerSalesRecordNumber", "ItemID", "CreatedTime" }); } OrderStatusCodeType filterStatus = OrderStatusCodeType.All; if (Active && !Completed) { filterStatus = OrderStatusCodeType.Active; } else if (Completed && !Active) { filterStatus = OrderStatusCodeType.Completed; } int Page = 1; List <Transaction> res = new List <Transaction>(); do { AGetOrdersCall.Pagination = new PaginationType() { EntriesPerPage = 200, PageNumber = Page }; OrderTypeCollection items = AGetOrdersCall.GetOrders(createTime, TradingRoleCodeType.Seller, filterStatus); Blink(); AGetOrdersCall.ApiContext.ApiLogManager.RecordMessage(String.Format("Getting item list - SUCCESS, page {0}", Page)); Blink(); foreach (OrderType i in items) { foreach (TransactionType j in i.TransactionArray) { res.Add(new Transaction() { OrderID = i.OrderID, TransactionId = j.TransactionID, ItemID = j.Item.ItemID, SellingManagerRecordNumber = j.ShippingDetails.SellingManagerSalesRecordNumber, CreatedTime = i.CreatedTime, OrderStatus = i.OrderStatus }); AGetOrdersCall.ApiContext.ApiLogManager.RecordMessage(String.Format("TransactionID {0}\tItem ID{1}\tCreated on {2}", i.OrderID, j.Item.ItemID, i.CreatedTime)); } } Blink(); Page++; } while (Page <= AGetOrdersCall.PaginationResult.TotalNumberOfPages); eBayClass.Metrics.GenerateReport(eBayClass.LogManager.ApiLoggerList[0]); eBayClass.LogManager.RecordMessage("Done; ms: " + s.ElapsedMilliseconds.ToString()); Blink(); return(res); }
private void SaveEbayOrders(OrderTypeCollection collection) { using (var repository = new TradelrRepository()) { foreach (OrderType entry in collection) { Transaction transaction; // check if order already exists var existingEbayOrder = repository.GetSubDomain(sd.id).ebay_orders.SingleOrDefault(x => x.orderid == entry.OrderID); if (existingEbayOrder != null) { var order = existingEbayOrder.orders.Single(); transaction = new Transaction(order, repository, seller.id); // update order status existingEbayOrder.status = entry.OrderStatus.ToString(); } else { // check if user already exists var buyer = repository.GetUserByEbayID(entry.BuyerUserID); if (buyer == null) { // get receiver and add to contact db var userService = new UserService(token); // get by itemid as invalid request seems to be returned when get by userid var ebaybuyer = userService.GetUser(entry.BuyerUserID); // we assume that same buyer for all transactions so we get the first email address var buyeremail = entry.TransactionArray.ItemAt(0).Buyer.Email; buyer = SaveEbayBuyer(ebaybuyer, buyeremail); } // add a shipping and billing address if (entry.ShippingAddress != null) { var buyername = Utility.SplitFullName(entry.ShippingAddress.Name); var handler = new AddressHandler(buyer.organisation1, repository); handler.SetShippingAndBillingAddresses(buyername[0], buyername[1], entry.ShippingAddress.CompanyName ?? "", entry.ShippingAddress.Street1 + "\r\n" + entry.ShippingAddress.Street2, entry.ShippingAddress.CityName, null, entry.ShippingAddress.PostalCode, entry.ShippingAddress.Phone, entry.ShippingAddress.Country.ToString().ToCountry().id, entry.ShippingAddress.StateOrProvince, entry.ShippingAddress.StateOrProvince, entry.ShippingAddress.StateOrProvince, buyername[0], buyername[1], entry.ShippingAddress.CompanyName ?? "", entry.ShippingAddress.Street1 + "\r\n" + entry.ShippingAddress.Street2, entry.ShippingAddress.CityName, null, entry.ShippingAddress.PostalCode, entry.ShippingAddress.Phone, entry.ShippingAddress.Country.ToString().ToCountry().id, entry.ShippingAddress.StateOrProvince, entry.ShippingAddress.StateOrProvince, entry.ShippingAddress.StateOrProvince, true); } // add normal order transaction = new Transaction(sd, buyer, TransactionType.INVOICE, repository, seller.id); transaction.CreateTransaction(repository.GetNewOrderNumber(sd.id, TransactionType.INVOICE), entry.CreatedTime, "", entry.AmountPaid.currencyID.ToString().ToCurrency().id); // mark as sent var tradelr_orderstatus = GetOrderStatus(entry.OrderStatus); transaction.UpdateOrderStatus(tradelr_orderstatus); // add ebay specific order information var newEbayOrder = new ebay_order(); newEbayOrder.orderid = entry.OrderID; newEbayOrder.status = entry.OrderStatus.ToString(); newEbayOrder.created = entry.CreatedTime; newEbayOrder.subdomainid = sd.id; transaction.AddEbayOrderInformation(newEbayOrder); foreach (eBay.Service.Core.Soap.TransactionType trans in entry.TransactionArray) { var ebay_itemid = trans.Item.ItemID; // get product details var itemservice = new ItemService(token); var item = itemservice.GetItem(ebay_itemid); // add new product if necessary var existingproduct = repository.GetProducts(sd.id).SingleOrDefault(x => x.ebayID.HasValue && x.ebay_product.ebayid == ebay_itemid); if (existingproduct == null) { // add new product (triggered when synchronisation is carried out the first time) var newproduct = new Listing(); newproduct.Populate(item); var importer = new ProductImport(); var pinfo = importer.ImportEbay(newproduct, sd.id); repository.AddProduct(pinfo, sd.id); existingproduct = pinfo.p; } else { // if existing product is completed then we need to relist if (entry.OrderStatus == OrderStatusCodeType.Completed || entry.OrderStatus == OrderStatusCodeType.Shipped) { // see if product listing is still active if (item.SellingStatus.ListingStatus == ListingStatusCodeType.Completed || item.SellingStatus.ListingStatus == ListingStatusCodeType.Ended) { // set status to inactive existingproduct.ebay_product.isActive = false; // check if we should autorelist if (existingproduct.ebay_product.autorelist) { // check that product has enough stock if (existingproduct.HasStock(existingproduct.ebay_product.quantity)) { var exporter = new EbayExporter( existingproduct.ebay_product.siteid.ToEnum <SiteCodeType>(), sd.ToHostName(), token, sd); exporter.BuildItem(existingproduct.ebay_product); } } } } } // add tradelr order item var orderItem = new orderItem { description = item.Title, variantid = existingproduct.product_variants[0].id, unitPrice = (decimal)trans.TransactionPrice.Value, quantity = trans.QuantityPurchased }; if (trans.Taxes != null) { orderItem.tax = (decimal)(trans.Taxes.TotalTaxAmount.Value / trans.TransactionPrice.Value); } transaction.AddOrderItem(orderItem, null); // update inventory transaction.UpdateInventoryItem(orderItem, trans.QuantityPurchased); // add ebay order item var ebayorderitem = new ebay_orderitem(); ebayorderitem.lineid = trans.OrderLineItemID; newEbayOrder.ebay_orderitems.Add(ebayorderitem); } // update shipping transaction.UpdateShippingCost(entry.ShippingServiceSelected.ShippingServiceCost.Value.ToString()); transaction.UpdateShippingMethod(entry.ShippingServiceSelected.ShippingService); // update tax : ebay tax is the shipping tax which applies to the entire order total // may or may not include shipping cost if (entry.ShippingDetails.SalesTax != null) { transaction.UpdateOrderTax((decimal)entry.ShippingDetails.SalesTax.SalesTaxPercent, entry.ShippingDetails.SalesTax.ShippingIncludedInTax); } transaction.UpdateTotal(); transaction.SaveNewTransaction(); ////////////////////// SAVE INVOICE } // the following applies to both new and existing order var existingPayment = transaction.GetPayments().SingleOrDefault(x => x.reference == entry.OrderID); if (existingPayment != null) { var newstatus = GetPaymentStatus(entry.CheckoutStatus.Status); if (existingPayment.status != newstatus.ToString()) { transaction.UpdatePaymentStatus(existingPayment, newstatus); } } else { // if payment has been made then add payment if (entry.CheckoutStatus.Status == CompleteStatusCodeType.Complete) { var p = new DBML.payment(); p.status = GetPaymentStatus(entry.CheckoutStatus.Status).ToString(); p.method = entry.CheckoutStatus.PaymentMethod.ToString(); p.created = entry.CheckoutStatus.LastModifiedTime; p.notes = entry.BuyerCheckoutMessage; p.paidAmount = (decimal)entry.AmountPaid.Value; p.reference = entry.OrderID; transaction.AddPayment(p, false); } } // if there is a shipped date, mark as ship if not already done so if (transaction.GetOrderStatus() != OrderStatus.SHIPPED && entry.ShippedTimeSpecified) { transaction.UpdateOrderStatus(OrderStatus.SHIPPED); if (entry.ShippingDetails.ShipmentTrackingDetails.Count != 0) { foreach (ShipmentTrackingDetailsType trackentry in entry.ShippingDetails.ShipmentTrackingDetails) { var comment = string.Format(OrderComment.ORDER_SHIP_STANDARD, trackentry.ShippingCarrierUsed, trackentry.ShipmentTrackingNumber); transaction.AddComment(comment); } } else { transaction.AddComment(OrderComment.ORDER_SHIP, created: entry.ShippedTime); } } repository.Save(); // save per order } } }
public OrderTypeCollection allCompletedOrders(String LastOrderDownload) { OrderTypeCollection orders = new OrderTypeCollection(); OrderTypeCollection retOrders = new OrderTypeCollection(); DateTime dateOut; DateTime.TryParse(LastOrderDownload, out dateOut); try { GetOrdersCall getOrders = new GetOrdersCall(context); getOrders.DetailLevelList = new DetailLevelCodeTypeCollection(); getOrders.DetailLevelList.Add(DetailLevelCodeType.ReturnAll); getOrders.CreateTimeFrom = dateOut.AddDays(-15.0); //According to Zane, typical orders are paid within 3-4 days, but we would give 15 days window (thats when eBay cancells NonPaid orders automatically). We return only orders having PaidTime since our last timestamp. getOrders.CreateTimeTo = DateTime.Now; getOrders.OrderRole = TradingRoleCodeType.Seller; getOrders.OrderStatus = OrderStatusCodeType.Completed; getOrders.Execute(); if (getOrders.ApiResponse.Ack != AckCodeType.Failure) { //Check if any orders are returned if (getOrders.ApiResponse.OrderArray.Count != 0) { orders = getOrders.ApiResponse.OrderArray; } } if (getOrders.PaginationResult.TotalNumberOfPages > 1) //if more than 1 pages, then need to download all the pages. { int pageNumber = 2; do { getOrders.Pagination = new PaginationType() { PageNumber = pageNumber }; getOrders.Execute(); if (getOrders.ApiResponse.Ack != AckCodeType.Failure) { //Check if any orders are returned if (getOrders.ApiResponse.OrderArray.Count != 0) { orders.AddRange(getOrders.ApiResponse.OrderArray); } } pageNumber++; } while (pageNumber <= getOrders.PaginationResult.TotalNumberOfPages); } foreach (OrderType o in orders) { if (o.PaidTime.ToLocalTime() > dateOut) { retOrders.Add(o); } } } catch (Exception ex) { } return(retOrders); }