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; using Neo.Afx.Common; namespace Neo.LegitimateLicences.OfficeLocationConsole.Controllers { public partial class OfficeLocationConsoleController : Neo.LegitimateLicences.Common.ControllerBase { #region Action Results #region Console public ActionResult Console(long officeLocationID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), SecurableEnum.AdminModule_OfficeLocations)) { return RedirectToAction("ShowError", "Error", new { msg = "Security error" }); } var database = new LegitimateDatabase(); var model = new ConsoleModel() { OfficeLocationID = officeLocationID }; ViewBag.Controller = "Office Location Details"; ViewBag.Page = "Office Location Details"; return View("Console", model); } #endregion #region Default public ActionResult Default(long officeLocationID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), SecurableEnum.AdminModule_OfficeLocations)) { return RedirectToAction("ShowError", "Error", new { msg = "Security error" }); } var database = new LegitimateDatabase(); var officeLocation = database.GetOfficeLocation(Profile.OfficeLocationID.Value); var currentOfficeLocationSetup = database.GetOfficeLocation(officeLocationID); if (currentOfficeLocationSetup == null) { currentOfficeLocationSetup = new Vw_OfficeLocationSetup(); } var model = new DefaultModel { OfficeLocationSetup = currentOfficeLocationSetup, Regions = database.GetRegions().ToList(), DivisionTypes = database.GetDivisionTypes(), Provinces = database.GetProvinces().ToList(), LicencingBoards = database.GetLicencingBoards(), OfficeLocationID = officeLocationID }; ViewBag.Controller = "Office Location Details"; ViewBag.Page = "Office Location Details"; return View("Default", model); } #endregion #region DocumentTemplates public ActionResult DocumentTemplates(long officeLocationID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), SecurableEnum.AdminModule)) { return RedirectToAction("ShowError", "Error", new { msg = "Security error" }); } var database = new LegitimateDatabase(); var model = new DocumentTemplatesModel { OfficeLocationSetupDocumentTemplate = database.GetOfficeLocationSetupDocumentTemplate(officeLocationID), OfficeLocationID = officeLocationID }; ViewBag.Controller = "Document Templates"; ViewBag.Page = "Document Templates"; return View("DocumentTemplates", model); } #endregion #endregion #region JSON endpoints #region SaveOfficeLocationSetup [HttpPost] public JsonResult SaveOfficeLocationSetup(long officeLocationID, OfficeLocationSetup officeLocationSetup) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.SecurableEnum.AdminModule_OfficeLocations)) { throw new Exception("Security error"); } var database = new LegitimateDatabase(); var errorMessage = ""; long returnOfficeLocationID = 0; try { #region Save Templates officeLocationSetup.OfficeLocationID = officeLocationID; database.UpsertOfficeLocationSetup(officeLocationID, officeLocationSetup, Profile.UserID); #endregion } catch (Exception ex) { errorMessage = ExceptionHelper.GetInnermostMessage(ex); } var results = new { Response = returnOfficeLocationID, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #region SaveOfficeLocationDocumentTemplates [HttpPost] public JsonResult SaveOfficeLocationDocumentTemplates(long officeLocationID, OfficeLocationSetupDocumentTemplate officeLocationSetupDocumentTemplate) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.SecurableEnum.AdminModule_OfficeLocations)) { throw new Exception("Security error"); } var database = new LegitimateDatabase(); var errorMessage = ""; try { #region Save Templates officeLocationSetupDocumentTemplate.OfficeLocationID = officeLocationID; database.UpsertOfficeLocationSetupDocumentTemplate(officeLocationID, officeLocationSetupDocumentTemplate, Profile.UserID); #endregion } catch (Exception ex) { errorMessage = ExceptionHelper.GetInnermostMessage(ex); } var results = new { Response = officeLocationID, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #endregion #region GetLookups public List GetLookups() { var lookups = new List(); var database = new LegitimateDatabase(); var integrationStore = new SqlIntegrationStore(); try { integrationStore.Open(); lookups.Add(new LookupList("ApplicationActiveWorkflows", integrationStore.GetDataEntities("ActiveWorkflows", string.Empty))); lookups.Add(new LookupList("ApplicationWorkflowInstanceStatus", integrationStore.GetDataEntities("WorkflowInstanceStatus", string.Empty))); lookups.Add(new LookupList("ApplicationWorkflowTemplateSteps", integrationStore.GetDataEntities("WorkflowTemplateSteps", string.Empty))); lookups.Add(new LookupList("LicenceStatuses", database.GetLicenceStatuses())); } finally { integrationStore.Close(); } return lookups; } #endregion } }