//====================================================================== // Constructors //====================================================================== /// <summary> /// Constructor that initializes the Twitch IRC object. /// </summary> /// <param name="engine"></param> /// <param name="messenger"></param> public TwitchIrc(Engine engine, IMessageRelay messenger) { this.engine = engine; this.messenger = messenger; this.CancellationToken = new CancellationTokenSource(); this.Users = new Dictionary <string, TwitchIrcUser>(); this.ircClientListener = new BackgroundWorker(); this.ircClientListener.DoWork += new DoWorkEventHandler(ircClientListener_DoWork); this.ircClientListener.WorkerSupportsCancellation = true; //------------------------------------------------------------------ // Setup the WHO alarm. If the name list isn't loaded in a timely // manner, then a WHO command will be sent to get the full list of // users connected to the chat room. // // We don't always want to do this because for chat rooms with lots // of users, this can create significant lag since WHO responses // are much lengthier. //------------------------------------------------------------------ this.whoAlarm = new AlarmClock(); this.whoAlarm.OnAlarm += (sender, e) => { if (!this.namesListReceived) { this.RequestUserList(); } e.Snooze = false; }; }
public DetailMenuModel([NotNull] ILibrary library, [NotNull] IMessageRelay relay) { if (library == null) { throw new ArgumentNullException(nameof(library)); } if (relay == null) { throw new ArgumentNullException(nameof(relay)); } SwitchToCurrentModeCommand = new DelegateCommand( () => Mode != SelectionMode.Current, () => Mode.Value = SelectionMode.Current); SwitchToSelectionModeCommand = new DelegateCommand( () => Mode != SelectionMode.Selection, () => Mode.Value = SelectionMode.Selection); Mode.ValueChanged += ModeOnValueChanged; AnythingSelected = new DelegateProperty <bool>(IsSomethingSelected) .UpdateOn(Mode) .UpdateOn(Current) .UpdateOn(Selection); StatsModel = new StatsModel(this); TagEditorModel = new TagEditorModel(this, library); RotateModel = new RotateModel(this, library); ViewPanelModel = new ViewPanelModel(this, library, relay); }
public AppVersionDisplayModel([NotNull] IMessageRelay relay) { _relay = relay ?? throw new ArgumentNullException(nameof(relay)); CurrentVersion.Value = "v" + Application.version; OpenUpdateDialogCommand = new DelegateCommand(UpdateAvailable, ForceShowUpdateDialog) .UpdateOn(_message); }
public AddImportFolderModel([NotNull] IMessageRelay relay) { _relay = relay ?? throw new ArgumentNullException(nameof(relay)); FolderPath.ValueChanged += path => CanAcceptChanged(); Rotation.ValueChanged += rotation => RotateOnImport.Value = true; Scale.ValueChanged += rotation => ScaleOnImport.Value = true; }
public ApplicationModel([NotNull] IMessageRelay relay) { if (relay is null) { throw new ArgumentNullException(nameof(relay)); } ShowAppSettingsCommand = new DelegateCommand(() => relay.Send <RequestShowDialogMessage.AppSettings>(this)); ShowFeedbackCommand = new DelegateCommand(() => relay.Send <RequestShowDialogMessage.UserFeedback>(this)); ShowHelpCommand = new DelegateCommand(OpenWiki); }
public ImportFoldersModel( [NotNull] IConfigStore configStore, [NotNull] IImportFolderFactory importFolderFactory, [NotNull] IMessageRelay relay) { _store = configStore ?? throw new ArgumentNullException(nameof(configStore)); _relay = relay ?? throw new ArgumentNullException(nameof(relay)); _importFolderFactory = importFolderFactory ?? throw new ArgumentNullException(nameof(importFolderFactory)); AddImportFolderCommand = new DelegateCommand(() => relay.Send <RequestShowDialogMessage.AddImportFolder>(this)); }
public Library( [NotNull] IConfigStore configStore, [NotNull] IPreviewBuilder builder, [NotNull] IPreviewImageStore previewStore, [NotNull] IMessageRelay relay) { _previewBuilder = builder ?? throw new ArgumentNullException(nameof(builder)); _configStore = configStore ?? throw new ArgumentNullException(nameof(configStore)); _previewStore = previewStore ?? throw new ArgumentNullException(nameof(previewStore)); _relay = relay ?? throw new ArgumentNullException(nameof(relay)); _previewModels = new ItemPreviewModelSet(_previewStore, relay); }
public ViewPanelModel( [NotNull] DetailMenuModel detailMenuModel, [NotNull] ILibrary library, [NotNull] IMessageRelay relay) { _detailMenuModel = detailMenuModel ?? throw new ArgumentNullException(nameof(detailMenuModel)); _library = library ?? throw new ArgumentNullException(nameof(library)); _relay = relay ?? throw new ArgumentNullException(nameof(relay)); OpenIn3DViewCommand = new DelegateCommand(CanOpenIn3DView, OpenIn3DView) .UpdateOn(_detailMenuModel.AnythingSelected); ShowInExplorerCommand = new DelegateCommand(CanOpenInExplorer, OpenInExplorer) .UpdateOn(_detailMenuModel.Mode) .UpdateOn(_detailMenuModel.Current); }
public ItemPreviewModel( [NotNull] IPreviewImageStore previewImageStore, [NotNull] IMessageRelay relay, [NotNull] PreviewInfo previewInfo) { _previewImageStore = previewImageStore ?? throw new ArgumentNullException(nameof(previewImageStore)); if (previewInfo is null) { throw new ArgumentNullException(nameof(previewInfo)); } if (relay is null) { throw new ArgumentNullException(nameof(relay)); } Name = previewInfo.ItemName; FileHash = previewInfo.FileHash; FileSize = previewInfo.FileSize; GeometryInfo.Value = new GeometryInfo { Rotation = previewInfo.Rotation ?? Vector3.zero, Scale = previewInfo.Scale ?? Vector3.one, Size = previewInfo.Size, Volume = previewInfo.Volume, TriangleCount = previewInfo.VertexCount / 3, VertexCount = previewInfo.VertexCount }; Tags.AddRange(previewInfo.Tags); Sources = previewInfo.Sources?.ToList() ?? new List <ImportedFileInfo>(); PreviewResolution = previewInfo.Resolution; Selected.ValueChanged += value => relay.Send(this, new SelectionChangedMessage { Sender = this }); }
public SearchModel(ILibrary library, IMessageRelay relay) : base(library) { _relay = relay; }
public SavedSearchesModel([NotNull] IConfigStore store, [NotNull] IMessageRelay relay) { _store = store ?? throw new ArgumentNullException(nameof(store)); _relay = relay ?? throw new ArgumentNullException(nameof(relay)); SaveCurrentSearchCommand = new DelegateCommand(CanSaveCurrentSearch, SaveCurrentSearch); }
public AddCollectionModel([NotNull] IMessageRelay relay) { _relay = relay ?? throw new ArgumentNullException(nameof(relay)); Name.ValueChanged += name => CanAcceptChanged(); }
public AddSavedSearchModel(IMessageRelay relay) { _relay = relay; Alias.ValueChanged += alias => CanAcceptChanged(); }
public ItemPreviewModelSet([NotNull] IPreviewImageStore previewImageStore, [NotNull] IMessageRelay relay) { _store = previewImageStore ?? throw new ArgumentNullException(nameof(previewImageStore)); _relay = relay ?? throw new ArgumentNullException(nameof(relay)); }
public ItemsModel([NotNull] ILibrary library, [NotNull] IMessageRelay relay) { _library = library ?? throw new ArgumentNullException(nameof(library)); _relay = relay ?? throw new ArgumentNullException(nameof(relay)); _items.SetSource(new ObservableList <ItemPreviewModel>()); }
public SearchModel(ITagIndex tagIndex, IMessageRelay relay) : base(tagIndex) { _relay = relay; }
public ChatHub(IChatPresenceService presenceService, IMessageRelay messageRelay) { PresenceService = presenceService; MessageRelay = messageRelay; }
public UpdateChecker([NotNull] IMessageRelay relay) { _relay = relay ?? throw new ArgumentNullException(nameof(relay)); }
public CollectionsModel([NotNull] IConfigStore store, [NotNull] IMessageRelay relay) { _store = store ?? throw new ArgumentNullException(nameof(store)); _relay = relay ?? throw new ArgumentNullException(nameof(relay)); }