using System.Web.Mvc; using Neo.Legitimate.MemberConsole.Models; using Neo.Legitimate.Data.Models; using Pilotfish.Afx.Mvc; using System; using Neo.Legitimate.Common; using System.Linq; namespace Neo.Legitimate.MemberConsole.Controllers { [Authorize] public class MemberConsoleController : Neo.Legitimate.Common.ControllerBase { private const long _entityID = 1009; private const long _documentStoreLocationID = 3; #region Action Results #region Default public ActionResult Default(long MemberID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Securable.MembersModule_ViewMemberConsole)) { return RedirectToAction("ShowError", "Error", new { msg = "Security error" }); } var database = new LegitimateDatabase(); var model = new DefaultModel { Member = database.GetVerifiedMember(MemberID), entityID = _entityID, itemID = MemberID, DocumentStoreLocationID = _documentStoreLocationID }; model.BrowserTitle = (model.Member.MemberID == -1) ? "New member" : model.Member.FullName; ViewBag.Controller = "Member Details"; ViewBag.Page = "Member Details"; return View("Default", model); } #endregion #region Vehicles public ActionResult Vehicles(long MemberID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Securable.MembersModule_ViewMemberConsole)) { return RedirectToAction("ShowError", "Error", new { msg = "Security error" }); } var database = new LegitimateDatabase(); var model = new VehicleModel { Member = database.GetVerifiedMember(MemberID), Vehicles = database.GetMemberVehicles(MemberID), entityID = _entityID, itemID = MemberID, DocumentStoreLocationID = _documentStoreLocationID }; model.BrowserTitle = (model.Member.MemberID == -1) ? "New member" : model.Member.FullName; ViewBag.Controller = "Vehicles"; ViewBag.Page = "Vehicles"; return View("Vehicles", model); } #endregion #region OperatingLicences public ActionResult OperatingLicences(long MemberID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Securable.MembersModule_ViewMemberConsole)) { return RedirectToAction("ShowError", "Error", new { msg = "Security error" }); } var database = new LegitimateDatabase(); var model = new OperatingLicenceModel { Member = database.GetVerifiedMember(MemberID), OperatingLicences = database.GetLicencesByMember(MemberID), entityID = _entityID, itemID = MemberID, DocumentStoreLocationID = _documentStoreLocationID }; model.BrowserTitle = (model.Member.MemberID == -1) ? "New member" : model.Member.FullName; ViewBag.Controller = "Operating Licences"; ViewBag.Page = "Operating Licences"; return View("OperatingLicences", model); } #endregion #region Applications public ActionResult Applications(long MemberID) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Securable.MembersModule_ViewMemberConsole)) { return RedirectToAction("ShowError", "Error", new { msg = "Security error" }); } var database = new LegitimateDatabase(); var member = database.GetVerifiedMember(MemberID); var model = new ApplicationsModel { Member = member, Applications = database.GetMemberApplications(member), entityID = _entityID, itemID = MemberID, DocumentStoreLocationID = _documentStoreLocationID }; model.BrowserTitle = (model.Member.MemberID == -1) ? "New member" : model.Member.FullName; ViewBag.Controller = "Applications"; ViewBag.Page = "Applications"; return View("Applications", model); } #endregion #endregion #region JSON endpoints [HttpPost] public JsonResult Save(VerifiedMember value) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Securable.MembersModule_MemberConsole_SaveMemberContactDetails)) { throw new Exception("Security error"); } var database = new LegitimateDatabase(); var errorMessage = ""; try { database.VerifiedMemberUpdate(value, Profile.UserID); } catch (Exception ex) { errorMessage = database.GetInnermostMessage(ex); } var results = new { ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion } }