Esempio n. 1
0
        async private Task ReloadParentFolderSettings(bool ifNewer = true)
        {
            try
            {
                if (this.Type == MapServiceType.Folder || String.IsNullOrWhiteSpace(this.Folder))
                {
                    return;
                }

                var folderMapService = _mss.MapServices
                                       .Where(s => s.Type == MapServiceType.Folder && this.Folder.Equals(s.Name, StringComparison.InvariantCultureIgnoreCase))
                                       .FirstOrDefault() as MapService;

                if (folderMapService == null)
                {
                    return;
                }

                await folderMapService.ReloadServiceSettings(ifNewer);

                _folderSettings = folderMapService._settings;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (_folderSettings == null)
                {
                    _folderSettings = new MapServiceSettings();
                }
            }
        }
Esempio n. 2
0
        async private Task ReloadServiceSettings(bool ifNewer = true)
        {
            try
            {
                // Performance: Do not load a every Request
                if (_lastSettingsReload.HasValue && (DateTime.UtcNow - _lastSettingsReload.Value).TotalSeconds > 10)
                {
                    return;
                }

                FileInfo fi = new FileInfo(this.SettingsFilename);
                if (ifNewer == true)
                {
                    if (_settingsLastWriteTime.HasValue && _settingsLastWriteTime.Value >= fi.LastWriteTimeUtc)
                    {
                        return;
                    }
                }

                if (fi.Exists)
                {
                    _settings = JsonConvert.DeserializeObject <MapServiceSettings>(
                        await File.ReadAllTextAsync(fi.FullName));
                    _settingsLastWriteTime = fi.LastWriteTimeUtc;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (_settings == null)
                {
                    _settings = new MapServiceSettings();
                }

                await ReloadParentFolderSettings(ifNewer);
            }

            _lastSettingsReload = DateTime.UtcNow;
        }