Ejemplo n.º 1
0
        /// <summary>
        /// Makes the single orders call.
        /// </summary>
        /// <param name="pageNumber">The page number.</param>
        /// <param name="token">The token.</param>
        /// <param name="dateFromUtc">The date from UTC.</param>
        /// <param name="dateToUtc">The date to UTC.</param>
        /// <returns></returns>
        private GetOrdersCall MakeSingleOrdersCall(int pageNumber, string token, DateTime dateFromUtc, DateTime dateToUtc)
        {
            GetOrdersCall getOrdersCall = new GetOrdersCall(GetContext(token));

            getOrdersCall.IncludeFinalValueFee = true;
            getOrdersCall.DetailLevelList      = new DetailLevelCodeTypeCollection();
            getOrdersCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);
            getOrdersCall.CreateTimeFrom = dateFromUtc;
            getOrdersCall.CreateTimeTo   = dateToUtc;
            getOrdersCall.OrderRole      = TradingRoleCodeType.Seller;
            getOrdersCall.OrderStatus    = OrderStatusCodeType.All;
            getOrdersCall.Pagination     = new PaginationType
            {
                EntriesPerPage          = Config.GetOrdersCallPageSize,
                EntriesPerPageSpecified = true,
                PageNumber          = pageNumber,
                PageNumberSpecified = true
            };

            getOrdersCall.CallRetry = new CallRetry
            {
                DelayTime      = Config.GetOrdersCallRetryDelayMilliSec,
                MaximumRetries = Config.GetOrdersCallMaximumRetries
            };

            getOrdersCall.Execute();
            return(getOrdersCall);
        }
        public string GetOrders()
        {
            try
            {
                ApiContext context = eBayCall.GetContext();

                GetOrdersCall getOrders = new GetOrdersCall(context);

                PopulateGetOrders(getOrders);

                getOrders.Execute();

                if (getOrders.ApiResponse.Ack != AckCodeType.Failure)
                {
                    // Check if any orders are returned
                    if (getOrders.ApiResponse.OrderArray.Count != 0)
                    {
                        // Convert response to Json
                        return(JsonConvert.SerializeObject(getOrders.ApiResponse.OrderArray));
                    }
                    else
                    {
                        return("No orders returned from the API.");
                    }
                }
                else
                {
                    return("AckCodeType Failed");
                }
            }
            catch (Exception ex)
            {
                return("There was an exception. " + ex.Message);
            }
        }
Ejemplo n.º 3
0
        // Given a time period specified by startDate and endDate, returns all the order ids created in that period.
        public static StringCollection GetAllOrderIds(AccountType account, DateTime startDate, DateTime endDate)
        {
            if (account.SellerApiContext == null)
            {
                return(null);
            }

            TimeFilter timeFilter = new TimeFilter();

            timeFilter.TimeFrom = startDate;
            timeFilter.TimeTo   = endDate;

            GetOrdersCall getOrdersApiCall = new GetOrdersCall(account.SellerApiContext);

            DetailLevelCodeType[] detailLevels = new DetailLevelCodeType[] { DetailLevelCodeType.ReturnSummary };
            getOrdersApiCall.DetailLevelList = new DetailLevelCodeTypeCollection(detailLevels);

            getOrdersApiCall.GetOrders(timeFilter, TradingRoleCodeType.Seller, OrderStatusCodeType.All);

            StringCollection orderIds = new StringCollection();

            foreach (OrderType order in getOrdersApiCall.OrderList)
            {
                orderIds.Add(order.OrderID);
            }

            return(orderIds);
        }
