1
1
using System ;
2
2
using System . Collections . Generic ;
3
+ using System . Threading . Tasks ;
3
4
using static FikaAmazonAPI . Utils . Constants ;
4
5
5
6
namespace FikaAmazonAPI . ReportGeneration
@@ -16,21 +17,23 @@ public ReportManager(AmazonConnection amazonConnection)
16
17
}
17
18
18
19
#region feedback
19
- public List < FeedbackOrderRow > GetFeedbackFromDays ( int days )
20
+ public List < FeedbackOrderRow > GetFeedbackFromDays ( int days ) =>
21
+ GetFeedbackFromDaysAsync ( days ) . GetAwaiter ( ) . GetResult ( ) ;
22
+ public async Task < List < FeedbackOrderRow > > GetFeedbackFromDaysAsync ( int days )
20
23
{
21
24
DateTime fromDate = DateTime . UtcNow . AddDays ( - 1 * days ) ;
22
25
DateTime toDate = DateTime . UtcNow ;
23
- return GetFeedbackFromDate ( fromDate , toDate ) ;
26
+ return await GetFeedbackFromDateAsync ( fromDate , toDate ) ;
24
27
}
25
- public List < FeedbackOrderRow > GetFeedbackFromDate ( DateTime fromDate , DateTime toDate )
28
+ public async Task < List < FeedbackOrderRow > > GetFeedbackFromDateAsync ( DateTime fromDate , DateTime toDate )
26
29
{
27
- var path = GetFeedbackFromDate ( _amazonConnection , fromDate , toDate ) ;
30
+ var path = await GetFeedbackFromDateAsync ( _amazonConnection , fromDate , toDate ) ;
28
31
FeedbackOrderReport report = new FeedbackOrderReport ( path , _amazonConnection . RefNumber ) ;
29
32
return report . Data ;
30
33
}
31
- private string GetFeedbackFromDate ( AmazonConnection amazonConnection , DateTime fromDate , DateTime toDate )
34
+ private async Task < string > GetFeedbackFromDateAsync ( AmazonConnection amazonConnection , DateTime fromDate , DateTime toDate )
32
35
{
33
- return amazonConnection . Reports . CreateReportAndDownloadFile ( ReportTypes . GET_SELLER_FEEDBACK_DATA , fromDate ) ;
36
+ return await amazonConnection . Reports . CreateReportAndDownloadFileAsync ( ReportTypes . GET_SELLER_FEEDBACK_DATA , fromDate ) ;
34
37
}
35
38
36
39
#endregion
@@ -39,93 +42,97 @@ private string GetFeedbackFromDate(AmazonConnection amazonConnection, DateTime f
39
42
#endregion
40
43
41
44
#region Reimbursement
42
- public IList < ReimbursementsOrderRow > GetReimbursementsOrder ( int days )
45
+ public IList < ReimbursementsOrderRow > GetReimbursementsOrder ( int days ) =>
46
+ GetReimbursementsOrderAsync ( days ) . GetAwaiter ( ) . GetResult ( ) ;
47
+ public async Task < IList < ReimbursementsOrderRow > > GetReimbursementsOrderAsync ( int days )
43
48
{
44
49
DateTime fromDate = DateTime . UtcNow . AddDays ( - 1 * days ) ;
45
50
DateTime toDate = DateTime . UtcNow ;
46
- return GetReimbursementsOrder ( fromDate , toDate ) ;
51
+ return await GetReimbursementsOrderAsync ( fromDate , toDate ) ;
47
52
}
48
- public IList < ReimbursementsOrderRow > GetReimbursementsOrder ( DateTime fromDate , DateTime toDate )
53
+ public async Task < IList < ReimbursementsOrderRow > > GetReimbursementsOrderAsync ( DateTime fromDate , DateTime toDate )
49
54
{
50
- var path = GetReimbursementsOrder ( _amazonConnection , fromDate , toDate ) ;
55
+ var path = await GetReimbursementsOrderAsync ( _amazonConnection , fromDate , toDate ) ;
51
56
ReimbursementsOrderReport report = new ReimbursementsOrderReport ( path , _amazonConnection . RefNumber ) ;
52
57
return report . Data ;
53
58
}
54
59
55
- private string GetReimbursementsOrder ( AmazonConnection amazonConnection , DateTime fromDate , DateTime toDate )
60
+ private async Task < string > GetReimbursementsOrderAsync ( AmazonConnection amazonConnection , DateTime fromDate , DateTime toDate )
56
61
{
57
- return amazonConnection . Reports . CreateReportAndDownloadFile ( ReportTypes . GET_FBA_REIMBURSEMENTS_DATA , fromDate , toDate ) ;
62
+ return await amazonConnection . Reports . CreateReportAndDownloadFileAsync ( ReportTypes . GET_FBA_REIMBURSEMENTS_DATA , fromDate , toDate ) ;
58
63
}
59
-
60
-
61
64
#endregion
62
65
63
66
#region ReturnFBAOrder
64
- public List < ReturnFBAOrderRow > GetReturnFBAOrder ( int days )
67
+ public List < ReturnFBAOrderRow > GetReturnFBAOrder ( int days ) =>
68
+ GetReturnFBAOrderAsync ( days ) . GetAwaiter ( ) . GetResult ( ) ;
69
+ public async Task < List < ReturnFBAOrderRow > > GetReturnFBAOrderAsync ( int days )
65
70
{
66
71
DateTime fromDate = DateTime . UtcNow . AddDays ( - 1 * days ) ;
67
72
DateTime toDate = DateTime . UtcNow ;
68
- return GetReturnFBAOrder ( fromDate , toDate ) ;
73
+ return await GetReturnFBAOrderAsync ( fromDate , toDate ) ;
69
74
}
70
- public List < ReturnFBAOrderRow > GetReturnFBAOrder ( DateTime fromDate , DateTime toDate )
75
+ public async Task < List < ReturnFBAOrderRow > > GetReturnFBAOrderAsync ( DateTime fromDate , DateTime toDate )
71
76
{
72
- var path = GetReturnFBAOrder ( _amazonConnection , fromDate , toDate ) ;
77
+ var path = await GetReturnFBAOrderAsync ( _amazonConnection , fromDate , toDate ) ;
73
78
ReturnFBAOrderReport report = new ReturnFBAOrderReport ( path , _amazonConnection . RefNumber ) ;
74
-
79
+
75
80
return report . Data ;
76
81
}
77
82
78
- private string GetReturnFBAOrder ( AmazonConnection amazonConnection , DateTime fromDate , DateTime toDate )
83
+ private async Task < string > GetReturnFBAOrderAsync ( AmazonConnection amazonConnection , DateTime fromDate , DateTime toDate )
79
84
{
80
- return amazonConnection . Reports . CreateReportAndDownloadFile ( ReportTypes . GET_FBA_FULFILLMENT_CUSTOMER_RETURNS_DATA , fromDate , toDate ) ;
85
+ return await amazonConnection . Reports . CreateReportAndDownloadFileAsync ( ReportTypes . GET_FBA_FULFILLMENT_CUSTOMER_RETURNS_DATA , fromDate , toDate ) ;
81
86
}
82
87
83
88
84
89
#endregion
85
90
86
91
#region ReturnFBMOrder
87
- public List < ReturnFBMOrderRow > GetReturnMFNOrder ( int days )
92
+ public List < ReturnFBMOrderRow > GetReturnMFNOrder ( int days ) =>
93
+ GetReturnMFNOrderAsync ( days ) . GetAwaiter ( ) . GetResult ( ) ;
94
+ public async Task < List < ReturnFBMOrderRow > > GetReturnMFNOrderAsync ( int days )
88
95
{
89
96
DateTime fromDate = DateTime . UtcNow . AddDays ( - 1 * days ) ;
90
97
DateTime toDate = DateTime . UtcNow ;
91
- return GetReturnMFNOrder ( fromDate , toDate ) ;
98
+ return await GetReturnMFNOrderAsync ( fromDate , toDate ) ;
92
99
}
93
- public List < ReturnFBMOrderRow > GetReturnMFNOrder ( DateTime fromDate , DateTime toDate )
100
+ public async Task < List < ReturnFBMOrderRow > > GetReturnMFNOrderAsync ( DateTime fromDate , DateTime toDate )
94
101
{
95
- List < ReturnFBMOrderRow > list = new List < ReturnFBMOrderRow > ( ) ;
102
+ List < ReturnFBMOrderRow > list = new List < ReturnFBMOrderRow > ( ) ;
96
103
var dateList = ReportDateRange . GetDateRange ( fromDate , toDate , DAY_60 ) ;
97
104
foreach ( var date in dateList )
98
105
{
99
- var path = GetReturnMFNOrder ( _amazonConnection , date . StartDate , date . EndDate ) ;
106
+ var path = await GetReturnMFNOrderAsync ( _amazonConnection , date . StartDate , date . EndDate ) ;
100
107
101
108
ReturnFBMOrderReport report = new ReturnFBMOrderReport ( path , _amazonConnection . RefNumber ) ;
102
109
list . AddRange ( report . Data ) ;
103
110
}
104
111
return list ;
105
112
}
106
- public string GetReturnMFNOrder ( AmazonConnection amazonConnection , DateTime fromDate , DateTime toDate )
113
+ public async Task < string > GetReturnMFNOrderAsync ( AmazonConnection amazonConnection , DateTime fromDate , DateTime toDate )
107
114
{
108
- return amazonConnection . Reports . CreateReportAndDownloadFile ( ReportTypes . GET_FLAT_FILE_RETURNS_DATA_BY_RETURN_DATE , fromDate , toDate ) ;
115
+ return await amazonConnection . Reports . CreateReportAndDownloadFileAsync ( ReportTypes . GET_FLAT_FILE_RETURNS_DATA_BY_RETURN_DATE , fromDate , toDate ) ;
109
116
}
110
-
111
-
112
117
#endregion
113
118
114
119
#region Settlement
115
- public List < SettlementOrderRow > GetSettlementOrder ( int days )
120
+ public List < SettlementOrderRow > GetSettlementOrder ( int days ) =>
121
+ GetSettlementOrderAsync ( days ) . GetAwaiter ( ) . GetResult ( ) ;
122
+ public async Task < List < SettlementOrderRow > > GetSettlementOrderAsync ( int days )
116
123
{
117
124
DateTime fromDate = DateTime . UtcNow . AddDays ( - 1 * days ) ;
118
125
DateTime toDate = DateTime . UtcNow ;
119
- return GetSettlementOrder ( fromDate , toDate ) ;
126
+ return await GetSettlementOrderAsync ( fromDate , toDate ) ;
120
127
}
121
- public List < SettlementOrderRow > GetSettlementOrder ( DateTime fromDate , DateTime toDate )
128
+ public async Task < List < SettlementOrderRow > > GetSettlementOrderAsync ( DateTime fromDate , DateTime toDate )
122
129
{
123
130
List < SettlementOrderRow > list = new List < SettlementOrderRow > ( ) ;
124
131
var totalDays = ( DateTime . UtcNow - fromDate ) . TotalDays ;
125
132
if ( totalDays > 90 )
126
133
fromDate = DateTime . UtcNow . AddDays ( - 90 ) ;
127
134
128
- var paths = GetSettlementOrder ( _amazonConnection , fromDate , toDate ) ;
135
+ var paths = await GetSettlementOrderAsync ( _amazonConnection , fromDate , toDate ) ;
129
136
foreach ( var path in paths )
130
137
{
131
138
SettlementOrderReport report = new SettlementOrderReport ( path , _amazonConnection . RefNumber ) ;
@@ -134,9 +141,9 @@ public List<SettlementOrderRow> GetSettlementOrder(DateTime fromDate, DateTime t
134
141
135
142
return list ;
136
143
}
137
- private IList < string > GetSettlementOrder ( AmazonConnection amazonConnection , DateTime fromDate , DateTime toDate )
144
+ private async Task < IList < string > > GetSettlementOrderAsync ( AmazonConnection amazonConnection , DateTime fromDate , DateTime toDate )
138
145
{
139
- return amazonConnection . Reports . DownloadExistingReportAndDownloadFile ( ReportTypes . GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2 , fromDate , toDate ) ;
146
+ return await amazonConnection . Reports . DownloadExistingReportAndDownloadFileAsync ( ReportTypes . GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2 , fromDate , toDate ) ;
140
147
}
141
148
#endregion
142
149
@@ -153,76 +160,84 @@ private string GetInventoryQty(AmazonConnection amazonConnection)
153
160
#endregion
154
161
155
162
#region GetInventoryAging
156
- public List < InventoryAgingRow > GetInventoryAging ( )
163
+ public List < InventoryAgingRow > GetInventoryAging ( ) =>
164
+ GetInventoryAgingAsync ( ) . GetAwaiter ( ) . GetResult ( ) ;
165
+ public async Task < List < InventoryAgingRow > > GetInventoryAgingAsync ( )
157
166
{
158
- var path = GetInventoryAging ( _amazonConnection ) ;
167
+ var path = await GetInventoryAgingAsync ( _amazonConnection ) ;
159
168
InventoryAgingReport report = new InventoryAgingReport ( path , _amazonConnection . RefNumber ) ;
160
169
return report . Data ;
161
170
}
162
- private string GetInventoryAging ( AmazonConnection amazonConnection )
171
+ private async Task < string > GetInventoryAgingAsync ( AmazonConnection amazonConnection )
163
172
{
164
- return amazonConnection . Reports . CreateReportAndDownloadFile ( ReportTypes . GET_FBA_INVENTORY_AGED_DATA ) ;
173
+ return await amazonConnection . Reports . CreateReportAndDownloadFileAsync ( ReportTypes . GET_FBA_INVENTORY_AGED_DATA ) ;
165
174
}
166
175
#endregion
167
176
168
177
#region Products
169
- public List < ProductsRow > GetProducts ( )
178
+ public List < ProductsRow > GetProducts ( ) =>
179
+ GetProductsAsync ( ) . GetAwaiter ( ) . GetResult ( ) ;
180
+ public async Task < List < ProductsRow > > GetProductsAsync ( )
170
181
{
171
- var path = GetProducts ( _amazonConnection ) ;
182
+ var path = await GetProductsAsync ( _amazonConnection ) ;
172
183
ProductsReport report = new ProductsReport ( path , _amazonConnection . RefNumber ) ;
173
184
return report . Data ;
174
185
}
175
- private string GetProducts ( AmazonConnection amazonConnection )
186
+ private async Task < string > GetProductsAsync ( AmazonConnection amazonConnection )
176
187
{
177
- return amazonConnection . Reports . CreateReportAndDownloadFile ( ReportTypes . GET_MERCHANT_LISTINGS_ALL_DATA ) ;
188
+ return await amazonConnection . Reports . CreateReportAndDownloadFileAsync ( ReportTypes . GET_MERCHANT_LISTINGS_ALL_DATA ) ;
178
189
}
179
190
#endregion
180
191
181
192
#region Orders
182
- public List < OrdersRow > GetOrdersByLastUpdate ( int days )
193
+ public List < OrdersRow > GetOrdersByLastUpdate ( int days ) =>
194
+ GetOrdersByLastUpdateAsync ( days ) . GetAwaiter ( ) . GetResult ( ) ;
195
+ public async Task < List < OrdersRow > > GetOrdersByLastUpdateAsync ( int days )
183
196
{
184
197
DateTime fromDate = DateTime . UtcNow . AddDays ( - 1 * days ) ;
185
198
DateTime toDate = DateTime . UtcNow ;
186
- return GetOrdersByLastUpdate ( fromDate , toDate ) ;
199
+ return await GetOrdersByLastUpdateAsync ( fromDate , toDate ) ;
187
200
}
188
- public List < OrdersRow > GetOrdersByLastUpdate ( DateTime fromDate , DateTime toDate )
201
+ public async Task < List < OrdersRow > > GetOrdersByLastUpdateAsync ( DateTime fromDate , DateTime toDate )
189
202
{
190
203
List < OrdersRow > list = new List < OrdersRow > ( ) ;
191
204
var dateList = ReportDateRange . GetDateRange ( fromDate , toDate , DAY_30 ) ;
192
205
foreach ( var range in dateList )
193
206
{
194
- var path = GetOrdersByLastUpdate ( _amazonConnection , range . StartDate , range . EndDate ) ;
207
+ var path = await GetOrdersByLastUpdateAsync ( _amazonConnection , range . StartDate , range . EndDate ) ;
195
208
OrdersReport report = new OrdersReport ( path , _amazonConnection . RefNumber ) ;
196
209
list . AddRange ( report . Data ) ;
197
210
}
198
211
return list ;
199
212
}
200
- private string GetOrdersByLastUpdate ( AmazonConnection amazonConnection , DateTime fromDate , DateTime toDate )
213
+ private async Task < string > GetOrdersByLastUpdateAsync ( AmazonConnection amazonConnection , DateTime fromDate , DateTime toDate )
201
214
{
202
- return amazonConnection . Reports . CreateReportAndDownloadFile ( ReportTypes . GET_FLAT_FILE_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL , fromDate , toDate ) ;
215
+ return await amazonConnection . Reports . CreateReportAndDownloadFileAsync ( ReportTypes . GET_FLAT_FILE_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL , fromDate , toDate ) ;
203
216
}
204
217
205
- public List < OrdersRow > GetOrdersByOrderDate ( int days )
218
+ public List < OrdersRow > GetOrdersByOrderDate ( int days ) =>
219
+ GetOrdersByOrderDateAsync ( days ) . GetAwaiter ( ) . GetResult ( ) ;
220
+ public async Task < List < OrdersRow > > GetOrdersByOrderDateAsync ( int days )
206
221
{
207
222
DateTime fromDate = DateTime . UtcNow . AddDays ( - 1 * days ) ;
208
223
DateTime toDate = DateTime . UtcNow ;
209
- return GetOrdersByOrderDate ( fromDate , toDate ) ;
224
+ return await GetOrdersByOrderDateAsync ( fromDate , toDate ) ;
210
225
}
211
- public List < OrdersRow > GetOrdersByOrderDate ( DateTime fromDate , DateTime toDate )
226
+ public async Task < List < OrdersRow > > GetOrdersByOrderDateAsync ( DateTime fromDate , DateTime toDate )
212
227
{
213
228
List < OrdersRow > list = new List < OrdersRow > ( ) ;
214
- var dateList = ReportDateRange . GetDateRange ( fromDate , toDate , DAY_30 ) ;
229
+ var dateList = ReportDateRange . GetDateRange ( fromDate , toDate , DAY_30 ) ;
215
230
foreach ( var range in dateList )
216
231
{
217
- var path = GetOrdersByOrderDate ( _amazonConnection , range . StartDate , range . EndDate ) ;
232
+ var path = await GetOrdersByOrderDateAsync ( _amazonConnection , range . StartDate , range . EndDate ) ;
218
233
OrdersReport report = new OrdersReport ( path , _amazonConnection . RefNumber ) ;
219
234
list . AddRange ( report . Data ) ;
220
235
}
221
236
return list ;
222
237
}
223
- private string GetOrdersByOrderDate ( AmazonConnection amazonConnection , DateTime fromDate , DateTime toDate )
238
+ private async Task < string > GetOrdersByOrderDateAsync ( AmazonConnection amazonConnection , DateTime fromDate , DateTime toDate )
224
239
{
225
- return amazonConnection . Reports . CreateReportAndDownloadFile ( ReportTypes . GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL , fromDate , toDate ) ;
240
+ return await amazonConnection . Reports . CreateReportAndDownloadFileAsync ( ReportTypes . GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL , fromDate , toDate ) ;
226
241
}
227
242
#endregion
228
243
0 commit comments