private void HandlePendingMissingFileKeys(ApiMissingFileKeys missingFileKeys, UserPrivateKey thisUserPrivateKey) { if (missingFileKeys == null || missingFileKeys.Items.Count == 0) { return; } Dictionary <long, UserPublicKey> userPublicKeys = UserMapper.ConvertApiUserIdPublicKeys(missingFileKeys.UserPublicKey); Dictionary <long, PlainFileKey> plainFileKeys = GeneratePlainFileKeyMap(missingFileKeys.FileKeys, thisUserPrivateKey); ApiSetUserFileKeysRequest setUserFileKeysRequest = new ApiSetUserFileKeysRequest { Items = new List <ApiSetUserFileKey>(missingFileKeys.UserPublicKey.Count) }; foreach (ApiUserIdFileId currentMissingFileKey in missingFileKeys.Items) { UserPublicKey currentUsersPublicKey = userPublicKeys[currentMissingFileKey.UserId]; PlainFileKey currentPlainFileKey = plainFileKeys[currentMissingFileKey.FileId]; EncryptedFileKey currentEncryptedFileKey = EncryptFileKey(currentPlainFileKey, currentUsersPublicKey, currentMissingFileKey.FileId); ApiSetUserFileKey newRequestEntry = new ApiSetUserFileKey { FileId = currentMissingFileKey.FileId, UserId = currentMissingFileKey.UserId, FileKey = FileMapper.ToApiFileKey(currentEncryptedFileKey) }; setUserFileKeysRequest.Items.Add(newRequestEntry); } IRestRequest restRequest = _client.Builder.PostMissingFileKeys(setUserFileKeysRequest); _client.Executor.DoSyncApiCall <VoidResponse>(restRequest, RequestType.PostMissingFileKeys); }
IRestRequest IRequestBuilder.PostMissingFileKeys(ApiSetUserFileKeysRequest fileKeyParams) { RestRequest request = new RestRequest(ApiConfig.ApiPostMissingFileKeys, Method.POST); SetGeneralRestValues(request, true, fileKeyParams); return(request); }