Esempio n. 1
0
        private static string BuildEbayLineSql(EbayOrderLineType eolType)
        {
            string sql = @"INSERT INTO [dbo].[EbayOrderLine]
           ([OrderID],[BuyerEmail],[BuyerFirstName],[BuyerLastName]
           ,[CreatedDate],[ExtendedOrderID],[FinalValueFee],[Gift]
           ,[GiftMessage],[InventoryReservationID]
           ,[InvoiceSentTime],[ItemID],[OrderLineItemID],[PrivateNotes]
           ,[Site],[LineID],[QuantityPurchased],[SKU],[VariationSKU]
           ,[VariationNameValueList],[Title]
           ,[VariationTitle],[TransactionID]
           ,[TransactionPrice],[EnterDate],[Updatedate])
     VALUES
           ('"
                         + eolType.OrderID + "','" + eolType.BuyerEmail + "','" + eolType.BuyerFirstName + "','" + eolType.BuyerLastName + "','"
                         + eolType.CreatedDate + "','" + eolType.ExtendedOrderID + "','" + eolType.FinalValueFee + "','" + eolType.Gift + "','"
                         + eolType.GiftMessage + "','" + eolType.InventoryReservationID + "','"
                         + eolType.InvoiceSentTime + "','" + eolType.ItemID + "','" + eolType.OrderLineItemID + "','" + eolType.PrivateNotes + "','"
                         + eolType.Site + "','" + eolType.LineID + "','" + eolType.QuantityPurchased + "','" + eolType.SKU + "','" + eolType.VariationSKU + "','"
                         + eolType.VariationNameValueList + "','" + eolType.Title + "','"
                         + eolType.VariationTitle + "','" + eolType.TransactionID + "','"
                         + eolType.TransactionPrice + "','" + eolType.EnterDate + "','" + eolType.Updatedate + "')";

            return(sql);
        }
Esempio n. 2
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;
        }
Esempio n. 3
0
        private static EbayOrderLineType AddOrderLine(string orderID, TransactionType transactionType,int lineId)
        {
            EbayOrderLineType ebayOrderLineType = new EbayOrderLineType();
            ebayOrderLineType.OrderID = orderID;
            ebayOrderLineType.BuyerEmail = transactionType.Buyer.Email == null ? "" : transactionType.Buyer.Email.ToString().Replace("'", "''");
            ebayOrderLineType.BuyerFirstName = transactionType.Buyer.UserFirstName == null ? "" : transactionType.Buyer.UserFirstName.ToString().Replace("'", "''");
            ebayOrderLineType.BuyerLastName = transactionType.Buyer.UserLastName==null?"":transactionType.Buyer.UserLastName.ToString().Replace("'", "''");
            if (transactionType.CreatedDate.ToLocalTime() <= ConvertUtility.ToDateTime("1901-01-01 00:00:00"))
            {
                ebayOrderLineType.CreatedDate = (DateTime)SqlDateTime.MinValue;
            }
            else
            {
                ebayOrderLineType.CreatedDate = transactionType.CreatedDate.ToLocalTime();
            }
            ebayOrderLineType.ExtendedOrderID = transactionType.ExtendedOrderID == null ? "" : transactionType.ExtendedOrderID.ToString();
            ebayOrderLineType.FinalValueFee = transactionType.FinalValueFee == null ? 0 : transactionType.FinalValueFee.Value;
            ebayOrderLineType.Gift = transactionType.Gift == true ? 1 : 0;
            ebayOrderLineType.GiftMessage = transactionType.GiftSummary==null?"":transactionType.GiftSummary.Message.ToString().Replace("'", "''");
            ebayOrderLineType.InventoryReservationID = transactionType.InventoryReservationID == null ? "" : transactionType.InventoryReservationID.ToString();
            if (transactionType.InvoiceSentTime.ToLocalTime() <= ConvertUtility.ToDateTime("1901-01-01 00:00:00"))
            {
                ebayOrderLineType.InvoiceSentTime = (DateTime)SqlDateTime.MinValue;
            }
            else
            {
                ebayOrderLineType.InvoiceSentTime = transactionType.InvoiceSentTime.ToLocalTime();
            }
            ebayOrderLineType.ItemID = transactionType.Item.ItemID == null ? "": transactionType.Item.ItemID.ToString();
            ebayOrderLineType.OrderLineItemID = transactionType.OrderLineItemID == null ? "" : transactionType.OrderLineItemID.ToString();
            ebayOrderLineType.PrivateNotes = transactionType.Item.PrivateNotes==null?"":transactionType.Item.PrivateNotes.ToString().Replace("'", "''");
            ebayOrderLineType.Site = transactionType.Item.Site.ToString().Replace("'", "''");
            ebayOrderLineType.LineID = lineId;
            ebayOrderLineType.QuantityPurchased = transactionType.QuantityPurchased;
            ebayOrderLineType.SKU = transactionType.Item.SKU == null ? "" : transactionType.Item.SKU.ToString();
            if (transactionType.Variation == null)
            {
                ebayOrderLineType.VariationSKU = "";
                ebayOrderLineType.VariationNameValueList = "";
                ebayOrderLineType.VariationTitle = "";
            }
            else
            {
                ebayOrderLineType.VariationSKU = transactionType.Variation.SKU == null ? "" : transactionType.Variation.SKU.ToString().Replace("'", "''");
                string variationNameValueList = "";
                foreach (NameValueListType nameValueListType in transactionType.Variation.VariationSpecifics)
                {
                    variationNameValueList = variationNameValueList+nameValueListType.Name.ToString().Replace("'", "''") + ":";
                    foreach (string value in nameValueListType.Value)
                    {
                        variationNameValueList = variationNameValueList+value.ToString().Replace("'", "''") + ";";
                    }
                }
                ebayOrderLineType.VariationNameValueList = variationNameValueList;
                ebayOrderLineType.VariationTitle = transactionType.Variation.VariationTitle == null ? "" : transactionType.Variation.VariationTitle.ToString().Replace("'", "''");
            }

            ebayOrderLineType.Title = transactionType.Item.Title == null ? "" : transactionType.Item.Title.ToString().Replace("'", "''");
            ebayOrderLineType.TransactionID = transactionType.TransactionID == null ? "" : transactionType.TransactionID.ToString();
            ebayOrderLineType.TransactionPrice = transactionType.TransactionPrice == null ? 0 : transactionType.TransactionPrice.Value;
            ebayOrderLineType.EnterDate = System.DateTime.Now;
            ebayOrderLineType.Updatedate = System.DateTime.Now;
            return ebayOrderLineType;
        }