Added Viewer and

change to App Setting File from Constants
This commit is contained in:
2022-07-27 10:47:57 -07:00
parent 2afec95704
commit b155863645
1012 changed files with 53014 additions and 110896 deletions

View File

@ -1,5 +1,7 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.Extensions.Logging;
using OI.Metrology.Archive.Models;
using OI.Metrology.Shared.DataModels;
using OI.Metrology.Shared.Repositories;
using OI.Metrology.Shared.ViewModels;
@ -12,35 +14,33 @@ namespace OI.Metrology.Archive.Controllers;
public class ExportController : Controller
{
private ILogger Logger { get; }
private readonly ILogger _Logger;
private readonly bool _IsTestDatabase;
private readonly IMetrologyRepo _Repo;
protected IMetrologyRepo _Repo;
public ExportController(ILogger<ExportController> logger, IMetrologyRepo repo)
public ExportController(AppSettings appSettings, ILogger<ExportController> logger, IMetrologyRepo repo)
{
Logger = logger;
_Repo = repo;
_Logger = logger;
_IsTestDatabase = appSettings.ConnectionString.Contains("test", StringComparison.InvariantCultureIgnoreCase);
}
protected static void LoadToolTypes(Export m, IEnumerable<ToolType> toolTypes)
public override void OnActionExecuted(ActionExecutedContext context)
{
m.ToolTypes = toolTypes
.Where(tt => tt.ExportSPName != null)
.Select(tt => new Shared.Models.SelectListItem(tt.ToolTypeName, tt.ID.ToString())).ToList();
base.OnActionExecuted(context);
ViewBag.IsTestDatabase = _IsTestDatabase;
}
[HttpGet]
[Route("/Export")]
public ActionResult Index()
{
Export model = new();
LoadToolTypes(model, _Repo.GetToolTypes());
model.ToolType = "";
model.StartTime = DateTime.Now.AddMonths(-1);
model.EndTime = DateTime.Now;
Export model = new()
{
ToolType = "",
StartTime = DateTime.Now.AddMonths(-1),
EndTime = DateTime.Now
};
return View(model);
}
@ -48,19 +48,20 @@ public class ExportController : Controller
[Route("/ExportData")]
public ActionResult ExportData(Export model)
{
IEnumerable<ToolType> toolTypes = _Repo.GetToolTypes();
// is tooltype valid
ToolType toolType = toolTypes.Where(tt => tt.ID.ToString() == model.ToolType).SingleOrDefault();
if (toolType == null)
ModelState.AddModelError("ToolType", "Invalid selection");
else if (string.IsNullOrWhiteSpace(toolType.ExportSPName))
ModelState.AddModelError("ToolType", "Tool type is not exportable");
// is enddate after startdate
if (model.StartTime > model.EndTime)
ModelState.AddModelError("EndTime", "End time must be after start time");
ToolType toolType = null;
if (string.IsNullOrEmpty(model.ToolType))
ModelState.AddModelError("Exception", "Invalid selection");
else
{
if (model.StartTime > model.EndTime)
ModelState.AddModelError("EndTime", "End time must be after start time");
IEnumerable<ToolType> toolTypes = _Repo.GetToolTypes();
toolType = toolTypes.Where(tt => tt.ID.ToString() == model.ToolType).SingleOrDefault();
if (toolType is null)
ModelState.AddModelError("ToolType", "Invalid selection");
else if (string.IsNullOrWhiteSpace(toolType.ExportSPName))
ModelState.AddModelError("ToolType", "Tool type is not exportable");
}
if (ModelState.IsValid)
{
try
@ -72,19 +73,16 @@ public class ExportController : Controller
}
catch (Exception ex)
{
ModelState.AddModelError("", "Error exporting data");
ModelState.AddModelError("", ex.Message);
ModelState.AddModelError("Exception", "Error exporting data");
ModelState.AddModelError("Exception", ex.Message);
string errorMessage = $"Error exporting: {ex}";
Logger.LogError(message: errorMessage);
_Logger.LogError(message: errorMessage);
}
}
LoadToolTypes(model, toolTypes);
return View("Index", model);
}
protected ActionResult DoCSVExport(String toolTypeName, string spName, DateTime startTime, DateTime endTime)
protected ActionResult DoCSVExport(string toolTypeName, string spName, DateTime startTime, DateTime endTime)
{
string fileName = string.Format("Export_{0}_{1:yyyyMMddHHmm}_to_{2:yyyyMMddHHmm}.csv", toolTypeName, startTime, endTime);
StringBuilder sb = new();