using Neo.Afx.Mvc; using Neo.Afx.Services.Integration; using Neo.Afx.Services.Workflows; using Neo.Afx.ViewModels; using Neo.LegitimateLicences.Common; using Neo.LegitimateLicences.Common.Helpers; using Neo.LegitimateLicences.Data.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace Neo.LegitimateLicences.RouteConsole.Controllers { public class RouteConsoleController : Neo.LegitimateLicences.Common.ControllerBase { private const long _entityID = 1010; private const long _documentStoreLocationID = 3; #region Action Results #region Console public ActionResult Console(long routeID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), SecurableEnum.RoutesModule_ViewRouteConsole)) { return RedirectToAction("ShowError", "Error", new { msg = "Security error" }); } var database = new LegitimateDatabase(); var model = new ConsoleModel() { RouteID = routeID }; //model.BrowserTitle = model.Association.AssociationName; ViewBag.Controller = "Member Details"; ViewBag.Page = "Member Details"; return View("Console", model); } #endregion #region Default public ActionResult Default(long routeID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), SecurableEnum.RoutesModule_ViewRouteConsole)) { return RedirectToAction("ShowError", "Error", new { msg = "Security error" }); } var database = new LegitimateDatabase(); var model = new DefaultModel { Route = database.GetVerifiedRoute(routeID), Provinces = database.GetProvinces(), Workflows = database.GetNewRouteRequestWorkflows(routeID), entityID = _entityID, itemID = routeID, DocumentStoreLocationID = _documentStoreLocationID }; ViewBag.Controller = "Route Details"; ViewBag.Page = "Route Details"; return View("Default", model); } #endregion #region OperatingLicences public ActionResult OperatingLicences(long routeID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), SecurableEnum.RoutesModule_ViewRouteConsole)) { return RedirectToAction("ShowError", "Error", new { msg = "Security error" }); } var database = new LegitimateDatabase(); var model = new OperatingLicenceModel { Route = database.GetVerifiedRoute(routeID), OperatingLicences = database.GetVerifiedRouteLicences(routeID), entityID = _entityID, itemID = routeID, DocumentStoreLocationID = _documentStoreLocationID }; ViewBag.Controller = "Operating Licences"; ViewBag.Page = "Operating Licences"; return View("OperatingLicences", model); } #endregion #region Nodes public ActionResult Nodes(long routeID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), SecurableEnum.RoutesModule_ViewRouteConsole)) { return RedirectToAction("ShowError", "Error", new { msg = "Security error" }); } var database = new LegitimateDatabase(); var model = new NodeModel { Route = database.GetVerifiedRoute(routeID), entityID = _entityID, itemID = routeID, DocumentStoreLocationID = _documentStoreLocationID }; ViewBag.Controller = "Route Nodes"; ViewBag.Page = "Route Nodes"; return View("Nodes", model); } #endregion #region Associations public ActionResult Associations(long routeID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), SecurableEnum.RoutesModule_ViewRouteConsole)) { return RedirectToAction("ShowError", "Error", new { msg = "Security error" }); } var database = new LegitimateDatabase(); var model = new AssociationsModel { Route = database.GetVerifiedRoute(routeID), Associations = database.GetRouteAssociationSummary(routeID, Profile.UserID), entityID = _entityID, itemID = routeID, DocumentStoreLocationID = _documentStoreLocationID }; ViewBag.Controller = "Associations"; ViewBag.Page = "Associations"; return View("Associations", model); } #endregion #endregion #region JSON endpoints #region SendToPurification [HttpPost] public JsonResult SendToPurification(long routeId) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), SecurableEnum.RoutesModule_SendToPurification)) { throw new Exception("Security error"); } var database = new LegitimateDatabase(); var errorMessage = ""; var success = false; try { if (SecurityHelper.UserHasRole(Profile.Roles, RoleEnum.DataPurification)) { database.SendToPurification(routeId, Profile.UserID); success = true; } else { errorMessage = "Security error"; } } catch (Exception ex) { errorMessage = database.GetInnermostMessage(ex); } var result = new { Success = success, ErrorMessage = errorMessage }; return Json(result, JsonSerializerOptions.None); } #endregion #endregion } }