public override bool Execute()
        {
            var changeAllMonitors = string.IsNullOrWhiteSpace(MonitorsNamesCollection);

            var monitorRetriver = new GetMonitors(SyntheticsApiKey);
            var monitorUpdater  = new UpdateMonitor(SyntheticsApiKey);

            Log.LogMessage("Starting API operations", MessageImportance.Low);

            var monitorsCollection = changeAllMonitors ? monitorRetriver.GetAllMonitors() : GetNamedMonitors(monitorRetriver, MonitorsNamesCollection);

            if (!monitorsCollection.Monitors.Any())
            {
                Log.LogMessage(MessageImportance.High, "Could not retrieve any monitors for given set of parameters");
                return(false);
            }


            for (int counter = 0; counter < monitorsCollection.Count; counter++)
            {
                var monitor     = monitorsCollection.Monitors[counter];
                var monitorName = !string.IsNullOrWhiteSpace(monitor.Name) ? monitor.Name : "UNRETRIEVABLE";
                Log.LogMessage(MessageImportance.Low, "Updating monitor '{0}' to status '{1}'", monitorName, GetTargetStatus(EnableMonitors));
                var updateStatus = monitorUpdater.Execute(monitor, EnableMonitors);
                if (!updateStatus)
                {
                    //failure encountered during monitor update
                    Log.LogError("Could change monitor '{0}' to status '{1}'", monitorName, GetTargetStatus(EnableMonitors));
                }
            }

            Log.LogMessage("Finished API operations", MessageImportance.Low);

            return(true);
        }
Exemplo n.º 2
0
        private async void Update_Clicked(object sender, RoutedEventArgs e)
        {
            var checkResult = await UpdateMonitor.CheckUpdate(force : true);

            var progressIndicator = StatusBar.GetForCurrentView().ProgressIndicator;

            switch (checkResult)
            {
            case UpdateMonitor.Result.Found:
                IndicateUpdateAvailable();
                break;

            case UpdateMonitor.Result.NotFound:
                progressIndicator.Text          = App.Common.Services.Resources.LocalizedStringOf("MainProgressNoUpdate");
                progressIndicator.ProgressValue = 0.0;
                progressIndicator.ShowAsync();
                await Task.Delay(3000);

                progressIndicator.HideAsync();
                break;

            case UpdateMonitor.Result.NoAccess:
                progressIndicator.Text          = App.Common.Services.Resources.LocalizedStringOf("MainProgressNoInternet");
                progressIndicator.ProgressValue = 0.0;
                progressIndicator.ShowAsync();
                await Task.Delay(3000);

                progressIndicator.HideAsync();
                break;
            }
        }
Exemplo n.º 3
0
        protected override async Task <DatabaseDownloadResult> StartAsync()
        {
            try
            {
                //ha kényszerített (első telepítés), akkor a rendelkezésre álló db-t töltöm be, egyébként letöltöm a szerverről
                Stream fileStream;
                int    updatesVersion   = CommonComponent.Current.Config.DBNumber;
                bool   downloadDisabled = !CommonComponent.Current.DatabaseExists || AppFields.ForceUpdate;
                if (downloadDisabled)
                {
                    fileStream = getResourceDatabase();
                }
                else
                {
                    //updates.txt letöltése és mentése
                    updatesVersion = await getUpdatesVersion();

                    fileStream = await downloadDatabase(updatesVersion);
                }
                //Az adatbázis kicsomagolása, előtte a használt fájlokat lezárja
                await decompressDatabase(fileStream);

                fileStream.Dispose();
                //Az adatbázis betöltése, az előző adatbázis alapján a backup elvégzése
                await completeDatabase();

                UpdateMonitor.UpdateDone(updatesVersion);
                return(downloadDisabled ? DatabaseDownloadResult.Initialized : DatabaseDownloadResult.Success);
            }
            catch (WebException)
            {
                return(DatabaseDownloadResult.NoAccess);
            }
        }
Exemplo n.º 4
0
        private async void Update_Clicked(object sender, EventArgs e)
        {
            var checkResult = await UpdateMonitor.CheckUpdate(force : true);

            switch (checkResult)
            {
            case UpdateMonitor.Result.Found:
                IndicateUpdateAvailable();
                break;

            case UpdateMonitor.Result.NotFound:
                ProgressIndicator prog = new ProgressIndicator {
                    Text = AppResources.MainProgressNoUpdate, IsVisible = true
                };
                SystemTray.SetProgressIndicator(this, prog);
                await Task.Delay(3000);

                SystemTray.SetProgressIndicator(this, null);
                break;

            case UpdateMonitor.Result.NoAccess:
                ProgressIndicator prog1 = new ProgressIndicator {
                    Text = AppResources.MainProgressNoInternet, IsVisible = true
                };
                SystemTray.SetProgressIndicator(this, prog1);
                await Task.Delay(3000);

                SystemTray.SetProgressIndicator(this, null);
                break;
            }
        }