Ejemplo n.º 4
0
        public OrderType[] DownloadNeweBayOrder(DateTime?fromTime, DateTime?toTime)
        {
            try
            {
                GetOrdersCall        getOrdersCall;
                GetOrdersRequestType getOrdersRequest;
                PaginationType       paging = new PaginationType();

                int totalPage;

                DetailLevelCodeTypeCollection detailLevelColl = new DetailLevelCodeTypeCollection();
                detailLevelColl.Add(DetailLevelCodeType.ReturnAll);

                List <OrderType> returnOrders = new List <OrderType>();
                foreach (var apiContext in _eBayAPIContextProvider.GetAPIContext())
                {
                    getOrdersCall              = new GetOrdersCall(apiContext);
                    getOrdersRequest           = new GetOrdersRequestType();
                    getOrdersRequest.OrderRole = TradingRoleCodeType.Seller;

                    getOrdersRequest.DetailLevel = detailLevelColl;
                    //var getOrderRequestDatetimeNow = DateTime.Now.AddMinutes(-2);
                    if (fromTime != null)
                    {
                        getOrdersRequest.CreateTimeFrom = ((DateTime)fromTime).ToUniversalTime();
                    }
                    if (toTime != null)
                    {
                        getOrdersRequest.CreateTimeTo = ((DateTime)toTime).ToUniversalTime();
                    }



                    int pageNumber = 1;
                    do
                    {
                        paging.EntriesPerPage       = 100;
                        paging.PageNumber           = pageNumber;
                        getOrdersRequest.Pagination = paging;
                        var getOrdersResponse = getOrdersCall.ExecuteRequest(getOrdersRequest) as GetOrdersResponseType;


                        if (getOrdersResponse.OrderArray != null && getOrdersResponse.OrderArray.Count > 0)
                        {
                            returnOrders.AddRange(getOrdersResponse.OrderArray.ToArray());
                        }

                        totalPage = getOrdersResponse.PaginationResult.TotalNumberOfPages;
                        pageNumber++;
                    } while (pageNumber <= totalPage);
                }

                return(returnOrders.ToArray());
            }
            catch (Exception ex)
            {
                return(default(OrderType[]));
            }
        }
