public async Task UploadFileViaHelperTest()
        {
            var contentHelper = new ContentClientHelper(client);

            var uri         = new Uri("ms-appx:///Modules/ContentModule/Assets/1.jpg");
            var storageFile = await StorageFile.GetFileFromApplicationUriAsync(uri);

            var stream = await storageFile.OpenReadAsync();

            var bytes = new byte[stream.Size];

            using (var dataReader = new DataReader(stream))
            {
                await dataReader.LoadAsync((uint)stream.Size);

                dataReader.ReadBytes(bytes);
            }

            var imageLink = await contentHelper.UploadPublicImage(bytes);

            Assert.IsNotNull(imageLink);
        }
        private async void SaveCommandExecute()
        {
            IsLoading = true;

            var updateUserRequest = new UpdateUserRequest {User = new UserRequest() {FullName = UserName}};

            if (newImageBytes != null)
            {
                var contentHelper = new ContentClientHelper(QuickbloxClient);
                var imageUploadResult = await contentHelper.UploadPublicImage(newImageBytes);
                if (imageUploadResult != null)
                {
                    var customData = new CustomData { AvatarUrl = imageUploadResult.Url, IsImport = "1" };
                    var customDataJson = JsonConvert.SerializeObject(customData);
                    updateUserRequest.User.BlobId = imageUploadResult.BlodId;
                    updateUserRequest.User.CustomData = customDataJson;
                }
            }

            var updateUserResponse = await QuickbloxClient.UsersClient.UpdateUserAsync(currentUser.Id, updateUserRequest);

            if (updateUserResponse.StatusCode == HttpStatusCode.OK)
            {
                var cachingQbClient = ServiceLocator.Locator.Get<ICachingQuickbloxClient>();
                cachingQbClient.DeleteUserFromCacheById(currentUser.Id);

                NavigationService.GoBack();
            }
            IsLoading = false;
        }
        private async void SaveCommandExecute()
        {
            IsLoading = true;
            var updateDialogRequest = new UpdateDialogRequest { DialogId = currentDialog.Id };

            if (newImageBytes != null)
            {
                var contentHelper = new ContentClientHelper(QuickbloxClient);
                updateDialogRequest.PhotoLink = (await contentHelper.UploadPublicImage(newImageBytes))?.Url;
            }

            if (currentDialog.Name != ChatName)
            {
                updateDialogRequest.Name = ChatName;
            }

            if (!string.IsNullOrEmpty(updateDialogRequest.PhotoLink) || !string.IsNullOrEmpty(updateDialogRequest.Name))
            {
                var updateDialogResponse = await QuickbloxClient.ChatClient.UpdateDialogAsync(updateDialogRequest);

                if (updateDialogResponse.StatusCode == HttpStatusCode.OK)
                {
                    var dialogsManager = ServiceLocator.Locator.Get<IDialogsManager>();
                    var dialog = dialogsManager.Dialogs.FirstOrDefault(d => d.Id == currentDialog.Id);

                    var groupChatManager = QuickbloxClient.ChatXmppClient.GetGroupChatManager(currentDialog.XmppRoomJid, currentDialog.Id);

                    if (!string.IsNullOrEmpty(updateDialogRequest.Name))
                    {
                        dialog.Name = updateDialogRequest.Name;
                        groupChatManager.NotifyGroupNameChanged(updateDialogRequest.Name, updateDialogResponse.Result.UpdateAt);
                    }

                    if (!string.IsNullOrEmpty(updateDialogRequest.PhotoLink))
                    {
                        dialog.Photo = updateDialogRequest.PhotoLink;
                        dialog.Image = ChatImage;
                        groupChatManager.NotifyGroupImageChanged(updateDialogRequest.PhotoLink, updateDialogResponse.Result.UpdateAt);
                    }
                    
                    IsLoading = false;
                    NavigationService.GoBack();
                }
            }

            IsLoading = false;
        }
        private async Task CreateGroup()
        {
            var selectedContactsIds = allContacts.Where(c => c.IsSelected).Select(c => c.Item.UserId).ToList();
            string selectedUsersString = BuildUsersString(selectedContactsIds);

            string imageLink = null;
            if (chatImageBytes != null)
            {
                var contentHelper = new ContentClientHelper(QuickbloxClient);
                imageLink = (await contentHelper.UploadPublicImage(chatImageBytes))?.Url;
            }

            var createDialogResponse = await QuickbloxClient.ChatClient.CreateDialogAsync(GroupName, DialogType.Group, selectedUsersString, imageLink);
            if (createDialogResponse.StatusCode == HttpStatusCode.Created)
            {
                var dialogVm = DialogViewModel.FromDialog(createDialogResponse.Result);
                dialogVm.Image = ChatImage;

                var dialogsManager = ServiceLocator.Locator.Get<IDialogsManager>();
                dialogsManager.Dialogs.Insert(0, dialogVm);

                int currentUserId = SettingsManager.Instance.ReadFromSettings<int>(SettingsKeys.CurrentUserId);
                var groupChatManager = QuickbloxClient.ChatXmppClient.GetGroupChatManager(createDialogResponse.Result.XmppRoomJid, createDialogResponse.Result.Id);
                groupChatManager.JoinGroup(currentUserId.ToString());


                groupChatManager.NotifyAboutGroupCreation(selectedContactsIds, createDialogResponse.Result);

                NavigationService.Navigate(ViewLocator.GroupChat, createDialogResponse.Result.Id);
            }
        }