using System.Web.Mvc; using Neo.Legitimate.Applications.Models; using Neo.Legitimate.Data.Models; using Pilotfish.Afx.Mvc; using Neo.Legitimate.Common; using Pilotfish.Afx.Services.Workflows; using System.Linq; using Neo.Legitimate.Common.Helpers; using Pilotfish.Afx.ViewModels; using System.Collections.Generic; using Pilotfish.Afx.Services.Integration; namespace Neo.Legitimate.Applications.Controllers { [Authorize] public partial class ApplicationsController : Neo.Legitimate.Common.ControllerBase { #region Action Results #region Default public ActionResult Default() { var database = new LegitimateDatabase(); var wd = new WorkflowsDatabase(); var requestTypes = database.GetApplicationRequestTypes((short)Workflows.ApplicationRequest); var model = new DefaultModel { ApplicationRequestTypes = (requestTypes != null) ? requestTypes.Where(a => a.ApplicationRequestTypeID <= 11 || a.ApplicationRequestTypeID == 13 || a.ApplicationRequestTypeID == 27 || a.ApplicationRequestTypeID == 29 || a.ApplicationRequestTypeID == 30).ToList() : null, LinkedApplicationRequestTypes = (requestTypes != null) ? requestTypes.Where(a => a.ApplicationRequestTypeID > 13 && a.ApplicationRequestTypeID <= 26 || a.ApplicationRequestTypeID == 28).ToList() : null, SourceApplications = database.GetSourceApplications(), Modes = database.GetModes(), ServiceTypes = database.GetServiceTypes(), MyTasks = wd.GetTasks(Profile.UserID, 1), IncompleteReasons = database.GetPrecheckDetailIncompleteReasons(), Lookups = GetLookupsID() }; WebHelper.SetLastPageVisited(HttpContext, "Applications/Default"); ViewBag.Controller = "Applications"; ViewBag.Page = "Home"; return View("Default", model); } #endregion #endregion #region JSON endpoints #region SavePrecheck [HttpPost] public JsonResult SavePrecheck(short applicationRequestTypeID, short sourceApplicationID, string applicantName, string olPermitNumber, string idNumber, string chassisNumber, string vehicleRegistrationNumber, long? associationID, bool checkData, short? precheckDetailIncompleteReasonID, string contactEmail, string contactCell, short? modeID, long? numberOfVehiclesRequired, short? serviceTypeID) { var database = new LegitimateDatabase(); var errorMessage = ""; var notificationMessage = ""; var precheckDetailID = database.SavePrecheckDetail(-1, applicationRequestTypeID, sourceApplicationID, applicantName, olPermitNumber, idNumber, chassisNumber, vehicleRegistrationNumber, associationID, checkData, precheckDetailIncompleteReasonID, contactEmail, contactCell, Profile,modeID,numberOfVehiclesRequired, serviceTypeID, out notificationMessage, out errorMessage); var results = new { PrecheckDetailID = precheckDetailID.HasValue ? precheckDetailID.Value : -1, NotificationMessage = notificationMessage, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #endregion #region GetLookups public List GetLookupsID() { var lookups = new List(); var integrationStore = new SqlIntegrationStore(); try { integrationStore.Open(); lookups.Add(new LookupList("NewOLIDTypes", integrationStore.GetDataEntities("IDTypes", string.Empty).OrderBy(a => a.Title))); } finally { integrationStore.Close(); } return lookups; } #endregion } }