Exemple #1
0
        //======================================================================
        //  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);
        }
Exemple #3
0
        public AppVersionDisplayModel([NotNull] IMessageRelay relay)
        {
            _relay = relay ?? throw new ArgumentNullException(nameof(relay));

            CurrentVersion.Value    = "v" + Application.version;
            OpenUpdateDialogCommand = new DelegateCommand(UpdateAvailable, ForceShowUpdateDialog)
                                      .UpdateOn(_message);
        }
Exemple #4
0
        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;
        }
Exemple #5
0
 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);
 }
Exemple #6
0
        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));
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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
            });
        }
Exemple #10
0
 public SearchModel(ILibrary library, IMessageRelay relay) : base(library)
 {
     _relay = relay;
 }
Exemple #11
0
 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);
 }
Exemple #12
0
 public AddCollectionModel([NotNull] IMessageRelay relay)
 {
     _relay             = relay ?? throw new ArgumentNullException(nameof(relay));
     Name.ValueChanged += name => CanAcceptChanged();
 }
Exemple #13
0
 public AddSavedSearchModel(IMessageRelay relay)
 {
     _relay              = relay;
     Alias.ValueChanged += alias => CanAcceptChanged();
 }
Exemple #14
0
 public ItemPreviewModelSet([NotNull] IPreviewImageStore previewImageStore, [NotNull] IMessageRelay relay)
 {
     _store = previewImageStore ?? throw new ArgumentNullException(nameof(previewImageStore));
     _relay = relay ?? throw new ArgumentNullException(nameof(relay));
 }
Exemple #15
0
 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>());
 }
Exemple #16
0
 public SearchModel(ITagIndex tagIndex, IMessageRelay relay) : base(tagIndex)
 {
     _relay = relay;
 }
Exemple #17
0
 public ChatHub(IChatPresenceService presenceService, IMessageRelay messageRelay)
 {
     PresenceService = presenceService;
     MessageRelay    = messageRelay;
 }
Exemple #18
0
 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));
 }