public DirectChat CreateDirectChat(string participant1, string participant2) { var chat = GetDirectChat(participant1, participant2); if (chat != null) { throw new ChatAlreadyExistException(); } chat = new DirectChat() { ChatMembers = new List <ChatMember>() }; _chatRepo.Add(chat); chat.ChatMembers.Add(new ChatMember() { Chat = chat, User = _userRepo.GetOne(participant1) }); chat.ChatMembers.Add(new ChatMember() { Chat = chat, User = _userRepo.GetOne(participant2) }); _chatRepo.Save(chat); return(chat); }