Blog.Logic.Core.ChatMessagesLogic.Add C# (CSharp) Method

Add() public method

public Add ( ChatMessage chatMessage ) : ChatMessage
chatMessage Blog.Common.Contracts.ChatMessage
return Blog.Common.Contracts.ChatMessage
        public ChatMessage Add(ChatMessage chatMessage)
        {
            try
            {
                var dbChatMessage = ChatMessageMapper.ToEntity(chatMessage);
                dbChatMessage.FromUser = null;
                dbChatMessage.ToUser = null;
                dbChatMessage.CreatedBy = dbChatMessage.FromUserId;
                dbChatMessage.ModifiedBy = dbChatMessage.FromUserId;

                var addResult = _chatMessageRepository.Add(dbChatMessage);
                var newChatMessage = _chatMessageRepository.Find(a => a.ChatMessageId == addResult.ChatMessageId, null, "FromUser,ToUser").FirstOrDefault();

                if (newChatMessage == null || newChatMessage.FromUser == null || newChatMessage.ToUser == null)
                {
                    throw new Exception("Successfully created message but failed to get users related to the message.");
                }

                return ChatMessageMapper.ToDto(newChatMessage);
            }
            catch (Exception ex)
            {
                throw new BlogException(ex.Message, ex.InnerException);
            }
        }