@@ -1304,12 +1304,21 @@ public class Script : ScriptBase
13041304    int  recipientCount  =  envelope [ "recipients" ] [ "recipientCount" ] . ToObject < int > ( ) ; 
13051305    var  recipientCountInNaturalLanguage  =  ( recipientCount  >  1 )  ? 
13061306        ( " and "  +  ( recipientCount  -  1 ) . ToString ( )  +  " others have " )  :  " " ;  
1307- 
1307+   
13081308    JArray  documentArray  =  ( envelope [ "envelopeDocuments" ]  as  JArray )  ??  new  JArray ( ) ; 
1309-     var  documentCountInNaturalLanguage  =  ( documentArray . Count  >  1 )  ? 
1310-       ( " and "  +  ( documentArray . Count  -  1 ) . ToString ( )  +  " other documents " )  :  " " ; 
1309+     var  documentCount  =  documentArray . Count ; 
1310+     string  documentCountInNaturalLanguage  =  "" ; 
1311+ 
1312+     if  ( documentCount  ==  3 ) 
1313+     { 
1314+       documentCountInNaturalLanguage  =  $ " and 1 other document"; 
1315+     } 
1316+     else  if  ( documentCount  >  3 ) 
1317+     { 
1318+       documentCountInNaturalLanguage  =  $ " and { documentCount  -  2 }  other documents"; 
1319+     } 
13111320
1312-     if  ( envelope [ "status" ] . Equals ( "sent" ) ) 
1321+     if  ( envelope [ "status" ] . ToString ( ) . Equals ( "sent" ) ) 
13131322    { 
13141323      descriptionNLP  =  envelope [ "sender" ] [ "userName" ]  +  " "  + 
13151324        envelope [ "status" ]  +  " "  + 
@@ -1764,6 +1773,7 @@ public class Script : ScriptBase
17641773      } 
17651774
17661775      query [ "include" ]  =  "custom_fields,recipients,documents" ; 
1776+       query [ "order" ]  =  "desc" ; 
17671777      uriBuilder . Query  =  query . ToString ( ) ; 
17681778      this . Context . Request . RequestUri  =  uriBuilder . Uri ; 
17691779    } 
@@ -1784,6 +1794,7 @@ public class Script : ScriptBase
17841794        query . Get ( "startDateTime" ) ; 
17851795
17861796      query [ "include" ]  =  "custom_fields, recipients, documents" ; 
1797+       query [ "order" ]  =  "desc" ; 
17871798      uriBuilder . Query  =  query . ToString ( ) ; 
17881799      this . Context . Request . RequestUri  =  uriBuilder . Uri ; 
17891800    } 
@@ -2122,8 +2133,9 @@ public class Script : ScriptBase
21222133      var  query  =  HttpUtility . ParseQueryString ( this . Context . Request . RequestUri . Query ) ; 
21232134      JObject  newBody  =  new  JObject ( ) ; 
21242135
2125-       JArray  Activity  =  ( body [ "envelopes" ]  as  JArray )  ??  new  JArray ( ) ; 
2136+       JArray  envelopes  =  ( body [ "envelopes" ]  as  JArray )  ??  new  JArray ( ) ; 
21262137      JArray  filteredActivities  =  new  JArray ( ) ; 
2138+       JArray  activities  =  new  JArray ( ) ; 
21272139      int  top  =  string . IsNullOrEmpty ( query . Get ( "top" ) )  ?  3 :  int . Parse ( query . Get ( "top" ) ) ; 
21282140      int  skip  =  string . IsNullOrEmpty ( query . Get ( "skip" ) )  ?  0 :  int . Parse ( query . Get ( "skip" ) ) ; 
21292141
@@ -2134,38 +2146,56 @@ public class Script : ScriptBase
21342146
21352147      foreach  ( var  filter  in  filters . Where ( filter =>  filter  !=  null ) )  
21362148      { 
2137-         foreach  ( var  envelope  in  Activity ) 
2149+         foreach  ( var  envelope  in  envelopes ) 
21382150        { 
2139-           if  ( envelope . ToString ( ) . Contains ( filter ) ) 
2151+           if  ( envelope . ToString ( ) . ToLower ( ) . Contains ( filter . ToLower ( ) ) ) 
21402152          { 
2141-             JObject  additionalPropertiesForActivity  =  new  JObject ( ) 
2142-             { 
2143-               [ "Recipient" ]  =  envelope [ "recipients" ] [ "signers" ] [ 0 ] [ "name" ] , 
2144-               [ "Owner" ]  =  envelope [ "sender" ] [ "userName" ] , 
2145-               [ "Status" ]  =  envelope [ "status" ] , 
2146-               [ "EnvelopeId" ]  =  envelope [ "envelopeId" ] , 
2147-               [ "Date" ]  =  envelope [ "statusChangedDateTime" ] 
2148-             } ; 
2149-             filteredActivities . Add ( new  JObject ( ) 
2150-             { 
2151-               [ "title" ]  =  envelope [ "emailSubject" ] , 
2152-               [ "description" ]  =  GetDescriptionNLPForRelatedActivities ( envelope ) , 
2153-               [ "dateTime" ]  =  envelope [ "statusChangedDateTime" ] , 
2154-               [ "url" ]  =  GetEnvelopeUrl ( envelope ) , 
2155-               [ "additionalProperties" ]  =  additionalPropertiesForActivity 
2156-             } ) ; 
2153+             filteredActivities . Add ( envelope ) ; 
21572154          } 
21582155        } 
21592156
21602157        if  ( filteredActivities . Count  >  0 ) 
21612158        { 
2162-           Activity  =  new  JArray ( filteredActivities ) ; 
2159+           envelopes . Clear ( ) ; 
2160+           envelopes  =  new  JArray ( filteredActivities ) ; 
21632161          filteredActivities . Clear ( ) ; 
21642162        } 
2163+         else 
2164+         { 
2165+           envelopes . Clear ( ) ; 
2166+           break ; 
2167+         } 
2168+       } 
2169+ 
2170+       foreach  ( var  envelope  in  envelopes ) 
2171+       { 
2172+         JArray  recipientNames  =  new  JArray ( ) ; 
2173+         System . Globalization . TextInfo  textInfo  =  new  System . Globalization . CultureInfo ( "en-US" ,  false ) . TextInfo ; 
2174+         foreach  ( var  recipient  in  ( envelope [ "recipients" ] [ "signers" ]  as  JArray )  ??  new  JArray ( ) ) 
2175+         { 
2176+           recipientNames . Add ( recipient [ "name" ] ) ; 
2177+         } 
2178+ 
2179+         JObject  additionalPropertiesForActivity  =  new  JObject ( ) 
2180+         { 
2181+           [ "Recipients" ]  =  recipientNames , 
2182+           [ "Owner" ]  =  envelope [ "sender" ] [ "userName" ] , 
2183+           [ "Status" ]  =  textInfo . ToTitleCase ( envelope [ "status" ] . ToString ( ) ) , 
2184+           [ "EnvelopeId" ]  =  envelope [ "envelopeId" ] , 
2185+           [ "Date" ]  =  envelope [ "statusChangedDateTime" ] 
2186+         } ; 
2187+         activities . Add ( new  JObject ( ) 
2188+         { 
2189+           [ "title" ]  =  envelope [ "emailSubject" ] , 
2190+           [ "description" ]  =  GetDescriptionNLPForRelatedActivities ( envelope ) , 
2191+           [ "dateTime" ]  =  envelope [ "statusChangedDateTime" ] , 
2192+           [ "url" ]  =  GetEnvelopeUrl ( envelope ) , 
2193+           [ "additionalProperties" ]  =  additionalPropertiesForActivity , 
2194+         } ) ; 
21652195      } 
21662196
2167-       newBody [ "value" ]  =  ( Activity . Count  <  top )  ?  Activity  :  new  JArray ( Activity . Skip ( skip ) . Take ( top ) . ToArray ( ) ) ; 
2168-       newBody [ "hasMoreResults" ]  =  ( skip  +  top  <  Activity . Count )  ?  true  :  false ; 
2197+       newBody [ "value" ]  =  ( activities . Count  <  top )  ?  activities  :  new  JArray ( activities . Skip ( skip ) . Take ( top ) . ToArray ( ) ) ; 
2198+       newBody [ "hasMoreResults" ]  =  ( skip  +  top  <  activities . Count )  ?  true  :  false ; 
21692199
21702200      response . Content  =  new  StringContent ( newBody . ToString ( ) ,  Encoding . UTF8 ,  "application/json" ) ; 
21712201    } 
@@ -2176,8 +2206,9 @@ public class Script : ScriptBase
21762206      var  query  =  HttpUtility . ParseQueryString ( this . Context . Request . RequestUri . Query ) ; 
21772207      JObject  newBody  =  new  JObject ( ) ; 
21782208
2179-       JArray  DocumentRecord  =  ( body [ "envelopes" ]  as  JArray )  ??  new  JArray ( ) ; 
2209+       JArray  envelopes  =  ( body [ "envelopes" ]  as  JArray )  ??  new  JArray ( ) ; 
21802210      JArray  filteredRecords  =  new  JArray ( ) ; 
2211+       JArray  documentRecords  =  new  JArray ( ) ; 
21812212      int  top  =  string . IsNullOrEmpty ( query . Get ( "top" ) )  ?  3 :  int . Parse ( query . Get ( "top" ) ) ; 
21822213      int  skip  =  string . IsNullOrEmpty ( query . Get ( "skip" ) )  ?  0 :  int . Parse ( query . Get ( "skip" ) ) ; 
21832214
@@ -2188,40 +2219,57 @@ public class Script : ScriptBase
21882219
21892220      foreach  ( var  filter  in  filters . Where ( filter =>  filter  !=  null ) )  
21902221      { 
2191-         foreach  ( var  envelope  in  DocumentRecord ) 
2222+         foreach  ( var  envelope  in  envelopes ) 
21922223        { 
2193-           if  ( envelope . ToString ( ) . Contains ( filter ) ) 
2224+           if  ( envelope . ToString ( ) . ToLower ( ) . Contains ( filter . ToLower ( ) ) ) 
21942225          { 
2195-             JObject  additionalPropertiesForDocumentRecords  =  new  JObject ( ) 
2196-             { 
2197-               [ "Recipient" ]  =  envelope [ "recipients" ] [ "signers" ] [ 0 ] [ "name" ] , 
2198-               [ "Owner" ]  =  envelope [ "sender" ] [ "userName" ] , 
2199-               [ "EnvelopeId" ]  =  envelope [ "envelopeId" ] , 
2200-               [ "Date" ]  =  envelope [ "statusChangedDateTime" ] 
2201-             } ; 
2202- 
2203-             filteredRecords . Add ( new  JObject ( ) 
2204-             { 
2205-               [ "recordId" ]  =  envelope [ "envelopeId" ] , 
2206-               [ "recordTypeDisplayName" ]  =  "Agreement" , 
2207-               [ "recordTypePluralDisplayName" ]  =  "Agreements" , 
2208-               [ "recordType" ]  =  "Agreement" , 
2209-               [ "recordTitle" ]  =  envelope [ "emailSubject" ] , 
2210-               [ "url" ]  =  GetEnvelopeUrl ( envelope ) , 
2211-               [ "additionalProperties" ]  =  additionalPropertiesForDocumentRecords 
2212-             } ) ; 
2226+             filteredRecords . Add ( envelope ) ; 
22132227          } 
22142228        } 
22152229
22162230        if  ( filteredRecords . Count  >  0 ) 
22172231        { 
2218-           DocumentRecord  =  new  JArray ( filteredRecords ) ; 
2232+           envelopes . Clear ( ) ; 
2233+           envelopes  =  new  JArray ( filteredRecords ) ; 
22192234          filteredRecords . Clear ( ) ; 
22202235        } 
2236+         else 
2237+         { 
2238+           envelopes . Clear ( ) ; 
2239+           break ; 
2240+         } 
2241+       } 
2242+ 
2243+       foreach  ( var  envelope  in  envelopes ) 
2244+       { 
2245+         JArray  recipientNames  =  new  JArray ( ) ; 
2246+         foreach  ( var  recipient  in  ( envelope [ "recipients" ] [ "signers" ]  as  JArray )  ??  new  JArray ( ) ) 
2247+         { 
2248+           recipientNames . Add ( recipient [ "name" ] ) ; 
2249+         } 
2250+ 
2251+         JObject  additionalPropertiesForDocumentRecords  =  new  JObject ( ) 
2252+         { 
2253+           [ "Recipients" ]  =  recipientNames , 
2254+           [ "Owner" ]  =  envelope [ "sender" ] [ "userName" ] , 
2255+           [ "EnvelopeId" ]  =  envelope [ "envelopeId" ] , 
2256+           [ "Date" ]  =  envelope [ "statusChangedDateTime" ] 
2257+         } ; 
2258+ 
2259+         documentRecords . Add ( new  JObject ( ) 
2260+         { 
2261+           [ "recordId" ]  =  envelope [ "envelopeId" ] , 
2262+           [ "recordTypeDisplayName" ]  =  "Agreement" , 
2263+           [ "recordTypePluralDisplayName" ]  =  "Agreements" , 
2264+           [ "recordType" ]  =  "Agreement" , 
2265+           [ "recordTitle" ]  =  envelope [ "emailSubject" ] , 
2266+           [ "url" ]  =  GetEnvelopeUrl ( envelope ) , 
2267+           [ "additionalProperties" ]  =  additionalPropertiesForDocumentRecords 
2268+         } ) ; 
22212269      } 
22222270
2223-       newBody [ "value" ]  =  ( DocumentRecord . Count  <  top )  ?  DocumentRecord  :  new  JArray ( DocumentRecord . Skip ( skip ) . Take ( top ) . ToArray ( ) ) ; 
2224-       newBody [ "hasMoreResults" ]  =  ( skip  +  top  <  DocumentRecord . Count )  ?  true  :  false ; 
2271+       newBody [ "value" ]  =  ( documentRecords . Count  <  top )  ?  documentRecords  :  new  JArray ( documentRecords . Skip ( skip ) . Take ( top ) . ToArray ( ) ) ; 
2272+       newBody [ "hasMoreResults" ]  =  ( skip  +  top  <  documentRecords . Count )  ?  true  :  false ; 
22252273
22262274      response . Content  =  new  StringContent ( newBody . ToString ( ) ,  Encoding . UTF8 ,  "application/json" ) ; 
22272275    } 
0 commit comments