コード例 #1
0
        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));
        }