Ejemplo n.º 5
0
        private void simpleButtonLeer_Click(object sender, EventArgs e)
        {
            int pageNumber             = 1;
            List <OrderType> orderType = new List <OrderType>();

            foreach (CheckedListBoxItem cuenta in checkedListBoxControlCuentas.CheckedItems)
            {
                credencialesEbay.cuenta = cuenta.Value.ToString();
                pageNumber = 1;
                while (true)
                {
                    GetOrdersCall getOrdersCall = new GetOrdersCall(credencialesEbay.context);
                    getOrdersCall.DetailLevelList = new DetailLevelCodeTypeCollection();
                    getOrdersCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);
                    getOrdersCall.CreateTimeTo         = DateTime.Now.ToUniversalTime();
                    getOrdersCall.CreateTimeFrom       = dateEditDesde.DateTime;
                    getOrdersCall.IncludeFinalValueFee = true;
                    PaginationType pagination = new PaginationType();
                    pagination.EntriesPerPage          = 100;
                    pagination.EntriesPerPageSpecified = true;
                    pagination.PageNumber          = pageNumber;
                    pagination.PageNumberSpecified = true;
                    getOrdersCall.Execute();
                    int total = 999;
                    try
                    {
                        total = getOrdersCall.PaginationResult.TotalNumberOfPages;
                    }
                    catch
                    { }
                    simpleButtonLeer.Text = credencialesEbay.cuenta + string.Format(" {0} de {1}", pageNumber, total);
                    Application.DoEvents();
                    var b = getOrdersCall.ApiResponse.Any.ToString();
                    for (int i = 0; i < getOrdersCall.ApiResponse.OrderArray.Count; i++)
                    {
                        orderType.Add(getOrdersCall.ApiResponse.OrderArray[i]);
                    }
                    Parallel.ForEach(orderType, new ParallelOptions {
                        MaxDegreeOfParallelism = 4
                    }, webpage =>
                    {
                        fnGrabarOrder(webpage);
                    });
                    orderType.Clear();
                    var a = getOrdersCall.ApiResponse.OrderArray[0];
                    if (pageNumber < getOrdersCall.PaginationResult.TotalNumberOfPages)
                    {
                        pageNumber++;
                    }
                    else
                    {
                        break;
                    }
                }
            }
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        private List <MarketplaceOrder> getMarketplaceOrdersData(List <string> orderIds)
        {
            var context = new ApiContext();
            var results = new List <MarketplaceOrder>();

            try
            {
                // let's set the credentials for our eBay API service
                context.ApiCredential    = _apiCredential;
                context.SoapApiServerUrl = _apiServiceUrl;

                // init the GetOrdersCall
                var apiCall = new GetOrdersCall(context);
                apiCall.DetailLevelList = new DetailLevelCodeTypeCollection();
                apiCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);
                apiCall.OrderRole   = TradingRoleCodeType.Seller;
                apiCall.OrderStatus = OrderStatusCodeType.Completed;
                apiCall.Site        = SiteCodeType.US;
                apiCall.OrderIDList = new StringCollection(orderIds.ToArray());

                apiCall.Execute();

                // check if the call is not success
                if (apiCall.ApiResponse.Ack != AckCodeType.Success)
                {
                    _logger.Add(LogEntrySeverity.Error, LogEntryType.eBayOrders,
                                string.Format("{0} - Error in retrieving orders for eBay. Error message: {1}", apiCall.ApiResponse.Errors[0].LongMessage),
                                apiCall.ApiResponse.Errors.ToString());
                    return(null);
                }

                var ordersResult = apiCall.ApiResponse.OrderArray;
                if (ordersResult.Count == 0)
                {
                    return(null);
                }

                // parsed the orders results
                foreach (OrderType item in ordersResult)
                {
                    results.Add(parsedMarketplaceOrder(item));
                }

                return(results);
            }
            catch (Exception ex)
            {
                _logger.LogError(LogEntryType.AmazonOrdersProvider,
                                 string.Format("{0} - Error in getting latest order data for Order Id: {1}. Error Message: {2}", ChannelName, string.Join(",", orderIds), EisHelper.GetExceptionMessage(ex)),
                                 ex.StackTrace);
                return(null);
            }
        }
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        private OrderTypeCollection ExecuteGetOrders(GetOrdersRequestType request)
        {
            GetOrdersCall call = new GetOrdersCall(_marketplace.GetApiContext());

            GetOrdersResponseType response = call.ExecuteRequest(request) as GetOrdersResponseType;

            while (request.Pagination.PageNumber < response.PaginationResult.TotalNumberOfPages)
            {
                request.Pagination.PageNumber++;

                GetOrdersResponseType additionalResponse = call.ExecuteRequest(request) as GetOrdersResponseType;

                response.OrderArray.AddRange(additionalResponse.OrderArray);
            }

            return(response.OrderArray);
        }
Ejemplo n.º 11
0
        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);
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Returns a list of ebay transaction types matching a specified time period
        /// </summary>
        /// <param name="from">Start date and time of the requiered time period</param>
        /// <param name="until">End date and time of the requiered time period</param>
        /// <returns></returns>
        public static List <TransactionType> LoadEbayTransactions(DateTime from, DateTime until)
        {
            List <TransactionType> result = new List <TransactionType>();

            //Get all sales
            GetSellerTransactionsCall transactionCall = new GetSellerTransactionsCall(EbayController.GetApiContext());

            transactionCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);
            transactionCall.IncludeContainingOrder = true;
            transactionCall.Site       = SiteCodeType.Germany;
            transactionCall.Pagination = new PaginationType();
            transactionCall.Pagination.EntriesPerPage = 200;

            Int32 pageNumber = 1;

            do
            {
                transactionCall.Pagination.PageNumber = pageNumber;
                TransactionTypeCollection transactionPage = transactionCall.GetSellerTransactions(from, until);

                result.AddRange(transactionPage.ToArray());

                pageNumber++;
            }while (transactionCall.HasMoreTransactions);

            //Get all orders for the loaded sales
            var           orderIds  = from current in result where current.ContainingOrder != null select current.ContainingOrder.OrderID;
            GetOrdersCall orderCall = new GetOrdersCall(EbayController.GetApiContext());

            orderCall.OrderIDList = new StringCollection(orderIds.ToArray());
            orderCall.Execute();

            //Assign orders to sales
            List <OrderType> orders = new List <OrderType>(orderCall.OrderList.ToArray());

            foreach (TransactionType current in result)
            {
                if (current.ContainingOrder != null)
                {
                    current.ContainingOrder = orders.FirstOrDefault(x => x.OrderID == current.ContainingOrder.OrderID);
                }
            }

            return(result);
        }
