Ejemplo n.º 1
0
        protected override void ExecuteInternal()
        {
            this.Message = null;

            GetMemberMessagesCall apiCall = new GetMemberMessagesCall(this.ApiContext);

            apiCall.ApiRequest.MemberMessageID = this.MessageId;
            apiCall.ApiRequest.DetailLevel     = new DetailLevelCodeTypeCollection();
            apiCall.ApiRequest.DetailLevel.Add(DetailLevelCodeType.ReturnHeaders);
            apiCall.ApiRequest.MailMessageType = MessageTypeCodeType.AskSellerQuestion;

            apiCall.Execute();


            if (apiCall.HasWarning)
            {
                string message = apiCall.ApiException.Message;

                // TODO;
            }
            if (apiCall.HasError)
            {
                string message = apiCall.ApiException.Message;
                // TODO:
            }

            if (apiCall.ApiResponse != null && apiCall.ApiResponse.MemberMessage != null && apiCall.ApiResponse.MemberMessage.Count > 0)
            {
                this.Message = apiCall.ApiResponse.MemberMessage[0];
            }
        }
Ejemplo n.º 2
0
        public static void GetEmailByAPI(AccountType account, DateTime beginDate, DateTime endDate, ISession NSession)
        {
            ApiContext context = AppSettingHelper.GetGenericApiContext("US");

            context.ApiCredential.eBayToken = account.ApiToken;
            GetMemberMessagesCall apicall = new GetMemberMessagesCall(context);

            apicall.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);
            TimeFilter fltr = new TimeFilter();

            fltr.TimeFrom = beginDate;
            fltr.TimeTo   = endDate;
            MemberMessageExchangeTypeCollection messages;
            int i = 1;

            do
            {
                apicall.Pagination                = new eBay.Service.Core.Soap.PaginationType();
                apicall.Pagination.PageNumber     = i;
                apicall.Pagination.EntriesPerPage = 100;
                messages = apicall.GetMemberMessages(fltr, MessageTypeCodeType.All, MessageStatusTypeCodeType.Unanswered);

                for (int k = 0; k < messages.Count; k++)
                {
                    MemberMessageExchangeType mmet  = messages[k];
                    EbayMessageType           email = new EbayMessageType();

                    email.Body          = mmet.Question.Body;
                    email.CreationDate  = mmet.CreationDate;
                    email.MessageId     = mmet.Question.MessageID;
                    email.MessageStatus = "未回复";
                    email.MessageType   = MessageType(mmet.Question.MessageType.ToString());
                    email.SenderEmail   = mmet.Question.SenderEmail;
                    email.SenderID      = mmet.Question.SenderID;
                    email.Subject       = mmet.Question.Subject;
                    if (mmet.Item != null)
                    {
                        email.ItemId = mmet.Item.ItemID;
                        email.Title  = mmet.Item.Title;
                    }
                    email.Shop     = mmet.Question.RecipientID[0];
                    email.CreateOn = DateTime.Now;
                    email.ReplayOn = Convert.ToDateTime("2000-01-01");
                    if (HasExist(email.MessageId, NSession))
                    {
                    }
                    else
                    {
                        NSession.Save(email);
                        NSession.Flush();
                    }
                }
                i++;
            } while (messages != null && messages.Count == 100);
        }
