public async Task GroupChatNameChangedTest() { await client1.AuthenticationClient.CreateSessionWithEmailAsync(email1, password1); var createDialogResponse = await client1.ChatClient.CreateDialogAsync("Chat name Dialog", DialogType.Group, $"{id2},{id3}"); Assert.AreEqual(HttpStatusCode.Created, createDialogResponse.StatusCode); string newName = "Chat name Dialog NEW!"; var updateDialogRequest = new UpdateDialogRequest() { DialogId = createDialogResponse.Result.Id, Name = newName }; var updateResponse = await client1.ChatClient.UpdateDialogAsync(updateDialogRequest); Assert.AreEqual(updateResponse.StatusCode, HttpStatusCode.OK); var chatManager1 = client1.ChatXmppClient.GetGroupChatManager(createDialogResponse.Result.XmppRoomJid, createDialogResponse.Result.Id); var chatManager2 = client2.ChatXmppClient.GetGroupChatManager(createDialogResponse.Result.XmppRoomJid, createDialogResponse.Result.Id); chatManager1.JoinGroup(id1.ToString()); chatManager2.JoinGroup(id2.ToString()); await Task.Delay(1000); chatManager1.NotifyGroupNameChanged(newName, updateResponse.Result.UpdateAt); await Task.Delay(5000); }
public async Task <Dialog> UpdateDialogAsync(string dialogId, List <int> addedUsers = null, List <int> deletedUsers = null, string name = null, string photo = null) { var updateDialog = new UpdateDialogRequest(); updateDialog.DialogId = dialogId; if (addedUsers != null) { updateDialog.PushAll = new EditedOccupants() { OccupantsIds = addedUsers }; } if (deletedUsers != null) { updateDialog.PullAll = new EditedOccupants() { OccupantsIds = deletedUsers }; } updateDialog.Name = name; updateDialog.PhotoLink = photo; var dialogResponse = await this.client.ChatClient.UpdateDialogAsync(updateDialog); if (dialogResponse.StatusCode == HttpStatusCode.OK) { return(dialogResponse.Result); } return(null); }
/// <summary> /// Updates a dialog. Works only if type=1(PUBLIC_GROUP) or 2(GROUP). /// Users who are in occupants_ids can update a dialog with type=2(GROUP). If type=1(PUBLIC_GROUP) - only dialog’s owner can update it. /// </summary> /// <param name="updateDialogRequest">Update dialog request info</param> /// <returns></returns> public async Task <HttpResponse <Dialog> > UpdateDialogAsync(UpdateDialogRequest updateDialogRequest) { if (updateDialogRequest == null) { throw new ArgumentNullException("updateDialogRequest"); } var uriMethod = String.Format(QuickbloxMethods.UpdateDialogMethod, updateDialogRequest.DialogId); var headers = RequestHeadersBuilder.GetDefaultHeaders().GetHeaderWithQbToken(this.quickbloxClient.Token); return(await HttpService.PutAsync <Dialog, UpdateDialogRequest>(this.quickbloxClient.ApiEndPoint, uriMethod, updateDialogRequest, headers)); }
public async Task GroupChatTest() { IGroupChatManager chatManager1 = client1.ChatXmppClient.GetGroupChatManager(groupJid, groupDialogId); chatManager1.JoinGroup(id1.ToString()); IGroupChatManager chatManager2 = client2.ChatXmppClient.GetGroupChatManager(groupJid, groupDialogId); chatManager2.JoinGroup(id2.ToString()); IGroupChatManager chatManager3 = client3.ChatXmppClient.GetGroupChatManager(groupJid, groupDialogId); chatManager3.JoinGroup(id3.ToString()); await Task.Delay(2000); chatManager1.SendMessage("One reports to the group."); await Task.Delay(1000); chatManager2.SendMessage("Three reports to the group"); await Task.Delay(1000); chatManager3.SendMessage("Three reports to the group"); await Task.Delay(1000); Debug.WriteLine("############ Updating name"); string newName = "Name1"; var updateDialogRequest = new UpdateDialogRequest { DialogId = groupDialogId }; updateDialogRequest.Name = newName; var updateDialogResponse = await client2.ChatClient.UpdateDialogAsync(updateDialogRequest); Assert.AreEqual(updateDialogResponse.StatusCode, HttpStatusCode.OK); chatManager2.NotifyGroupNameChanged(newName, DateTime.Now); await Task.Delay(1000); Debug.WriteLine("############ Checking messaging again"); chatManager1.SendMessage("One reports to the group."); await Task.Delay(1000); chatManager2.SendMessage("Three reports to the group"); await Task.Delay(1000); chatManager3.SendMessage("Three reports to the group"); await Task.Delay(1000); await Task.Delay(3000); }
public async Task UpdateDialogsSuccessTest() { var responseDialogs = await this.client.ChatClient.GetDialogsAsync(); Assert.AreEqual(responseDialogs.StatusCode, HttpStatusCode.OK); var updateDialogRequest = new UpdateDialogRequest() { DialogId = responseDialogs.Result.Items.First().Id, Name = "New name 2" }; var responseDelete = await this.client.ChatClient.UpdateDialogAsync(updateDialogRequest); Assert.AreEqual(responseDelete.StatusCode, HttpStatusCode.OK); Assert.AreEqual(responseDelete.Result.Name, updateDialogRequest.Name); }
public async Task<Dialog> UpdateDialogAsync(string dialogId, List<int> addedUsers = null, List<int> deletedUsers = null, string name = null, string photo = null) { var updateDialog = new UpdateDialogRequest (); updateDialog.DialogId = dialogId; if (addedUsers != null) { updateDialog.PushAll = new EditedOccupants () { OccupantsIds = addedUsers }; } if (deletedUsers != null) { updateDialog.PullAll = new EditedOccupants () { OccupantsIds = deletedUsers }; } updateDialog.Name = name; updateDialog.PhotoLink = photo; var dialogResponse = await this.client.ChatClient.UpdateDialogAsync(updateDialog); if (dialogResponse.StatusCode == HttpStatusCode.OK) { return dialogResponse.Result; } return null; }
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 UpdateGroup() { var selectedContacts = allContacts.Where(c => c.IsSelected).ToList(); var updateDialogRequest = new UpdateDialogRequest {DialogId = editedDialog.Id}; var addedUsers = selectedContacts.Where(c => !editedDialog.OccupantIds.Contains(c.Item.UserId)).Select(u => u.Item.UserId).ToArray(); if (addedUsers.Any()) updateDialogRequest.PushAll = new EditedOccupants() {OccupantsIds = addedUsers}; 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 == editedDialog.Id); dialog.OccupantIds = updateDialogResponse.Result.OccupantsIds; var groupChatManager = QuickbloxClient.ChatXmppClient.GetGroupChatManager(editedDialog.XmppRoomJid, editedDialog.Id); groupChatManager.NotifyAboutGroupUpdate(addedUsers, new List<int>(), updateDialogResponse.Result); NavigationService.Navigate(ViewLocator.GroupChat, editedDialog.Id); } }