Ejemplo n.º 13
0
        private GetOrdersCall createGetOrdersCall(DateTime createdAfter)
        {
            // let's set the credentials for our eBay API service
            _context.ApiCredential    = _apiCredential;
            _context.SoapApiServerUrl = _apiServiceUrl;

            // we will use the NumberOfDays filter for retrieving the order
            //var numberOfDays = (int)(DateTime.UtcNow - createdAfter).TotalDays;

            // init the GetOrdersCall
            var apiCall = new GetOrdersCall(_context);

            apiCall.DetailLevelList = new DetailLevelCodeTypeCollection();
            apiCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);
            apiCall.NumberOfDays = 30; // just make it 30 days
            apiCall.OrderRole    = TradingRoleCodeType.Seller;
            apiCall.Site         = SiteCodeType.US;

            return(apiCall);
        }
        public static void PopulateGetOrders(GetOrdersCall getOrders)
        {
            DateTime CreateTimeFromPrev, CreateTimeFrom, CreateTimeTo;

            getOrders.DetailLevelList = new DetailLevelCodeTypeCollection();
            getOrders.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);

            // CreateTimeTo set to the current time
            CreateTimeTo = DateTime.Now.ToUniversalTime();
            // Assumption call is made every 15 sec. So CreateTimeFrom of last call was 15 mins
            // prior to now
            TimeSpan ts1 = new TimeSpan(9000000000);

            CreateTimeFromPrev = CreateTimeTo.Subtract(ts1);

            // Set the CreateTimeFrom the last time you made the call minus 2 minutes
            TimeSpan ts2 = new TimeSpan(1200000000);

            CreateTimeFrom           = CreateTimeFromPrev.Subtract(ts2);
            getOrders.CreateTimeFrom = CreateTimeFrom.AddDays(-7);
            getOrders.CreateTimeTo   = CreateTimeTo;
        }
