Skip to content

Commit

Permalink
-added ipvalidator
Browse files Browse the repository at this point in the history
-fixed problem windows service startup
-recreated migrations
  • Loading branch information
Ondrej Tadanai committed Aug 17, 2018
1 parent 3905fb9 commit 13c9e03
Show file tree
Hide file tree
Showing 18 changed files with 193 additions and 363 deletions.
11 changes: 10 additions & 1 deletion Controllers/ConfigurationController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,17 @@ public class ConfigurationController : Controller
private readonly IDbManager _dbManager;
private readonly IJobManager _jobManager;
private readonly ICronValitador _cronValitador;
private readonly IIpValidator _ipValidator;

public ConfigurationController(IDbManager dbManager,
IJobManager jobManager,
ICronValitador cronValitador)
ICronValitador cronValitador,
IIpValidator ipValidator)
{
_dbManager = dbManager;
_jobManager = jobManager;
_cronValitador = cronValitador;
_ipValidator = ipValidator;
}

public async Task<IActionResult> Index()
Expand Down Expand Up @@ -106,6 +109,12 @@ public async Task<IActionResult> AddHead(ConfigurationIndexViewModel model)
return RedirectToAction("Index");
}

if (!_ipValidator.ValidateIPv4(model.HeaNewIp))
{
TempData.AddMessage("Error validating IP address:'" + model.HeaNewIp + "'", MessageType.Danger);
TempData["tab"] = "2";
return RedirectToAction("Index");
}

if (await _dbManager.AddHead(model.HeaNewName, model.HeaNewLocation, model.HeaNewHall, cronExpr.ToString(), model.HeaNewIp, model.HeaNewAddColls))
{
Expand Down
15 changes: 15 additions & 0 deletions Extensions/ExceptionExtensions.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace TestApp.Extensions
{
public static class ExceptionExtensions
{
public static string GetLogMessage(this Exception ex)
{
return $"{DateTime.Now:o}: EXCEPTION: {ex.Message}\n{ex.StackTrace}\n============================================";
}
}
}
15 changes: 12 additions & 3 deletions Extensions/WebHostServiceExtensions.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.ServiceProcess;
using System.Diagnostics;
using System.ServiceProcess;
using Microsoft.AspNetCore.Hosting;
using TestApp.Infrastructure;

Expand All @@ -8,8 +9,16 @@ public static class WebHostServiceExtensions
{
public static void RunAsCustomService(this IWebHost host)
{
var webHostService = new ServiceWebHostService(host);
ServiceBase.Run(webHostService);
try
{
var webHostService = new ServiceWebHostService(host);
ServiceBase.Run(webHostService);
}
catch (System.Exception ex)
{
Debugger.Launch();
throw;
}
}
}
}
6 changes: 3 additions & 3 deletions Infrastructure/ServiceWebHostService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ public ServiceWebHostService(IWebHost host) : base(host)

protected override void OnStarting(string[] args)
{
_logger.LogInformation("Starting new instance");
Debugger.Launch();
_logger.LogInformation("Starting new instance");
base.OnStarting(args);
}

protected override void OnStarted()
protected override void OnStarted()
{
_logger.LogInformation("Started new instance");
base.OnStarted();
Expand Down
88 changes: 50 additions & 38 deletions Infrastructure/Startup.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using Hangfire;
using System.Diagnostics;
using System.IO;
using Hangfire;
using Hangfire.MemoryStorage;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
Expand All @@ -8,6 +10,7 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using TestApp.DbModels;
using TestApp.Extensions;
using TestApp.HangFire;
using TestApp.Services;

Expand All @@ -18,6 +21,7 @@ public class Startup
{
public Startup(IConfiguration configuration)
{

Configuration = configuration;
}

Expand All @@ -26,52 +30,60 @@ public Startup(IConfiguration configuration)

public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<DatabaseContext>(i =>
{
i.UseSqlite(Configuration.GetValue<string>("SqliteFileName"));
});

services.AddElm(opts =>
{
opts.Path = new PathString("/logs");
opts.Filter = (name, level) => level >= LogLevel.Trace;
});
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddHangfire(x => x.UseMemoryStorage());
services.AddTransient<IDbManager, DbManager>();
services.AddTransient<IJobManager, JobManager>();
services.AddTransient<IWeberReader, WeberReader>();
services.AddTransient<ICronValitador, CronValidator>();
services.AddMvc();
try
{
services.AddDbContext<DatabaseContext>(i =>
{
i.UseSqlite(Configuration.GetValue<string>("SqliteFileName"));
});

services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddHangfire(x => x.UseMemoryStorage());
services.AddTransient<IDbManager, DbManager>();
services.AddTransient<IJobManager, JobManager>();
services.AddTransient<IWeberReader, WeberReader>();
services.AddTransient<ICronValitador, CronValidator>();
services.AddTransient<IIpValidator, IpValidator>();
services.AddMvc();
}
catch (System.Exception ex)
{
File.WriteAllText(Program.LogFile, ex.GetLogMessage());
throw;
}
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, DatabaseContext dabataseContext, IJobManager jobManager)
{
loggerFactory.AddLog4Net();

app.UseElmPage();
app.UseElmCapture();
try
{
loggerFactory.AddLog4Net();

if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
else
app.UseExceptionHandler("/Home/Error");
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
else
app.UseExceptionHandler("/Home/Error");

app.UseStaticFiles();
app.UseStaticFiles();

GlobalConfiguration.Configuration.UseActivator(new HangfireActivator(app.ApplicationServices));
app.UseHangfireServer();
app.UseHangfireDashboard("/jobs");
GlobalConfiguration.Configuration.UseActivator(new HangfireActivator(app.ApplicationServices));
app.UseHangfireServer();
app.UseHangfireDashboard("/jobs");

app.UseMvc(routes =>
app.UseMvc(routes =>
{
routes.MapRoute(
"default",
"{controller=Home}/{action=Index}/{id?}");
});
dabataseContext.Database.Migrate();
jobManager.CreateAllHeadsJobs();
}
catch (System.Exception ex)
{
routes.MapRoute(
"default",
"{controller=Home}/{action=Index}/{id?}");
});
dabataseContext.Database.Migrate();
jobManager.CreateAllHeadsJobs();

File.WriteAllText(Program.LogFile, ex.GetLogMessage());
throw;
}
}
}
}
115 changes: 0 additions & 115 deletions Migrations/20180705144227_InitialDatabases.Designer.cs

This file was deleted.

Loading

0 comments on commit 13c9e03

Please sign in to comment.