public async Task CreateChats() { var creator = fillTestDbHelper.Users.FirstOrDefault(); var users = fillTestDbHelper.Users.Where(opt => !opt.BlackList.Any(p => p.BadUid == creator.Id) && !creator.BlackList.Any(p => p.BadUid == opt.Id)).Take(5).ToList(); ChatVm newChat = new ChatVm { About = "Create chat test 2", Name = "Chat", Users = users.Select(opt => new ChatUserVm { UserId = opt.Id, UserRole = opt.Id == creator.Id ? ObjectsLibrary.Enums.UserRole.Creator : ObjectsLibrary.Enums.UserRole.Moderator }).ToList() }; var userChats = fillTestDbHelper.Chats.Where(opt => opt.ChatUsers.Any(p => p.UserId == creator.Id)); var expectedChats = ChatConverter.GetChatsDto(userChats).Append(ChatConverter.GetChatDto(newChat)).ToList(); var actualChats = await createChatsService.CreateOrUpdateUserChatsAsync(expectedChats); Assert.Equal(expectedChats.Count, actualChats.Count); }
public async Task <bool> SaveUserDataAsync(UserDto userData) { try { UserDto user = await updateUsersService.CreateOrUpdateUserAsync(userData).ConfigureAwait(false); IEnumerable <ChatDto> chats = await createChatsService.CreateOrUpdateUserChatsAsync(userData.Chats).ConfigureAwait(false); IEnumerable <ChannelDto> channels = await createChannelsService.CreateOrUpdateUserChannelsAsync(userData.Channels).ConfigureAwait(false); foreach (var chat in userData.Chats) { await createMessagesService.SaveMessagesAsync(chat.Messages, user.Id).ConfigureAwait(false); } foreach (var channel in userData.Channels) { await createMessagesService.SaveMessagesAsync(channel.Messages, user.Id).ConfigureAwait(false); } foreach (var dialog in userData.Dialogs) { await createMessagesService.SaveMessagesAsync(dialog.Messages, user.Id).ConfigureAwait(false); } foreach (var contact in userData.Contacts) { await contactsService.CreateOrEditContactAsync(contact).ConfigureAwait(false); } foreach (var group in userData.ContactGroups) { await groupsService.CreateOrEditGroupAsync(group).ConfigureAwait(false); } await favoritesService.ChangeUserFavoritesAsync(userData.Favorites, userData.Id).ConfigureAwait(false); return(true); } catch (Exception ex) { Logger.WriteLog(ex); return(false); } }