Exemplo n.º 5
0
        private void ChangeMonitorsStatus(SyntheticsJsonRoot monitorsCollections, bool targetStatus)
        {
            var monitorUpdater = new UpdateMonitor(apiKey);

            foreach (var monitor in monitorsCollections.Monitors)
            {
                monitorUpdater.Execute(monitor, targetStatus);
            }
        }
Exemplo n.º 6
0
 protected void UpdateFrame()
 {
     using (UpdateMonitor.BeginCollecting(PerformanceCollectionType.Update))
     {
         UpdateSubTree();
         using (var buffer = DrawRoots.Get(UsageType.Write))
             buffer.Object = GenerateDrawNodeSubtree(buffer.Index, ScreenSpaceDrawQuad.AABBf);
     }
 }
Exemplo n.º 7
0
        /// <summary>
        /// Agent that runs a scheduled task
        /// </summary>
        /// <param name="task">
        /// The invoked task
        /// </param>
        /// <remarks>
        /// This method is called when a periodic or resource intensive task is invoked
        /// </remarks>
        protected async override void OnInvoke(ScheduledTask task)
        {
            try
            {
                Config.Initialize();
                var services = new WPSilverlightCoreServices();
                var tb       = new TransitBase.TransitBaseComponent(
                    root: services.FileSystem.GetAppStorageRoot(),
                    directionsService: null,
                    preLoad: false,
                    bigTableLimit: Config.Current.BigTableLimit,
                    checkSameRoutes: Config.Current.CheckSameRoutes,
                    latitudeDegreeDistance: Config.Current.LatitudeDegreeDistance,
                    longitudeDegreeDistance: Config.Current.LongitudeDegreeDistance
                    );
                var ub     = new UserBase.UserBaseLinqToSQLComponent("Data Source=isostore:ddb.sdf", Config.Current.UBVersion, forbidMigration: true);
                var common = new CommonComponent(services, tb, ub);

                foreach (var tile in ShellTile.ActiveTiles)
                {
                    if (tile.NavigationUri.OriginalString.StartsWith("/MainPage.xaml?tile="))
                    {
                        if (tile.NavigationUri.OriginalString.StartsWith("/MainPage.xaml?tile=stoproute"))
                        {
                            updateTileUnknown(tile);
                        }
                        else
                        {
                            Deployment.Current.Dispatcher.BeginInvoke(() =>
                            {
                                Tiles.UpdateTile(tile);
                                //bool ret = Tiles.UpdateTile(tile);
                                //if (ret == false)
                                //    updateTileUnknown(tile);
                                tb.Flush();
                            });
                        }
                    }
                }
                if (NetworkInterface.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 && NetworkInterface.GetIsNetworkAvailable() && !AppFields.UpdateAvailable)
                {
                    var checkResult = await UpdateMonitor.CheckUpdate();

                    if (checkResult == UpdateMonitor.Result.Found)
                    {
                        ShellToast toast = new ShellToast();
                        toast.Title   = "Update";
                        toast.Content = "A database update is required.";
                        toast.Show();
                    }
                }
            }
            catch (Exception) { }


            NotifyComplete();
        }
Exemplo n.º 8
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            if (e.NavigationMode == NavigationMode.New)
            {
                //adatbázis inicializálása első induláskor
                if (!App.TB.DatabaseExists || AppFields.ForceUpdate)
                {
                    await DatabaseDownloader.RunAsync();
                }

                ContentFrame.Navigate(typeof(DefaultPage));

                //frissítés keresése
                var checkUpdateResult = await UpdateMonitor.CheckUpdate();

                if (checkUpdateResult == UpdateMonitor.Result.Found)
                {
                    var dialog = new MessageDialog("A menetrend adatbázis elavult lehet.", "Frissítés elérhető");
                    dialog.Commands.Add(new UICommand {
                        Label = "Frissítés most", Id = true
                    });
                    dialog.Commands.Add(new UICommand {
                        Label = "Emlékeztessen később", Id = false
                    });
                    var res = await dialog.ShowAsync();

                    if ((bool)res.Id == true)
                    {
                        await DatabaseDownloader.RunAsync();

                        var finalDialog = new MessageDialog("A frissítés kész, kérem indítsa újra az alkalmazást.");
                        finalDialog.Commands.Add(new UICommand {
                            Label = "Rendben", Id = true
                        });
                        await finalDialog.ShowAsync();

                        throw new Exception("A frissítés kész, kérem indítsa újra az alkalmazást!");
                    }
                }

                //if (await ApplicationData.Current.LocalFolder.ContainsFileAsync("error.log"))
                //{
                //    var logFile = await ApplicationData.Current.LocalFolder.GetFileAsync("error.log");
                //    string logData;
                //    using (var logStream = await logFile.OpenStreamForReadAsync())
                //    {
                //        logData = new StreamReader(logStream).ReadToEnd();
                //    }
                //    new MessageDialog(logData).ShowAsync();
                //    await logFile.DeleteAsync();
                //}
            }
        }
