reference ConfigurationHandler and update calls to get configurations.

removed ConfigMonitor.cs.
#54
This commit is contained in:
chris.watts90@outlook.com 2017-03-02 22:04:58 +00:00
parent bd54511d70
commit bb1eeed231
13 changed files with 25 additions and 123 deletions

View File

@ -19,7 +19,6 @@ namespace CardReaderService
private SCardMonitor _cardMonitor;
private ILogger _logger;
private ConfigMonitor.ConfigMonitor _cfgMonitor;
public CardReaderService()
{
@ -38,8 +37,6 @@ namespace CardReaderService
_logger = NinjectHelper.GetInstance().Get<ILogger>();
_logger.Trace("Starting Service.. Getting available readers");
_cfgMonitor = new ConfigMonitor.ConfigMonitor(configPath);
var ctxFactory = ContextFactory.Instance;
using(var context = ctxFactory.Establish(SCardScope.System))
{
@ -54,7 +51,7 @@ namespace CardReaderService
_logger.Trace("Found reader: {0}", reader);
}
var readerNameConfig = ConfigurationManager.AppSettings["ReaderName"];
var readerNameConfig = ConfigurationHandler.ConfigurationHandler.GetConfiguration("ReaderName");
if (string.IsNullOrEmpty(readerNameConfig))
{
if (!readerNames.Contains(readerNameConfig))
@ -83,8 +80,6 @@ namespace CardReaderService
protected override void OnStop()
{
_cfgMonitor.Stop();
_stopMainWorkerThread = true;
if (_mainWorkThread!= null && _mainWorkThread.IsAlive)
{

View File

@ -80,9 +80,9 @@
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ConfigMonitor\ConfigMonitor.csproj">
<Project>{6f3878b0-1e07-4de7-bfec-509ff4443b71}</Project>
<Name>ConfigMonitor</Name>
<ProjectReference Include="..\ConfigurationHandler\ConfigurationHandler.csproj">
<Project>{115250F6-F8C4-4F9B-A15F-251EA258D963}</Project>
<Name>ConfigurationHandler</Name>
</ProjectReference>
<ProjectReference Include="..\Interfaces\Interfaces.csproj">
<Project>{B7347B72-E208-423A-9D99-723B558EA3D7}</Project>

View File

@ -13,7 +13,7 @@ namespace CardReaderService
{
public static void Post(CardDataPost postObject, string url)
{
var endpointConfig = ConfigurationManager.AppSettings["DataCenterServiceEndpoint"] ??
var endpointConfig = ConfigurationHandler.ConfigurationHandler.GetConfiguration("DataCenterServiceEndpoint") ??
"http://localhost:8800";
using (var client = new HttpClient())

View File

@ -49,6 +49,10 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ConfigurationHandler\ConfigurationHandler.csproj">
<Project>{115250F6-F8C4-4F9B-A15F-251EA258D963}</Project>
<Name>ConfigurationHandler</Name>
</ProjectReference>
<ProjectReference Include="..\Interfaces\Interfaces.csproj">
<Project>{B7347B72-E208-423A-9D99-723B558EA3D7}</Project>
<Name>Interfaces</Name>

View File

@ -1,5 +1,4 @@
using System;
using System.Configuration;
using System.IO;
using System.Reflection;
using NLog;
@ -13,7 +12,8 @@ namespace NLogLogger
private NLog.Logger _logger;
public NLogger()
{
var nlogConfigPathOption = ConfigurationManager.AppSettings["NLogConfigFilePath"];
var nlogConfigPathOption =
ConfigurationHandler.ConfigurationHandler.GetConfiguration("NLogConfigFilePath");
if (nlogConfigPathOption == null)
{
throw new ArgumentNullException("nlogConfigPath");

View File

@ -1,11 +1,9 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Security.Cryptography.X509Certificates;
using Interfaces;
using SQLite.Net;
using SQLite.Net.Platform.Win32;
@ -368,7 +366,7 @@ namespace SQLiteRepository
if (ident.UserId_FK!=-1)
{ //only check log gap if the card is associated to a user
var hysteresisThresholdMinutes = Convert.ToInt32(ConfigurationManager.AppSettings["SwipeTimeGap"] ?? "3");
var hysteresisThresholdMinutes = Convert.ToInt32(ConfigurationHandler.ConfigurationHandler.GetConfiguration("SwipeTimeGap") ?? "3");
var threshold = DateTime.UtcNow.AddMinutes(0 - hysteresisThresholdMinutes);
var logs = _connection.Query<TimeLogDb>(
SQLiteProcedures.GET_LOGS_IN_LAST_X_MINUTES,

View File

@ -69,6 +69,10 @@
<Compile Include="UserIdentity.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ConfigurationHandler\ConfigurationHandler.csproj">
<Project>{115250F6-F8C4-4F9B-A15F-251EA258D963}</Project>
<Name>ConfigurationHandler</Name>
</ProjectReference>
<ProjectReference Include="..\Interfaces\Interfaces.csproj">
<Project>{B7347B72-E208-423A-9D99-723B558EA3D7}</Project>
<Name>Interfaces</Name>

View File

@ -1,93 +0,0 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WindowsDataCenter
{
public class ConfigMonitor
{
private readonly FileSystemWatcher _watcher;
private DateTime _lastChange;
public ConfigMonitor(string configFilePath)
{
if (configFilePath == null)
{
throw new ArgumentNullException(nameof(configFilePath));
}
_lastChange = DateTime.MinValue;
configFilePath = string.Concat(System.Reflection.Assembly.GetEntryAssembly().Location, ".config");
if (File.Exists(configFilePath))
{
_watcher = new FileSystemWatcher(Path.GetDirectoryName(configFilePath), Path.GetFileName(configFilePath))
{
EnableRaisingEvents = true
};
_watcher.Changed += Watcher_Changed;
}
}
~ConfigMonitor()
{
_watcher.EnableRaisingEvents = false;
_watcher.Changed -= Watcher_Changed;
_watcher.Dispose();
}
public void Stop()
{
_watcher.EnableRaisingEvents = false;
_watcher.Changed -= Watcher_Changed;
_watcher.Dispose();
}
private void Watcher_Changed(object sender, FileSystemEventArgs e)
{
if ((DateTime.Now - _lastChange).Seconds <= 5 || IsFileLocked(e.FullPath)) return;
var monitoredSections = ConfigurationManager.AppSettings["monitoredSections"];
if (monitoredSections != null)
{
IEnumerable<string> sections = monitoredSections.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
if (sections.Any())
{
foreach (var section in sections)
{
ConfigurationManager.RefreshSection(section);
}
}
}
else
{
Debug.WriteLine(ConfigurationManager.AppSettings["SwipeTimeGap"]);
ConfigurationManager.RefreshSection("AppSettings");
Debug.WriteLine(ConfigurationManager.AppSettings["SwipeTimeGap"]);
}
_lastChange = DateTime.Now;
}
private bool IsFileLocked(string filePath)
{
FileStream stream = null;
try
{
stream = File.OpenRead(filePath);
}
catch (IOException)
{
return true;
}
finally
{
stream?.Close();
}
return false;
}
}
}

View File

@ -1,5 +1,4 @@
using System.Configuration;
using System.Reflection;
using System.Reflection;
using System.Web.Http;
using Interfaces;
@ -18,7 +17,7 @@ namespace WindowsDataCenter
DataBaseProvider = ninjectHelper.Get<IRepository>().GetType().ToString(),
LoggerProvider = ninjectHelper.Get<ILogger>().GetType().ToString(),
Version = Assembly.GetEntryAssembly().GetName().Version.ToString(),
ErrorEmailAddress = ConfigurationManager.AppSettings["BugSubmissionEmailAddress"] ?? "NONE"
ErrorEmailAddress = ConfigurationHandler.ConfigurationHandler.GetConfiguration("BugSubmissionEmailAddress") ?? "NONE"
};
return Ok(appDetails);

View File

@ -54,7 +54,7 @@ namespace WindowsDataCenter
private int GetPageSize(int pageSize)
{
var cfgPageSize = ConfigurationManager.AppSettings["DefaultPageSize"] ?? 10.ToString();
var cfgPageSize = ConfigurationHandler.ConfigurationHandler.GetConfiguration("DefaultPageSize")?? 10.ToString();
return pageSize == -1
? Convert.ToInt32(cfgPageSize)

View File

@ -1,5 +1,4 @@
using System;
using System.Diagnostics;
using System.ServiceProcess;
using System.Threading;
using Interfaces;
@ -18,7 +17,6 @@ namespace WindowsDataCenter
private bool _stopMainWorkerThread;
private Thread _mainWorkerThread;
private ILogger _logger;
private ConfigMonitor _cfgWatcher;
public void Start()
{
@ -38,7 +36,6 @@ namespace WindowsDataCenter
_logger = NinjectHelper.GetInstance().Get<ILogger>();
_logger.Trace("Starting Data Center Service");
_cfgWatcher = new ConfigMonitor(configPath);
_logger.Trace("Monitoring App.config for changes");
_mainWorkerThread = new Thread(MainWorkerThread)
{
@ -63,9 +60,6 @@ namespace WindowsDataCenter
_webApp.Dispose();
_logger.Trace("Stopped WebApi");
_cfgWatcher.Stop();
_logger.Trace("Stopped Config Watcher");
_stopMainWorkerThread = true;
if (_mainWorkerThread != null && _mainWorkerThread.IsAlive)
{

View File

@ -19,8 +19,6 @@ namespace WindowsDataCenter
config.MapHttpAttributeRoutes();
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
//ninject resolver for ApiController DI.
//config.DependencyResolver = new NinjectDependencyResolver(NinjectHelper.GetInstance().Kernel);
//JSONP formatter for cross-domain requests.
config.Formatters.Insert(0, new JsonpFormatter());

View File

@ -147,7 +147,6 @@
</ItemGroup>
<ItemGroup>
<Compile Include="CardData.cs" />
<Compile Include="ConfigMonitor.cs" />
<Compile Include="Controllers\ApplicationController.cs" />
<Compile Include="Controllers\CardsController.cs" />
<Compile Include="Configuration.cs" />
@ -262,6 +261,10 @@
<Content Include="sqlite3.dll" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ConfigurationHandler\ConfigurationHandler.csproj">
<Project>{115250F6-F8C4-4F9B-A15F-251EA258D963}</Project>
<Name>ConfigurationHandler</Name>
</ProjectReference>
<ProjectReference Include="..\Interfaces\Interfaces.csproj">
<Project>{B7347B72-E208-423A-9D99-723B558EA3D7}</Project>
<Name>Interfaces</Name>