Skip to content

Commit cf1accc

Browse files
authored
Merge pull request #60 from gcuadrado/main
Mapped ProcessingReport.xsd to C# classes
2 parents 912a393 + f2b7d71 commit cf1accc

File tree

2 files changed

+87
-6
lines changed

2 files changed

+87
-6
lines changed
Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,62 @@
11
using System;
22
using System.Collections.Generic;
33
using System.Text;
4+
using System.Xml.Serialization;
45

56
namespace FikaAmazonAPI.ConstructFeed.Messages
67
{
78
public partial class ProcessingReportMessage
89
{
9-
}
10+
[XmlElement(ElementName = "DocumentTransactionID")]
11+
public string DocumentTransactionID { get; set; }
12+
[XmlElement(ElementName = "StatusCode")]
13+
public string StatusCode { get; set; }
14+
[XmlElement(ElementName = "ProcessingSummary")]
15+
public ProcessingSummary ProcessingSummary { get; set; }
16+
[XmlElement(ElementName = "Result")]
17+
public List<Result> Result { get; set; }
18+
}
19+
[XmlRoot(ElementName = "ProcessingSummary")]
20+
public class ProcessingSummary
21+
{
22+
[XmlElement(ElementName = "MessagesProcessed")]
23+
public string MessagesProcessed { get; set; }
24+
[XmlElement(ElementName = "MessagesSuccessful")]
25+
public string MessagesSuccessful { get; set; }
26+
[XmlElement(ElementName = "MessagesWithError")]
27+
public string MessagesWithError { get; set; }
28+
[XmlElement(ElementName = "MessagesWithWarning")]
29+
public string MessagesWithWarning { get; set; }
30+
}
31+
32+
[XmlRoot(ElementName = "Result")]
33+
public class Result
34+
{
35+
[XmlElement(ElementName = "MessageID")]
36+
public string MessageID { get; set; }
37+
[XmlElement(ElementName = "ResultCode")]
38+
public string ResultCode { get; set; }
39+
[XmlElement(ElementName = "ResultMessageCode")]
40+
public string ResultMessageCode { get; set; }
41+
[XmlElement(ElementName = "ResultDescription")]
42+
public string ResultDescription { get; set; }
43+
[XmlElement(ElementName = "AdditionalInfo")]
44+
public AdditionalInfo AdditionalInfo { get; set; }
45+
}
46+
47+
[XmlRoot(ElementName = "AdditionalInfo")]
48+
public class AdditionalInfo
49+
{
50+
[XmlElement(ElementName = "SKU")]
51+
public string SKU { get; set; }
52+
[XmlElement(ElementName = "FulfillmentCenterID")]
53+
public string FulfillmentCenterID { get; set; }
54+
[XmlElement(ElementName = "AmazonOrderID")]
55+
public string AmazonOrderID { get; set; }
56+
[XmlElement(ElementName = "AmazonOrderItemCode")]
57+
public string AmazonOrderItemCode { get; set; }
58+
}
59+
60+
61+
1062
}

Source/FikaAmazonAPI/Services/FeedService.cs

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
using FikaAmazonAPI.AmazonSpApiSDK.Models.Feeds;
2+
using FikaAmazonAPI.ConstructFeed;
3+
using FikaAmazonAPI.ConstructFeed.Messages;
24
using FikaAmazonAPI.Parameter.Feed;
35
using FikaAmazonAPI.Utils;
46
using System;
@@ -57,7 +59,7 @@ private GetFeedsResponseV00 GetFeedsByNextToken(string nextToken)
5759

5860
public CreateFeedResult CreateFeed(CreateFeedSpecification createFeedSpecification)
5961
{
60-
CreateAuthorizedRequest(FeedsApiUrls.CreateFeed, RestSharp.Method.POST,postJsonObj: createFeedSpecification);
62+
CreateAuthorizedRequest(FeedsApiUrls.CreateFeed, RestSharp.Method.POST, postJsonObj: createFeedSpecification);
6163
var response = ExecuteRequest<CreateFeedResult>();
6264

6365
return response;
@@ -66,7 +68,7 @@ public Feed GetFeed(string feedId)
6668
{
6769
CreateAuthorizedRequest(FeedsApiUrls.GetFeed(feedId), RestSharp.Method.GET);
6870
var response = ExecuteRequest<Feed>();
69-
if(response!=null)
71+
if (response != null)
7072
return response;
7173
return null;
7274
}
@@ -88,6 +90,24 @@ public FeedDocument GetFeedDocument(string feedDocumentId)
8890
return null;
8991
}
9092

93+
public ProcessingReportMessage GetFeedDocumentProcessingReport(string url)
94+
{
95+
ProcessingReportMessage processingReport = null;
96+
try
97+
{
98+
var stream = GetStreamFromUrl(url);
99+
var xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(FeedAmazonEnvelope));
100+
var response = (FeedAmazonEnvelope)xmlSerializer.Deserialize(stream);
101+
processingReport= response.Message[0].ProcessingReport;
102+
}
103+
catch(Exception ex)
104+
{
105+
106+
}
107+
return processingReport;
108+
109+
}
110+
91111
public CreateFeedDocumentResult CreateFeedDocument(ContentType contentType)
92112
{
93113
var contxt = LinqHelper.GetEnumMemberValue(contentType);
@@ -106,7 +126,7 @@ public CreateFeedDocumentResult CreateFeedDocument(ContentType contentType)
106126
/// <param name="xml"></param>
107127
/// <param name="feedType"></param>
108128
/// <returns></returns>
109-
public string SubmitFeed(string xml, FeedType feedType,FeedOptions feedOptions=null)
129+
public string SubmitFeed(string xml, FeedType feedType, FeedOptions feedOptions = null)
110130
{
111131

112132
//FIrst Step get doc
@@ -120,14 +140,23 @@ public string SubmitFeed(string xml, FeedType feedType,FeedOptions feedOptions=n
120140
FeedType = feedType.ToString(),
121141
InputFeedDocumentId = feedCreate.FeedDocumentId,
122142
MarketplaceIds = new List<string> { MarketPlace.ID },
123-
FeedOptions= feedOptions
143+
FeedOptions = feedOptions
124144
};
125145

126146
//Submit XML
127-
var feed=CreateFeed(createFeedSpecification);
147+
var feed = CreateFeed(createFeedSpecification);
128148

129149
return feed.FeedId;
130150
}
151+
private static Stream GetStreamFromUrl(string url)
152+
{
153+
byte[] imageData = null;
154+
155+
using (var wc = new System.Net.WebClient())
156+
imageData = wc.DownloadData(url);
157+
158+
return new MemoryStream(imageData);
159+
}
131160

132161
private string postXMLData(string destinationUrl, string requestXml)
133162
{

0 commit comments

Comments
 (0)