Esempio n. 1
0
        public void AskSellerQuestion()
        {
            JsonServiceStub stub = new JsonServiceStub(@"{
					""Timestamp"":""2014-08-21T04:05:18.408Z"",
					""Ack"":""Success"",
					""Build"":""E847_CORE_APINOT_16496971_R1"",
					""Version"":""847"",
					""ClientAlerts"":
					{
						""ClientAlertEvent"":[
						{
							""EventType"":""AskSellerQuestion"",
							""AskSellerQuestion"":
							{
								""EventType"":""AskSellerQuestion"",
								""Timestamp"":""2014-08-21T03:59:52.787Z"",
								""ItemID"":""121403478858"",
								""Title"":""HURLEY Mens ALL STATE Black T Shirt Top (M L XL XXL) NEW"",
								""MessageID"":""887697677018"",
								""MessageType"":""AskSellerQuestion""
							}
						}]
					},
					""SessionData"":""AQAAAUf13OQAAA1TSUQ9NDA1MTI2M3xTVD0xfDF8TEFDVFY9MTQwODU5MzkxODM5M3xFSFdNPTE4MDUwNzc4NTMzfFRJRFg9MXxMSVVQPTE0MDg1OTMyNjE5MjJ8UExIUz1bXea4wEEeBR+lvVNEOtRmM9Gnk4Ei""
					}"                    );

            GetUserAlertsCall call = new GetUserAlertsCall(this.Logger, stub);

            call.Execute();

            Assert.IsNotNull(call.ApiResponse.ClientAlerts);
            Assert.IsNotNull(call.ApiResponse.ClientAlerts.ClientAlertEvent);
            Assert.AreEqual(ClientAlertsEventTypeCodeType.AskSellerQuestion, call.ApiResponse.ClientAlerts.ClientAlertEvent[0].EventType);
            Assert.AreEqual(1, call.ApiResponse.ClientAlerts.ClientAlertEvent.Length);
            Assert.IsInstanceOfType(call.ApiResponse.ClientAlerts.ClientAlertEvent[0], typeof(AskSellerQuestionEventType));

            AskSellerQuestionEventType eventType = (AskSellerQuestionEventType)call.ApiResponse.ClientAlerts.ClientAlertEvent[0];

            Assert.AreEqual(new DateTime(2014, 08, 21, 3, 59, 52, 787, DateTimeKind.Utc), eventType.Timestamp);
            Assert.AreEqual("121403478858", eventType.ItemID);
            Assert.AreEqual("HURLEY Mens ALL STATE Black T Shirt Top (M L XL XXL) NEW", eventType.Title);
            Assert.AreEqual("887697677018", eventType.MessageID);
            Assert.AreEqual(MessageTypeCodeType.AskSellerQuestion, eventType.MessageType);
        }
Esempio n. 2
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("'", "'");
                    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);
        }