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); }
public void ConvertApiUserIdPublicKeys() { // ARRANGE Dictionary <long, UserPublicKey> expected = new Dictionary <long, UserPublicKey>(1) { { 1, FactoryUser.UserPublicKey } }; List <ApiUserIdPublicKey> param = new List <ApiUserIdPublicKey>(1) { new ApiUserIdPublicKey { UserId = 1, PublicKeyContainer = new ApiUserPublicKey { PublicKey = expected[1].PublicKey, Version = expected[1].Version } } }; // ACT Dictionary <long, UserPublicKey> actual = UserMapper.ConvertApiUserIdPublicKeys(param); // ASSERT Assert.True(expected.Count == actual.Count); foreach (long currentKey in expected.Keys) { Assert.True(actual.ContainsKey(currentKey)); } foreach (long currentKey in expected.Keys) { Assert.True(expected[currentKey].PublicKey == actual[currentKey].PublicKey); Assert.True(expected[currentKey].Version == actual[currentKey].Version); } }