public async Task <ConversationDTO> AddConversation(ConversationDTO conversation, ApplicationUser invokingUser) { if (invokingUser == null) { return(null); } var users = await userFinder.FindUsersByNames(conversation.UserNames); if (!users.Any(u => u.Id == invokingUser.Id)) { users.Add(invokingUser); } var dbConversation = new Conversation { IsGroup = conversation.IsGroup, Participations = users.Select(u => new ConversationUser { User = u }).ToList() }; foreach (var convUser in dbConversation.Participations) { convUser.Conversation = dbConversation; } var added = await conversationManager.AddConversation(dbConversation); return(mapper.Map <ConversationDTO>(added)); }