Exemplo n.º 9
0
        // 로컬에서 데이터를 계속 보내주면 필요로 하는 데이터를 클라이언트에 보내준다.
        public void Handle(UpdateMonitor localData)
        {
            // 로컬 데이터를 계속해서 받는다.
            _localManager[localData.LocalData.LocalID].RealTimeLocalData =
                localData.LocalData;

            foreach (var obj in _localManager)
            {
                Context.Parent.Tell(new UpdateMonitor(obj.Value.RealTimeLocalData));
            }
        }
Exemplo n.º 10
0
        protected override async void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            if (e.NavigationMode == NavigationMode.New)
            {
                if (!App.AppEnabled)
                {
                    MessageBox.Show("Your trial period has expired. You cannot use the app until you buy the full version.");
                    App.Current.Terminate();
                }

                //InitializerProcess.SendStatisctics();

                if (!App.DatabaseExists() || AppFields.ForceUpdate)
                {
                    var downloadResult = await DownloadDBDialog.Show();

                    DownloadDone(downloadResult);
                }
                if (InitializerProcess.FirstRun)
                {
                    await ShowLocationConsentBox();
                }
                FavoritesTab.SetContent();
                contentSetterTask = new PeriodicTask(updateContent);
                contentSetterTask.RunEveryMinute();

                string tile;
                if (NavigationContext.QueryString.TryGetValue("tile", out tile) && !tile.StartsWith("stoproute"))
                {
                    IRouteStopPair pair = App.UB.TileRegister.Get(Int32.Parse(tile));
                    if (pair != null)
                    {
                        NavigateToRouteStopPage(this, pair.Route, pair.Stop);
                    }
                }

                var checkUpdateResult = await UpdateMonitor.CheckUpdate();

                if (checkUpdateResult == UpdateMonitor.Result.Found)
                {
                    IndicateUpdateAvailable();
                }
            }
            else
            {
                FavoritesTab.SetContent();
                if (contentSetterTask != null)
                {
                    contentSetterTask.Resume();
                }
            }
        }
Exemplo n.º 11
0
        public void ChangeMonitorStatus()
        {
            var index   = new Random().Next(this.monitorsCollection.Count - 1);
            var monitor = this.monitorsCollection.Monitors[index];

            var currentStatus  = monitor.IsEnabled;
            var monitorUpdater = new UpdateMonitor(this.apiKey);

            //change monitor status to another
            monitorUpdater.Execute(monitor, !currentStatus);
            monitor = this.monitorRetriver.GetMonitorByName(monitor.Name);
            Assert.IsFalse(currentStatus.Equals(monitor.IsEnabled));
            //revert back
            currentStatus = monitor.IsEnabled;
            monitorUpdater.Execute(monitor, !currentStatus);
            monitor = this.monitorRetriver.GetMonitorByName(monitor.Name);
            Assert.IsFalse(currentStatus.Equals(monitor.IsEnabled));
        }
Exemplo n.º 12
0
        // 해당 데이터를 클라이언트에게 보내준다.
        public void SendToClient_DataOfLocal(UpdateMonitor localData)
        {
            int sendData = 0;

            foreach (var client in _managerOfClients)
            {
                if (!client.Value.IsTerminated &&
                    client.Value.LocalIDMap.ContainsKey(localData.LocalData.LocalID))
                {
                    // 해당 클라이언트의 viewType을 확인한다.
                    if (client.Value.ViewType == ChangedViewType.E_NONE_VIEW)
                    {
                        continue;
                    }
                    else if (client.Value.ViewType == ChangedViewType.E_CPU_VIEW)
                    {
                        sendData = localData.LocalData.CPUValue;
                    }
                    else if (client.Value.ViewType == ChangedViewType.E_MEMORY_VIEW)
                    {
                        sendData = localData.LocalData.MEMValue;
                    }
                    else if (client.Value.ViewType == ChangedViewType.E_DISK_VIEW)
                    {
                        sendData = localData.LocalData.DiskValue;
                    }
                    else if (client.Value.ViewType == ChangedViewType.E_NETWORK_VIEW)
                    {
                        sendData = localData.LocalData.NetworkValue;
                    }
                    else
                    {
                        sendData = localData.LocalData.TotalValue;
                    }

                    client.Value.AssignedClientActor.Tell
                        (new MessageOfSendLocalData()
                    {
                        AssignedLocalID = localData.LocalData.LocalID,
                        WaveData        = sendData,
                    });
                }
            }
        }
