using System; using System.Collections.Generic; using System.Web.Mvc; using Neo.Legitimate.Applications.Models; using Neo.Legitimate.Data.Models; using Pilotfish.Afx.Mvc; using Pilotfish.Afx.Services.Integration; using Pilotfish.Afx.ViewModels; using Neo.Legitimate.Common; using System.Linq; using System.Dynamic; namespace Neo.Legitimate.Applications.Controllers { public partial class ApplicationsController : Neo.Legitimate.Common.ControllerBase { #region Action Results #region PurificationCorrectRoutes public ActionResult PurificationCorrectRoutes() { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Securable.ApplicationsModule_Purification_CorrectRoute)) { return RedirectToAction("Default", "Applications"); } var database = new LegitimateDatabase(); var model = new PurificationCorrectRoutesModel(); //model.Routes = database.GetRoutes().ToList(); ViewBag.Controller = "Applications"; ViewBag.Page = "PurificationCorrectRoutes"; return View("PurificationCorrectRoutes", model); } #endregion #endregion #region JSON endpoints #region Purification_CorrectRoutes_SearchbyReferenceNumber [HttpPost] public JsonResult Purification_CorrectRoutes_SearchbyReferenceNumber(string updateType, string referenceNumber) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Securable.ApplicationsModule_Purification_CorrectRoute)) { throw new Exception("Security error"); } var errorMessage = ""; var success = false; var searchResults = new PurificationCorrectRoutesSearchResult(); var database = new LegitimateDatabase(); try { if (SecurityHelper.UserHasRole(Profile.Roles, Role.ApplicationAdministrator)) { switch (updateType) { case "A running application": searchResults.Routes = database.Purification_GetApplicationRoutes(referenceNumber); break; case "A running licence issue request": searchResults.Routes = database.Purification_GetLicenceRoutes(referenceNumber); break; default: break; } success = true; } else { errorMessage = "Security error"; } } catch (Exception ex) { errorMessage = database.GetInnermostMessage(ex); } dynamic response = new ExpandoObject(); long? itemID = -1L; itemID = database.Purification_GetItemIDFromReferenceNumber(referenceNumber); response.ItemID = itemID; response.SearchResults = searchResults.Routes; var results = new { ResponseObject = response, Success = success, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #region Purification_AddApplicationRoute [HttpPost] public JsonResult Purification_AddApplicationRoute(long applicationRequestDetailID, string nationalRouteNumber, string boardRouteNumber, string reason) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Securable.ApplicationsModule_Purification_CorrectRoute)) { throw new Exception("Security error"); } var errorMessage = ""; var success = false; var searchResults = new PurificationCorrectRoutesSearchResult(); var database = new LegitimateDatabase(); try { database.Purification_AddApplicationRoute(applicationRequestDetailID, nationalRouteNumber, boardRouteNumber, reason, Profile.UserID); success = true; } catch (Exception ex) { errorMessage = database.GetInnermostMessage(ex); } var results = new { ResponseObject = searchResults, Success = success, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #region Purification_AddLicenceRoute [HttpPost] public JsonResult Purification_AddLicenceRoute(long licenceIssueDetailID, string nationalRouteNumber, string boardRouteNumber, string reason) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Securable.ApplicationsModule_Purification_CorrectRoute)) { throw new Exception("Security error"); } var errorMessage = ""; var success = false; var searchResults = new PurificationCorrectRoutesSearchResult(); var database = new LegitimateDatabase(); try { database.Purification_AddLicenceRoute(licenceIssueDetailID, nationalRouteNumber, boardRouteNumber, reason, Profile.UserID); success = true; } catch (Exception ex) { errorMessage = database.GetInnermostMessage(ex); } var results = new { ResponseObject = searchResults, Success = success, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #region Purification_RemoveApplicationRoute [HttpPost] public JsonResult Purification_RemoveApplicationRoute(long applicationRequestDetailID, string applicationNationalRouteNumber, string applicationBoardRouteNumber, string reason) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Securable.ApplicationsModule_Purification_CorrectRoute)) { throw new Exception("Security error"); } var errorMessage = ""; var success = false; var searchResults = new PurificationCorrectRoutesSearchResult(); var database = new LegitimateDatabase(); try { database.Purification_RemoveApplicationRoute(applicationRequestDetailID, applicationNationalRouteNumber, applicationBoardRouteNumber, reason, Profile.UserID); success = true; } catch (Exception ex) { errorMessage = database.GetInnermostMessage(ex); } var results = new { ResponseObject = searchResults, Success = success, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #region Purification_RemoveLicenceRoute [HttpPost] public JsonResult Purification_RemoveLicenceRoute(long licenceIssueDetailID, string licenceNationalRouteNumber, string licenceBoardRouteNumber, string reason) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Securable.ApplicationsModule_Purification_CorrectRoute)) { throw new Exception("Security error"); } var errorMessage = ""; var success = false; var searchResults = new PurificationCorrectRoutesSearchResult(); var database = new LegitimateDatabase(); try { database.Purification_RemoveLicenceRoute(licenceIssueDetailID, licenceNationalRouteNumber, licenceBoardRouteNumber, reason, Profile.UserID); success = true; } catch (Exception ex) { errorMessage = database.GetInnermostMessage(ex); } var results = new { ResponseObject = searchResults, Success = success, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #region Purification_UpdateApplicationRouteChangeType [HttpPost] public JsonResult Purification_UpdateApplicationRouteChangeType(long applicationRouteDetailID, short newRouteChangeTypeID, string reason) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Securable.ApplicationsModule_Purification_CorrectRoute)) { throw new Exception("Security error"); } var errorMessage = ""; var success = false; var searchResults = new PurificationCorrectRoutesSearchResult(); var database = new LegitimateDatabase(); try { database.Purification_UpdateApplicationRouteChangeType(applicationRouteDetailID, newRouteChangeTypeID, reason, Profile.UserID); success = true; } catch (Exception ex) { errorMessage = database.GetInnermostMessage(ex); } var results = new { ResponseObject = searchResults, Success = success, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #endregion } }