예제 #1
0
        public ChatMessage(string content, ChatMessageAuthor author)
        {
            Id       = Guid.NewGuid();
            PostedAt = DateTime.Now;
            Content  = content;
            Author   = author;

            Validate(this, new ChatMessageValidator());
        }
예제 #2
0
        public async Task <BasicOutput <string> > SendMessage(string chatRoomId, string authorId, string authorName, string message)
        {
            var result   = new BasicOutput <string>();
            var chatRoom = await _chatRoomRepository.GetChatRoomById(Guid.Parse(chatRoomId), true);

            if (chatRoom == null)
            {
                result.AddNotification(new Notification("Specified chat room could not be found", ENotificationType.Error, "chatRoom"));
            }

            if (result.Invalid)
            {
                return(result);
            }

            var author      = new ChatMessageAuthor(authorId, authorName);
            var chatMessage = new ChatMessage(message, author);

            if (chatMessage.Invalid)
            {
                result.AddNotifications(chatMessage.ValidationResult);
                return(result);
            }

            if (chatMessage.IsMessage)
            {
                chatRoom.AddChatMessage(chatMessage);
                _chatRoomRepository.Update(chatRoom);
                await _unitOfWork.CommitAsync();
            }

            if (chatMessage.IsCommand)
            {
                await _webSocketService.SendCommand(chatRoom.Id.ToString(), chatMessage.Content);
            }

            await _webSocketService
            .SendMessage(
                chatRoom.Id.ToString(),
                chatMessage);

            result.SetOutput("The message has been sent successfully");
            return(result);
        }
        void ReleaseDesignerOutlets()
        {
            if (ChatMessageAuthor != null)
            {
                ChatMessageAuthor.Dispose();
                ChatMessageAuthor = null;
            }

            if (ChatMessageText != null)
            {
                ChatMessageText.Dispose();
                ChatMessageText = null;
            }

            if (ChatTable != null)
            {
                ChatTable.Dispose();
                ChatTable = null;
            }

            if (MessageTextField != null)
            {
                MessageTextField.Dispose();
                MessageTextField = null;
            }

            if (PeerId != null)
            {
                PeerId.Dispose();
                PeerId = null;
            }

            if (PeerName != null)
            {
                PeerName.Dispose();
                PeerName = null;
            }

            if (PeersTable != null)
            {
                PeersTable.Dispose();
                PeersTable = null;
            }
        }