11using System ;
22using System . Collections . Generic ;
3+ using System . ComponentModel . Design ;
34using System . Data ;
45using System . Linq ;
56using System . Threading ;
@@ -85,50 +86,7 @@ public DataTable WorkflowSubmission(DataTable filepaths, DataTable uris, decimal
8586
8687 public DataTable ListSubmissions ( DataTable submissionIds , DataTable workflowIds , string inputFileName , string status , string retrieved , decimal limit = 1000 )
8788 {
88- bool ? parsedRetrieved = null ;
89- SubmissionStatus ? parsedStatus = null ;
90-
91- if ( string . IsNullOrWhiteSpace ( inputFileName ) )
92- {
93- inputFileName = null ;
94- }
95-
96- if ( ! string . IsNullOrEmpty ( status ) )
97- {
98- if ( ! Enum . TryParse ( status , out SubmissionStatus statusValue ) )
99- {
100- throw new ArgumentException ( "Wrong status value provided. Please provide one of the valid submission statuses." ) ;
101- }
102- else
103- {
104- parsedStatus = statusValue ;
105- }
106- }
107-
108- if ( ! string . IsNullOrEmpty ( retrieved ) )
109- {
110- if ( ! bool . TryParse ( retrieved , out bool retrievedValue ) )
111- {
112- throw new ArgumentException ( "Wrong retreived value provided. Please provide \" True\" or \" False\" as a value." ) ;
113- }
114- else
115- {
116- parsedRetrieved = retrievedValue ;
117- }
118- }
119-
120- var submissionFilter = new SubmissionFilter
121- {
122- InputFilename = inputFileName ,
123- Status = parsedStatus ,
124- Retrieved = parsedRetrieved
125- } ;
126-
127- var submissionIdsList = submissionIds ? . ToList < decimal > ( ) . Select ( s => Convert . ToInt32 ( s ) ) . ToList ( ) ;
128- var workflowIdsList = workflowIds ? . ToList < decimal > ( ) . Select ( w => Convert . ToInt32 ( w ) ) . ToList ( ) ;
129- int limitInt = Convert . ToInt32 ( limit ) ;
130-
131- var result = Task . Run ( async ( ) => await _submissionsClient . ListAsync ( submissionIdsList , workflowIdsList , submissionFilter , limitInt ) ) . GetAwaiter ( ) . GetResult ( ) ;
89+ var result = CallListSubmissions ( submissionIds , workflowIds , inputFileName , status , retrieved , limit ) ;
13290
13391 return result . ToDetailedDataTable ( ) ;
13492 }
@@ -194,6 +152,15 @@ private async Task<JObject> SubmitReviewAsync(int submissionId, JObject changes,
194152 }
195153 }
196154
155+ private async Task < string > GenerateSubmissionResult ( int submissionId )
156+ {
157+ using ( var tokenSource = new CancellationTokenSource ( _timeout ) )
158+ {
159+ var jobId = await _submissionsClient . GenerateSubmissionResultAsync ( submissionId ) ;
160+ return jobId ;
161+ }
162+ }
163+
197164 private static bool HasAnyRows ( DataTable dataTable )
198165 {
199166 if ( dataTable == null || dataTable . Rows . Count == 0 )
@@ -203,5 +170,63 @@ private static bool HasAnyRows(DataTable dataTable)
203170
204171 return true ;
205172 }
173+
174+ private IEnumerable < ISubmission > CallListSubmissions ( DataTable submissionIds , DataTable workflowIds , string inputFileName , string status , string retrieved , decimal limit = 1000 )
175+ {
176+ bool ? parsedRetrieved = null ;
177+ SubmissionStatus ? parsedStatus = null ;
178+
179+ if ( string . IsNullOrWhiteSpace ( inputFileName ) )
180+ {
181+ inputFileName = null ;
182+ }
183+
184+ if ( ! string . IsNullOrEmpty ( status ) )
185+ {
186+ if ( ! Enum . TryParse ( status , out SubmissionStatus statusValue ) )
187+ {
188+ throw new ArgumentException ( "Wrong status value provided. Please provide one of the valid submission statuses." ) ;
189+ }
190+ else
191+ {
192+ parsedStatus = statusValue ;
193+ }
194+ }
195+
196+ if ( ! string . IsNullOrEmpty ( retrieved ) )
197+ {
198+ if ( ! bool . TryParse ( retrieved , out bool retrievedValue ) )
199+ {
200+ throw new ArgumentException ( "Wrong retreived value provided. Please provide \" True\" or \" False\" as a value." ) ;
201+ }
202+ else
203+ {
204+ parsedRetrieved = retrievedValue ;
205+ }
206+ }
207+
208+ var submissionFilter = new SubmissionFilter
209+ {
210+ InputFilename = inputFileName ,
211+ Status = parsedStatus ,
212+ Retrieved = parsedRetrieved
213+ } ;
214+
215+ var submissionIdsList = submissionIds ? . ToList < decimal > ( ) . Select ( s => Convert . ToInt32 ( s ) ) . ToList ( ) ;
216+ var workflowIdsList = workflowIds ? . ToList < decimal > ( ) . Select ( w => Convert . ToInt32 ( w ) ) . ToList ( ) ;
217+ int limitInt = Convert . ToInt32 ( limit ) ;
218+
219+ var result = Task . Run ( async ( ) => await _submissionsClient . ListAsync ( submissionIdsList , workflowIdsList , submissionFilter , limitInt ) ) . GetAwaiter ( ) . GetResult ( ) ;
220+ return result ;
221+ }
222+ public DataTable GetSubmissionFileDetails ( DataTable submissionIds )
223+ {
224+
225+ var submissionIdsList = submissionIds ? . ToList < decimal > ( ) . Select ( s => Convert . ToInt32 ( s ) ) . ToList ( ) ;
226+
227+ var result = CallListSubmissions ( submissionIds , new DataTable ( ) , "" , "" , "" ) ;
228+ var parsed = result . Select ( x => x . SubmissionFiles . Select ( y => new { y . Filename , NumPages = y . NumPages , Id = y . Id , SubmissionId = x . Id } ) ) ;
229+ return parsed . ToDetailedDataTable ( ) ;
230+ }
206231 }
207232}
0 commit comments