private void CreateFileWatcher(SettingsType a_SettingsType) { try { string _Path = EnumeratorParser.GetStringValue(a_SettingsType); if (a_SettingsType.Equals(SettingsType.TraneObjectMaps)) { _FullPath = string.IsNullOrEmpty(ConfigurationManager.AppSettings["TraneObjectMapFolder"]) ? Path.Combine(@"C:\SPGateway\Metadata\", _Path) : ConfigurationManager.AppSettings["TraneObjectMapFolder"] + _Path; } else { _FullPath = string.IsNullOrEmpty(ConfigurationManager.AppSettings["PersistenceDirectory"]) ? Path.Combine(@"C:\SPGateway\Settings\", _Path) : ConfigurationManager.AppSettings["PersistenceDirectory"] + _Path; } _FileDirectory = Path.GetDirectoryName(_FullPath); _Filter = Path.GetFileName(_FullPath); FileSystemWatcher a_FileWatcher = new FileSystemWatcher(_FileDirectory, _Filter); a_FileWatcher.NotifyFilter = NotifyFilters.LastWrite; a_FileWatcher.Changed += _FileChanged_Event; a_FileWatcher.EnableRaisingEvents = true; } catch (Exception ex) { if (_Logger != null) { _Logger.LogIf(COMPONENT_NAME, TraceLevel.Error, ex); } } }
/// <summary> /// Intialize the corresponding file system watcher. /// </summary> private void Intialize() { foreach (SettingsType a_SettingType in Enum.GetValues(typeof(SettingsType))) { try { _FullPath = EnumeratorParser.GetStringValue(a_SettingType); _FileDirectory = Path.GetDirectoryName(_FullPath); _Filter = Path.GetFileName(_FullPath); switch (a_SettingType) { case SettingsType.GatewayLogSettings: case SettingsType.MessageRouterSettings: case SettingsType.SiteManagerSettings: case SettingsType.TunnelManagerSettings: case SettingsType.DataOffloaderServiceEndpoints: case SettingsType.TraneObjectMaps: CreateFileWatcher(a_SettingType); break; case SettingsType.DataCollectionConfiguration: CreateDirectoryWatcher(); break; default: ////Do nothing here,jus handled for default, for future case. break; } } catch (Exception ex) { if (_Logger != null) { _Logger.LogIf(COMPONENT_NAME, TraceLevel.Error, ex); } } } }