using System.Web.Mvc; using Neo.Legitimate.Applications.Models; using Neo.Legitimate.Data.Models; using Pilotfish.Afx.Mvc; using Neo.Legitimate.Common; using System.Collections.Generic; using Neo.Legitimate.Common.Helpers; using System.Linq; using System; namespace Neo.Legitimate.Applications.Controllers { public partial class ApplicationsController : Neo.Legitimate.Common.ControllerBase { const int DEFAULT_REGION_ID = 4; //UMGUNGUNDLOVU #region Action Results #region Adjudication public ActionResult Adjudication() { var database = new LegitimateDatabase(); var model = new AdjudicationModel(); if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Securable.ApplicationsModule_Adjudication)) { return RedirectToAction("Default", "Applications"); } model.Regions = database.GetAdjudicationRegions(); if (Request.QueryString["regionid"] != null) { int regionID; if (int.TryParse(Request.QueryString["regionid"], out regionID)) { model.CurrentRegionID = regionID; } else { model.CurrentRegionID = DEFAULT_REGION_ID; } } else { model.CurrentRegionID = DEFAULT_REGION_ID; } if (SecurityHelper.UserHasRole(Profile.Roles, Neo.Legitimate.Common.Role.AgendaOfficer)) { model.CurrentAdjudicationHearing = database.GetCurrentAdjudicationDetail(-1, (short)Common.AdjudicationType.Hearing, model.CurrentRegionID, Profile.UserID); model.CurrentAdjudicationMeeting = database.GetCurrentAdjudicationDetail(-1, (short)Common.AdjudicationType.Meeting, model.CurrentRegionID, Profile.UserID); model.ApplicationsAwaitingAdjudication = new List(); //database.GetApplicationsAwaitingAdjudicationDataSubset((long)Defaults.SystemUserID, "18", model.CurrentRegionID); model.PostponedApplications = new List(); //database.GetApplicationsAwaitingAdjudicationDataSubset((long)Defaults.SystemUserID, "19", model.CurrentRegionID); model.AdjournedApplications = new List(); //database.GetApplicationsAwaitingAdjudicationDataSubset((long)Defaults.SystemUserID, "20", model.CurrentRegionID); } if ( SecurityHelper.UserHasRole(Profile.Roles, Neo.Legitimate.Common.Role.AgendaOfficer) || SecurityHelper.UserHasRole(Profile.Roles, Neo.Legitimate.Common.Role.AdjudicationSecretary) || SecurityHelper.UserHasRole(Profile.Roles, Neo.Legitimate.Common.Role.ChairmanOfTheAdjudicationPanel) || SecurityHelper.UserHasRole(Profile.Roles, Neo.Legitimate.Common.Role.AdjudicationPanelmember) ) { model.AdjudicationsAwaitingDecisions = database.GetAdjudicationsAwaitingHearingDecision(Profile, model.CurrentRegionID); } if ( SecurityHelper.UserHasRole(Profile.Roles, Neo.Legitimate.Common.Role.AdjudicationSecretary) || SecurityHelper.UserHasRole(Profile.Roles, Neo.Legitimate.Common.Role.ChairmanOfTheAdjudicationPanel) || SecurityHelper.UserHasRole(Profile.Roles, Neo.Legitimate.Common.Role.AdjudicationPanelmember) ) { model.PostAdjudicationTasks = database.GetApplicationsAwaitingAdjudication(Profile.UserID, "23,24,25", model.CurrentRegionID); } WebHelper.SetLastPageVisited(HttpContext, "Applications/Adjudication"); ViewBag.Controller = "Applications"; ViewBag.Page = "Adjudications"; return View("Adjudication", model); } #endregion #endregion #region JSON endpoints #region AdjudicationApplications [HttpPost] public JsonResult AddToAdjudication(string applicationsToAdjudication) { var database = new LegitimateDatabase(); var errorMessage = ""; var success = database.AddApplicationsToAdjudication(applicationsToAdjudication, Profile.UserID, out errorMessage); var results = new { Success = success, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #region GetApplicationsAwaitingAdjudicationList [HttpPost] public JsonResult GetApplicationsAwaitingAdjudicationList(long regionID) { var database = new LegitimateDatabase(); var errorMessage = ""; bool success; List records; try { records = database.GetApplicationsAwaitingAdjudicationDataSubset((long)Defaults.SystemUserID, "19", regionID).Where(a => a.AdjudicationCount == 0).ToList(); success = true; } catch (Exception ex) { records = null; success = false; } var results = new { Success = success, Records = records, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #region GetPostponedApplicationsList [HttpPost] public JsonResult GetPostponedApplicationsList(long regionID) { var database = new LegitimateDatabase(); var errorMessage = ""; bool success; IEnumerable records; try { records = database.GetApplicationsAwaitingAdjudicationDataSubset((long)Defaults.SystemUserID, "19", regionID).Where(a => a.AdjudicationCount >0).ToList(); success = true; } catch { records = null; success = false; } var results = new { Success = success, Records = records, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #region GetAdjournedApplicationsList [HttpPost] public JsonResult GetAdjournedApplicationsList(long regionID) { var database = new LegitimateDatabase(); var errorMessage = ""; bool success; IEnumerable records; try { records = database.GetApplicationsAwaitingAdjudicationDataSubset((long)Defaults.SystemUserID, "20", regionID); success = true; } catch { records = null; success = false; } var results = new { Success = success, Records = records, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #endregion } }