Advertisement
Guest User

ididit

a guest
May 11th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.30 KB | None | 0 0
  1. let makeAccount i =
  2.     let entity = Entity "account"
  3.     entity.Item "name" <- sprintf "Account%i" i
  4.     entity
  5.  
  6. let makeCreateRequest e =
  7.     let cr = CreateRequest ()
  8.     cr.Parameters.Item "Target" <- e
  9.     cr
  10.  
  11. let requests =
  12.     [1..100]
  13.     |> Seq.map makeAccount
  14.     |> Seq.map makeCreateRequest
  15.  
  16. let chunkBy chunkSize (source: seq<_>) =
  17.     source
  18.     |> Seq.indexed
  19.     |> Seq.groupBy (fun (i, _) -> i / chunkSize)
  20.     |> Seq.map (fun (_, x) ->
  21.         x |> Seq.map snd)
  22.  
  23. let toOrganizationRequestCollection (requests: seq<OrganizationRequest>) =
  24.     let organizationRequestCollection = OrganizationRequestCollection ()
  25.     organizationRequestCollection.AddRange requests
  26.     organizationRequestCollection
  27.  
  28. let executePaged limit (request: OrganizationRequest) =
  29.     request.Parameters.Item "Requests" :?> seq<OrganizationRequest>
  30.     |> chunkBy limit
  31.     |> Seq.map (fun x ->
  32.         request.Parameters.Item "Requests" <- toOrganizationRequestCollection x
  33.         serviceProxy.Execute request)
  34.  
  35. let fuckingDoIt =
  36.     let etr = ExecuteTransactionRequest ()
  37.     etr.Requests <-
  38.         requests
  39.         |> Seq.cast<OrganizationRequest>
  40.         |> toOrganizationRequestCollection
  41.     etr.ReturnResponses <-
  42.         Nullable true
  43.     etr
  44.     |> executePaged 30
  45.     |> Seq.toArray
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement