public async Task <MwsResponse <SubmitFeedResponse> > SubmitFeed <T>(List <T> messageItems, AmazonEnvelopeMessageType messageType, DateTime effectiveDate, string feedType, bool purgeAndReplace = false, AmazonEnvelopeMessageOperationType operationType = AmazonEnvelopeMessageOperationType.Update) where T : AmazonMessageChoice { if (typeof(T).Name != messageType.ToString()) { return(new MwsResponse <SubmitFeedResponse> { Error = new ErrorResponse(), ExceptionMessage = "Feed items do not match given messageChoice" }); } var parameters = new SortedDictionary <string, string>(new SortDecendingBytes()); var envelope = InstantiateEnvelope <T>(this.SellerId, this.MarketPlaceId, purgeAndReplace, messageItems, messageType, effectiveDate, operationType); parameters["PurgeAndReplace"] = purgeAndReplace.ToString().ToLower(); parameters["FeedType"] = feedType; try { var result = await SendMws <AmazonEnvelope>(envelope, parameters, "SubmitFeed"); var resultText = await result.Content.ReadAsStringAsync(); var submitFeedResult = MwsUtilities.Deserialize <SubmitFeedResponse>(resultText); if (submitFeedResult != null) { return(new MwsResponse <SubmitFeedResponse> { Result = submitFeedResult }); } var submitFeedError = MwsUtilities.Deserialize <ErrorResponse>(resultText); if (submitFeedError != null) { return(new MwsResponse <SubmitFeedResponse> { Error = submitFeedError }); } return(new MwsResponse <SubmitFeedResponse> { Error = new ErrorResponse(), ExceptionMessage = "Unknown Error" }); } catch (Exception ex) { return(new MwsResponse <SubmitFeedResponse> { Error = new ErrorResponse(), ExceptionMessage = ex.ToString() }); } }
public async Task <MwsResponse <List <ProcessingReport> > > GetFeedResult(string feedSubmissionId) { var parameters = new SortedDictionary <string, string>(new SortDecendingBytes()); parameters["FeedSubmissionId"] = feedSubmissionId; try { var result = await SendMws <AmazonEnvelope>(null, parameters, "GetFeedSubmissionResult"); var resultText = await result.Content.ReadAsStringAsync(); var getFeedResult = MwsUtilities.Deserialize <AmazonEnvelope>(resultText); if (getFeedResult != null) { var reportList = new List <ProcessingReport>(); foreach (var message in getFeedResult.Message) { reportList.Add(message.Item as ProcessingReport); } return(new MwsResponse <List <ProcessingReport> > { Result = reportList }); } var getFeedError = MwsUtilities.Deserialize <ErrorResponse>(resultText); if (getFeedError != null) { return(new MwsResponse <List <ProcessingReport> > { Error = getFeedError }); } return(new MwsResponse <List <ProcessingReport> > { Error = new ErrorResponse(), ExceptionMessage = "Unknown Error" }); } catch (Exception ex) { return(new MwsResponse <List <ProcessingReport> > { Error = new ErrorResponse(), ExceptionMessage = ex.ToString() }); } }
public static async Task <T> GetResult <T>(this string message) { //var messageText = await message.Content.ReadAsStringAsync(); return(MwsUtilities.Deserialize <T>(message)); }