Пример #1
0
        protected async override void OnStartup(StartupEventArgs e)
        {
            if (HasAnotherInstanceRunning())
            {
                Current.Shutdown();
            }

            InitLog();

            base.OnStartup(e);

            this.DispatcherUnhandledException += App_DispatcherUnhandledException;

            var config = DataCache.Load<UserConfig>();
            if (config == null)
            {
                config = new UserConfig();
                config.FirstRun = false;
                StartupRegistration.IsRegisteredForStartup = true;
                DataCache.Save(config);
            }
            if (!StartupRegistration.IsRegisteredForStartMenu)
            {
                StartupRegistration.RegisterForStartMenu();
            }

            user = GetUser();

            if (user == null)
            {
                Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;
                var editUser = new EditUser();
                editUser.ShowDialog();
                user = new User()
                {
                    EmailAddress = editUser.FirstName + "." + editUser.LastName + "@placeholder",
                    FullName = editUser.FirstName + " " + editUser.LastName,
                    UserName = editUser.FirstName + "~" + editUser.LastName
                };
                DataCache.Save(user);
                Current.ShutdownMode = ShutdownMode.OnMainWindowClose;
            }

            hub = new Hub(user, Dispatcher);
            groupsCache = new GroupsCache();            
            queueUpdater = new QueueUpdater(hub, user, groupsCache);

            hub.QueueMembershipChanged += QueueMembershipChanged;
            hub.QueueCreated += QueueCreated;
            hub.QueueStatusChanged += QueueStatusChanged;
            hub.QueueMessageReceived += QueueMessageReceived;
            hub.QueueNagged += QueueNagged;

            hub.PropertyChanged += HubPropertyChanged;

            if (hub.ConnectionState == ConnectionState.Connected)
            {
                await queueUpdater.RefreshALl();
            }
        }
Пример #2
0
        public QueueList(Hub hub, GroupsCache groupsCache)
        {
            InitializeComponent();
            Header.Hub = hub;
            Header.GroupsCache = groupsCache;

            this.Activated += (sender, args) => logger.Debug("Activated");
            this.Deactivated+= (sender, args) => logger.Debug("Deactivated");
            this.LocationChanged += (sender, args) => AdjustHeight();
        }
Пример #3
0
        public QueueUpdater(Hub hub, User user, GroupsCache groupsCache)
        {
            this.hub = hub;
            this.user = user;

            this.groupsCache = groupsCache;           

            queueList = new QueueList(hub, groupsCache);
            queueList.Show();

            alertDisplayTimer = new DisplayTimer(queueList);
        }