Ejemplo n.º 15
0
        // 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);
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        public static List<EbayOrderType> GetOrderFromEbay(string token,string accountNum)
        {
            string senderEmail = ConfigurationManager.AppSettings["senderEmail"];
            string messageFromPassword= ConfigurationManager.AppSettings["messageFromPassword"];
            string messageToEmail = ConfigurationManager.AppSettings["messageToEmail"];
            string smtpClient = ConfigurationManager.AppSettings["smtpClient"];
            int smtpPortNum = ConvertUtility.ToInt(ConfigurationManager.AppSettings["smtpPortNum"]);

            List<EbayOrderType> OrderList = new List<EbayOrderType>();
            ApiContext context = new ApiContext();
            context.ApiCredential.eBayToken = token;
            context.SoapApiServerUrl = "https://api.ebay.com/wsapi";
            context.Site = SiteCodeType.US;

            DateTime createTimeFrom, createTimeTo;
            GetOrdersCall GetOrderCall = new GetOrdersCall(context);
            GetOrderCall.DetailLevelList = new DetailLevelCodeTypeCollection();
            GetOrderCall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);

            createTimeFrom = DateTime.Now.AddDays(-15).ToUniversalTime();
            createTimeTo = DateTime.Now.ToUniversalTime();

            int pageNumber = 1;
            int errorCount = 0;
            GetOrderCall.CreateTimeFrom = createTimeFrom;
            GetOrderCall.CreateTimeTo = createTimeTo;
            GetOrderCall.OrderStatus = OrderStatusCodeType.Completed;

            while (pageNumber<100)
            {
                try
                {
                    PaginationType pagination = new PaginationType();
                    pagination.EntriesPerPage = 100;
                    GetOrderCall.Pagination = pagination;
                    pagination.PageNumber = pageNumber;
                    GetOrderCall.Execute();

                    int totalPageNumber = GetOrderCall.PaginationResult.TotalNumberOfPages;
                    if (pageNumber > totalPageNumber)
                    {
                        break;
                    }
                    else
                    {
                        if (GetOrderCall.ApiResponse.Ack != AckCodeType.Failure)
                        {
                            if (GetOrderCall.ApiResponse.OrderArray.Count != 0)
                            {
                                foreach (OrderType orderType in GetOrderCall.ApiResponse.OrderArray)
                                {
                                    try
                                    {
                                        EbayOrderType ebayOrderType = new EbayOrderType();
                                        string orderId = orderType.OrderID;
                                        DataRow checkDuplidatedDr = Db.Db.CheckDuplicatedOrderID(orderId);
                                        if (checkDuplidatedDr!=null)
                                        {
                                            if(checkDuplidatedDr["OrderStatus"].ToString() == "Completed")
                                            {
                                                continue; // continue if order already exist
                                            }
                                            else
                                            {
                                                Db.Db.DeleteUncompletedEbayOrder(orderId);
                                            }
                                        }
                                        else
                                        {
                                            EbayOrderHeaderType ebayOrderHeaderType = AddOrderHeader(orderType);//add header info
                                            foreach (ExternalTransactionType externalTransactionType in orderType.ExternalTransaction)//add external trasnaction info
                                            {
                                                EbayOrderPaymentTransactionType ebayOrderPaymentTransactionType = AddOrderPaymentTransaction(orderId, externalTransactionType);
                                                ebayOrderType.paymentTransaction.Add(ebayOrderPaymentTransactionType);
                                            }
                                            ebayOrderType.Header = ebayOrderHeaderType;
                                            int lineId = 0;
                                            foreach (TransactionType transactionType in orderType.TransactionArray)//add line info
                                            {
                                                lineId = lineId + 1;
                                                EbayOrderLineType ebayOrderLineType = AddOrderLine(orderId, transactionType, lineId);
                                                ebayOrderType.Line.Add(ebayOrderLineType);
                                            }
                                            OrderList.Add(ebayOrderType);
                                        }
                                    }
                                    catch(Exception ex)
                                    {
                                        ExceptionUtility exceptionUtility = new ExceptionUtility();
                                        exceptionUtility.CatchMethod(ex, accountNum + ": GetOrderCall--foreach ", ex.Message.ToString(), senderEmail, messageFromPassword, messageToEmail, smtpClient, smtpPortNum);
                                        continue; //continue next single order if current order error
                                    }
                                }
                            }
                            else
                            {
                                continue; // continue next account if no order
                            }
                        }
                        else
                        {
                            ExceptionUtility exceptionUtility = new ExceptionUtility();
                            exceptionUtility.ErrorWarningMethod("AckCodeType Failure: " + accountNum, "AckCodeType Failure: " + accountNum, senderEmail, messageFromPassword, messageToEmail, smtpClient, smtpPortNum);
                            continue; // continue next account if ack error
                        }
                    }
                    pageNumber = pageNumber + 1;
                }
                catch (Exception ex)
                {
                    if (errorCount > 4)
                    {
                        ExceptionUtility exceptionUtility = new ExceptionUtility();
                        exceptionUtility.CatchMethod(ex,accountNum+ ": While ",ex.Message.ToString(),senderEmail,messageFromPassword,messageToEmail,smtpClient,smtpPortNum);
                        break;
                    }
                    else
                    {
                        errorCount = errorCount + 1;
                        continue; // continue try if error less 4 times
                    }
                }
            }

            return OrderList;
        }
Ejemplo n.º 18
0
        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));
        }
Ejemplo n.º 19
0
        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);
            }
        }
Ejemplo n.º 20
0
        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
Ejemplo n.º 21
0
        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);
        }
        /// <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();
        }
Ejemplo n.º 23
0
 public GetOrdersCall_(ApiContext ApiContext)
 {
     apiContext        = ApiContext;
     ebayGetOrdersCall = new GetOrdersCall(ApiContext);
 }
Ejemplo n.º 24
0
        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
                        {
                        }
                    }
                }
            }
        }