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); }
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); }