コード例 #1
0
ファイル: ChatRoomViewModel.cs プロジェクト: ssteezens/Chat
        ///  <summary>
        ///         Constructs a chat room view model.
        ///  </summary>
        ///  <param name="id"> Id of the chat room. </param>
        ///  <param name="chatMessageDataService"> Service for managing chat message data. </param>
        ///  <param name="chatRoomDataService"> Service for managing chat room data. </param>
        public ChatRoomViewModel(int id, IChatMessageDataService chatMessageDataService, IChatRoomDataService chatRoomDataService)
        {
            _chatMessageDataService = chatMessageDataService;
            _chatRoomDataService    = chatRoomDataService;

            Id = id;

            // commands
            SendMessageCommand          = new RelayCommand(SendMessage, () => !string.IsNullOrEmpty(UserText));
            DeleteMessageCommand        = new RelayCommand <ChatMessage>(DeleteMessage, (messageToDelete) => messageToDelete?.User?.Id == UserInstance.Current?.Id);
            ToggleAddUserControlCommand = new RelayCommand(ToggleAddUserControl);
            DeleteChatRoomCommand       = new RelayCommand(DeleteChatRoom);

            // view models
            AddUserViewModel = new AddUserViewModel(SimpleIoc.Default.GetInstance <IUserAccountService>(), SimpleIoc.Default.GetInstance <IChatRoomDataService>())
            {
                ChatRoomId = id
            };

            // view model message listeners
            MessengerInstance.Register <NotificationMessage <ChatMessage> >(this, id, action => HandleChatMessageNotification(action.Content, action.Notification));
            MessengerInstance.Register <NotificationMessage <User> >(this, id, action => HandleUserNotification(action.Content, action.Notification));
        }
コード例 #2
0
 public ChatMessageController(IChatMessageDataService chatMessageDataService, IMessageService messageService, IMapper mapper)
 {
     _chatMessageDataService = chatMessageDataService;
     _messageService         = messageService;
     _mapper = mapper;
 }