示例#1
0
        internal void Start(Settings settings, CancellationToken token)
        {
            _Settings = settings;
            _Token = token;

            Task.Run(async () => await StartInternalAsync(), _Token);
        }
示例#2
0
        private async Task LoadSettingsAsync()
        {
            List<Exception> exceptions = new List<Exception>();

            var correlationId = Guid.NewGuid();

            try
            {
                await Log("Loading settings ...", correlationId);

                Settings = Util.GetObjectFromJson<Settings>(await FileIO.ReadTextAsync(await GetSettingsFile()));
            }
            catch (Exception ex)
            {
                Telemetry.TrackError(ex);
                exceptions.Add(ex);
            }

            if (Settings == null)
            {
                await Log("Settings do not exists, Initialising new settings ...", correlationId);
                try
                {
                    Settings = new Settings();
                }
                catch (Exception ex)
                {
                    Telemetry.TrackError(ex);
                    exceptions.Add(ex);
                }
            }

            if (Settings != null)
            {
                GetCredentials();
                await Log("Settings loaded.", correlationId);
                Settings.PropertyChanged += Settings_PropertyChanged;
            }
            else
            {
                LogBackground("Failed to load settings", MessageStatus.Error, correlationId);
                exceptions.ForEach(ex => LogBackground(ex.Message, MessageStatus.Error));
            }
        }
示例#3
0
 internal void Subscribe(BuildMonitor monitor, Settings settings)
 {
     monitor.RetrievingStatusStart += Monitor_RetrievingStatusStart;
     monitor.StatusChanged += Monitor_StatusChanged;
     _Settings = settings;
 }