Ejemplo n.º 3
0
        public AlertBase PopulateAlert(Account account, ClientAlertEventType item)
        {
            if (item is FeedbackLeftEventType)
            {
                return(null);                // Feedback received alerts are kind of worthless
            }
            if (item is ItemMarkedPaidEventType && ((ItemMarkedPaidEventType)item).SellerUserID == account.UserId)
            {
                return(null);                // Not interested in alerts informing us we have marked the item as paid.
            }
            // Feedback Received
            if (item is FeedbackReceivedEventType)
            {
                FeedbackReceivedEventType eventType = (FeedbackReceivedEventType)item;
                FeedbackReceivedAlert     alert     = new FeedbackReceivedAlert();

                alert.Account        = account;
                alert.CommentingUser = new User(account.Site, eventType.FeedbackDetail.CommentingUser, eventType.FeedbackDetail.FeedbackScore);
                alert.Item           = new Item(account.Site, eventType.FeedbackDetail.ItemID, eventType.FeedbackDetail.ItemTitle, eventType.FeedbackDetail.ItemPrice);
                alert.CommentText    = eventType.FeedbackDetail.CommentText;
                alert.CommentType    = eventType.FeedbackDetail.CommentType;

                return(alert);
            }             // AskSellerQuestion
            else if (item is AskSellerQuestionEventType)
            {
                AskSellerQuestionEventType eventType = (AskSellerQuestionEventType)item;
                MessageAlert alert = new MessageAlert();

                // Extract some more details from eBay
                {
                    EbayContext       context         = new EbayContext(account.EbayToken);
                    GetMemberMessages getMessagesCall = new GetMemberMessages(context);
                    getMessagesCall.MessageId = eventType.MessageID;

                    getMessagesCall.Execute();
                    MemberMessageExchangeType messageType = getMessagesCall.Message;

                    alert.Account = account;
                    alert.Sender  = new User(account.Site, messageType.Question.SenderID);
                    alert.Subject = messageType.Question.Subject;
                    alert.Body    = messageType.Question.Body.Replace("&apos;", "'");
                    alert.Item    = new Item(account.Site, messageType.Item.ItemID, messageType.Item.Title);

                    foreach (MessageMediaType mediaType in messageType.MessageMedia)
                    {
                        PictureDownloader downloader = new PictureDownloader();
                        Bitmap            bitmap     = downloader.DownloadImage(mediaType.MediaURL);
                        Media             media      = new Media(bitmap, mediaType.MediaURL);
                        alert.MediaList.Add(media);
                    }
                }

                return(alert);
            }
            else if (item is EndOfTransactionEventType && item.EventType == ClientAlertsEventTypeCodeType.FixedPriceTransaction)
            {
                EndOfTransactionEventType eventType = (EndOfTransactionEventType)item;
                ItemSoldAlert             alert     = new ItemSoldAlert();

                alert.TransactionId = eventType.Transaction.TransactionID;
                alert.Account       = account;
                alert.Item          = new Item(account.Site, eventType.ItemID, eventType.Title, eventType.CurrentPrice);
                alert.Buyer         = new User(account.Site, eventType.Transaction.BuyerUserID);
                alert.AmountPaid    = eventType.Transaction.AmountPaid;
                alert.QuantitySold  = eventType.Transaction.QuantitySold;

                if (!String.IsNullOrEmpty(eventType.GalleryURL))
                {
                    PictureDownloader downloader = new PictureDownloader();
                    Bitmap            bitmap     = downloader.DownloadImage(eventType.GalleryURL);
                    Media             media      = new Media(bitmap, eventType.GalleryURL);
                    alert.Item.Media = media;
                }

                return(alert);
            }

            return(null);
        }
Ejemplo n.º 4
0
        private List <ZohoLead> GetMemberMessageLead(List <ZohoLead> leads, ItemType item, MemberMessageExchangeType message)
        {
            try
            {
                var checkLead = leads.Where(i => i.UserId == message.Question.SenderID).FirstOrDefault();
                if (checkLead == null)
                {
                    var lead = new ZohoLead()
                    {
                        //ItemDescription = item.Description,
                        UserId = message.Question.SenderID,
                        //PageViews = (int)message.Item.HitCount,
                        //Watchers = (int)message.Item.WatchCount,
                        EbayItemId    = item.ItemID,
                        Email         = message.Question.SenderEmail,
                        MemberMessage = $"{message.CreationDate} - {message.Question.Body}\n"
                    };

                    apiContext = GetApiContext();
                    GetItemCall call = new GetItemCall(apiContext);
                    call.ItemID            = item.ItemID;
                    call.IncludeWatchCount = true;
                    call.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);
                    ItemType ebayItem = call.GetItem(item.ItemID);

                    lead.ItemDescription = ebayItem.Description;
                    lead.PageViews       = (int)ebayItem.HitCount;
                    lead.Watchers        = (int)ebayItem.WatchCount;

                    leads.Add(lead);
                }
                else
                {
                    checkLead.MemberMessage += $"{message.CreationDate} - {message.Question.Body}\n";
                }

                return(leads);
            }
            catch (Exception ex)
            {
                Trace.TraceError(ex.Message);
                throw ex;
            }
        }