protected ViewModelBase(IUnityContainer contain, IRegionManager regman, IEventAggregator events, IChatModel cm, ICharacterManager manager) { try { Container = contain.ThrowIfNull("contain"); RegionManager = regman.ThrowIfNull("regman"); Events = events.ThrowIfNull("events"); ChatModel = cm.ThrowIfNull("cm"); CharacterManager = manager.ThrowIfNull("manager"); RightClickMenuViewModel = new RightClickMenuViewModel(ChatModel.IsGlobalModerator, CharacterManager); CreateReportViewModel = new CreateReportViewModel(Events, ChatModel); ChatModel.SelectedChannelChanged += OnSelectedChannelChanged; Events.GetEvent<NewUpdateEvent>().Subscribe(UpdateRightClickMenu); } catch (Exception ex) { ex.Source = "Generic ViewModel, init"; Exceptions.HandleException(ex); } }
public MessageService( IRegionManager regman, IUnityContainer contain, IEventAggregator events, IChatModel model, IChatConnection connection, IListConnection api, ICharacterManager manager, ILoggingService logger, IAutomationService automation) { this.logger = logger; this.automation = automation; try { region = regman.ThrowIfNull("regman"); container = contain.ThrowIfNull("contain"); this.events = events.ThrowIfNull("events"); this.model = model.ThrowIfNull("model"); this.connection = connection.ThrowIfNull("connection"); this.api = api.ThrowIfNull("api"); characterManager = manager.ThrowIfNull("characterManager"); this.model.SelectedChannelChanged += (s, e) => RequestNavigate(this.model.CurrentChannel.Id); this.events.GetEvent<ChatOnDisplayEvent>() .Subscribe(BuildHomeChannel, ThreadOption.UIThread, true); this.events.GetEvent<RequestChangeTabEvent>() .Subscribe(RequestNavigate, ThreadOption.UIThread, true); this.events.GetEvent<UserCommandEvent>().Subscribe(CommandRecieved, ThreadOption.UIThread, true); commands = new Dictionary<string, CommandHandler> { {"priv", OnPrivRequested}, {Commands.UserMessage, OnPriRequested}, {Commands.ChannelMessage, OnMsgRequested}, {Commands.ChannelAd, OnLrpRequested}, {Commands.UserStatus, OnStatusChangeRequested}, {"close", OnCloseRequested}, {"join", OnJoinRequested}, {Commands.UserIgnore, OnIgnoreRequested}, {"clear", OnClearRequested}, {"clearall", OnClearAllRequested}, {"_logger_open_log", OnOpenLogRequested}, {"_logger_open_folder", OnOpenLogFolderRequested}, {"code", OnChannelCodeRequested}, {"_snap_to_last_update", OnNotificationFocusRequested}, {Commands.UserInvite, OnInviteToChannelRequested}, {"who", OnWhoInformationRequested}, {"getdescription", OnChannelDescripionRequested}, {"interesting", OnMarkInterestedRequested}, {"notinteresting", OnMarkNotInterestedRequested}, {"ignoreUpdates", OnIgnoreUpdatesRequested}, {Commands.AdminAlert, OnReportRequested}, {"tempignore", OnTemporaryIgnoreRequested}, {"tempunignore", OnTemporaryIgnoreRequested}, {"tempinteresting", OnTemporaryInterestingRequested}, {"tempnotinteresting", OnTemporaryInterestingRequested}, {"handlelatest", OnHandleLatestReportRequested}, {"handlereport", OnHandleLatestReportByUserRequested} }; } catch (Exception ex) { ex.Source = "Message Daemon, init"; Exceptions.HandleException(ex); } }