/// <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)); }
public ChatMessageController(IChatMessageDataService chatMessageDataService, IMessageService messageService, IMapper mapper) { _chatMessageDataService = chatMessageDataService; _messageService = messageService; _mapper = mapper; }