Exemplo n.º 13
0
        // 해당 데이터를 클라이언트에게 보내준다.
        public void Handle(UpdateMonitor localData)
        {
            int sendData = 0;

            for (int i = 0; i < _clientsCount; i++)
            {
                if (!_managerOfClients[i].IsTerminated &&
                    _managerOfClients[i].LocalIDMap.ContainsKey(localData.LocalData.LocalID))
                {
                    if (_managerOfClients[i].LocalIDMap[localData.LocalData.LocalID])
                    {
                        // 해당 클라이언트의 viewType을 확인한다.
                        if (_managerOfClients[i].ViewType == ChangedViewType.E_NONE_VIEW)
                        {
                            continue;
                        }
                        else if (_managerOfClients[i].ViewType == ChangedViewType.E_CPU_VIEW)
                        {
                            sendData = localData.LocalData.CPUValue;
                        }
                        else if (_managerOfClients[i].ViewType == ChangedViewType.E_MEMORY_VIEW)
                        {
                            sendData = localData.LocalData.MEMValue;
                        }
                        else if (_managerOfClients[i].ViewType == ChangedViewType.E_DISK_VIEW)
                        {
                            sendData = localData.LocalData.DiskValue;
                        }
                        else if (_managerOfClients[i].ViewType == ChangedViewType.E_NETWORK_VIEW)
                        {
                            sendData = localData.LocalData.NetworkValue;
                        }
                        else
                        {
                            sendData = localData.LocalData.TotalValue;
                        }

                        _managerOfClients[i].AssignedClientActor.Tell(new MonitorUpdating(
                                                                          localData.LocalData.LocalID, sendData));
                    }
                }
            }
        }
Exemplo n.º 14
0
        public async void InitializePageState(object parameter)
        {
            if (!App.GetAppInfo().IsEnabled())
            {
                await new MessageDialog("Your trial period has expired. You cannot use the app until you buy the full version.").ShowAsync();
                App.Current.Exit();
            }

            InitializerProcess.SendStatisctics();
            Logging.Upload();

            if (!App.TB.DatabaseExists || AppFields.ForceUpdate)
            {
                var downloadResult = await DownloadDBDialog.Show();
                await DownloadDone(downloadResult, true);
            }
            if (InitializerProcess.FirstRun)
            {
                await ShowLocationConsentBox();
            }
            FavoritesPart.SetContent();
            stateManager.ScheduleTaskEveryMinute(updateContent);

            //if (App.SourceTileId != null)
            //{
            //    NavigateToTile(App.SourceTileId.Value);
            //}

            var checkUpdateResult = await UpdateMonitor.CheckUpdate();

            if (checkUpdateResult == UpdateMonitor.Result.Found)
            {
                IndicateUpdateAvailable();
            }

            //await Task.Delay(1000);
            //Frame.Navigate(typeof(TestPage));
        }
Exemplo n.º 15
0
        public override void Run()
        {
            while (!ExitRequested)
            {
                UpdateMonitor.NewFrame();

                using (UpdateMonitor.BeginCollecting(PerformanceCollectionType.Scheduler))
                {
                    UpdateScheduler.Update();
                }

                using (UpdateMonitor.BeginCollecting(PerformanceCollectionType.Update))
                {
                    UpdateSubTree();
                    using (var buffer = DrawRoots.Get(UsageType.Write))
                        buffer.Object = GenerateDrawNodeSubtree(buffer.Object);
                }

                using (UpdateMonitor.BeginCollecting(PerformanceCollectionType.Sleep))
                {
                    UpdateClock.ProcessFrame();
                }
            }
        }
Exemplo n.º 16
0
 public void SendToClient_DataOfLocal(UpdateMonitor dataOfLocal)
 {
     Context.Child("ClientServer").Tell(dataOfLocal);
 }
Exemplo n.º 17
0
 public void Handle(UpdateMonitor dataOfLocal)
 {
     Context.Child("ClientServer").Tell(dataOfLocal);
 }