using Neo.Afx.ComponentModel; using Neo.Afx.Mvc; using Neo.Afx.Security; using Neo.Afx.Services.Integration; using Neo.Afx.Services.Notifications.Entities; using Neo.Afx.Services.Workflows.Entities; using Neo.Afx.ViewModels; using Neo.LegitimateLicences.ApplicationRequest.Models.Database; 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; namespace Neo.LegitimateLicences.ApplicationRequest { public partial class ApplicationRequestController { #region Form /// /// Return Application Request Form /// /// public ActionResult Form() { var itemId = WebHelper.ItemID; var taskId = WebHelper.TaskID; #region Get active user task Vw_WorkflowInstanceTask activeUserTask = null; if (taskId != -1) { activeUserTask = WorkflowHelper.GetActiveUserUserTaskByID((long)EntityEnum.ApplicationRequestDetails, itemId, taskId, Profile.UserID); } if (activeUserTask == null) { activeUserTask = WorkflowHelper.GetActiveUserTask(Profile.UserID, EntityEnum.ApplicationRequestDetails, itemId); } #endregion var model = new ApplicationRequestFormModel { UserSecurables = (Profile.Securables != null) ? Profile.Securables.ToList() : new List(), Ui = new WorkflowConsoleUIProperties() { canSave = (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 1) } }; var applicationDatabase = new ApplicationDatabase(); var database = new LegitimateDatabase(); var application = applicationDatabase.GetApplicationForm(itemId, Profile.UserID); var applicationView = applicationDatabase.GetApplicationView(itemId, Profile.UserID); #region Check for related TAT Request if (application.RelatedTATApplicationRequestID != null) { model.RelatedTATApplicationDetails = applicationDatabase.GetApplicationTATDetails(application.RelatedTATApplicationRequestID.Value, Profile.UserID); } else { model.RelatedTATApplicationDetails = new ApplicationDetail(); } #endregion #region Get Form Data model.Data = application; model.Lookups = GetLookupsForFormGetLookupsFormView(); model.WorkflowInstance = WorkflowHelper.GetWorkflowInstanceView(WebHelper.EntityID, WebHelper.ItemID, Profile.UserID); model.ApplicationView = applicationView; if (model.ApplicationView.CopiedFromApplicationDetailID != null) { model.ParentApplicationView = Database.GetApplicationView(model.ApplicationView.CopiedFromApplicationDetailID.Value, Profile.UserID); } else { model.ParentApplicationView = new Neo.LegitimateLicences.ApplicationRequest.Models.Database.Vw_ApplicationDetails_Light(); } model.SetFormEditState(activeUserTask); model.OfficeLocationDocumentTemplates = database.GetOfficeLocationSetupDocumentTemplate(Profile.OfficeLocationID.Value); #endregion #region Populate Viewbag ViewBag.ApplicationRequestTypeID = application.ApplicationRequestTypeID; ViewBag.IsBulkApplication = application.IsBulkApplication; ViewBag.IsLtpsConversion = application.IsLtpsConversion; ViewBag.IsReadOnly = ((Vw_WorkflowInstance)model.WorkflowInstance).WorkflowInstanceStatusID == (short)WorkflowInstanceStatusEnum.Completed; #endregion return View("Form", model); } #endregion #region GetLookupsForFormGetLookupsFormView /// /// Get Lookup list /// /// public List GetLookupsForFormGetLookupsFormView() { 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))); lookups.Add(new LookupList("NewOLIDTypesIndividual", integrationStore.GetDataEntities("IDTypes", "IndvidualTypesOnly=1").OrderBy(a => a.Title))); lookups.Add(new LookupList("NewOLModes", integrationStore.GetDataEntities("Modes", string.Empty).OrderBy(a => a.Title))); lookups.Add(new LookupList("NewOLServiceTypes", integrationStore.GetDataEntities("ServiceTypes", string.Empty))); lookups.Add(new LookupList("NewOLContractTypes", integrationStore.GetDataEntities("ContractTypes", string.Empty).OrderBy(a => a.Title))); lookups.Add(new LookupList("NewOLPaymentTypes", integrationStore.GetDataEntities("PaymentTypes", string.Empty).OrderBy(a => a.Title))); lookups.Add(new LookupList("NewOLVehicleTypes", integrationStore.GetDataEntities("VehicleTypes", string.Empty).OrderBy(a => a.Title))); lookups.Add(new LookupList("NewOLBusinessTypes", integrationStore.GetDataEntities("BusinessTypes", string.Empty).OrderBy(a => a.Title))); lookups.Add(new LookupList("NewOLCarryingCapacities", integrationStore.GetDataEntities("CarryingCapacities", string.Empty))); lookups.Add(new LookupList("AdjudicationDecisions", integrationStore.GetDataEntities("Decisions", string.Empty).OrderBy(a => a.Title))); lookups.Add(new LookupList("LicenceDurations", integrationStore.GetDataEntities("LicenceDurations", string.Empty))); } finally { integrationStore.Close(); } return lookups; } #endregion #region GetModel /// /// Get ApplicationRequestFormModel /// /// public ApplicationRequestFormModel GetModel() { #region Check if can save var itemId = WebHelper.ItemID; var taskId = WebHelper.TaskID; Vw_WorkflowInstanceTask activeUserTask = null; if (taskId != -1) { activeUserTask = WorkflowHelper.GetActiveUserUserTaskByID((long)EntityEnum.ApplicationRequestDetails, itemId, taskId, Profile.UserID); } if (activeUserTask == null) { activeUserTask = WorkflowHelper.GetActiveUserTask(Profile.UserID, EntityEnum.ApplicationRequestDetails, itemId); } var model = new ApplicationRequestFormModel { UserSecurables = (Profile.Securables != null) ? Profile.Securables.ToList() : new List(), Ui = new WorkflowConsoleUIProperties() { canSave = (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 1), canSubmit = (activeUserTask != null && activeUserTask.WorkflowTemplateStepTypeID == (short)WorkflowTemplateStepTypeEnum.DataCapture) } }; var applicationDatabase = new ApplicationDatabase(); var application = applicationDatabase.GetApplicationForm(itemId, Profile.UserID); var applicationView = applicationDatabase.GetApplicationView(itemId, Profile.UserID); model.Data = application; model.WorkflowInstance = WorkflowHelper.GetWorkflowInstanceView(WebHelper.EntityID, WebHelper.ItemID, Profile.UserID); model.ApplicationView = applicationView; if (model.ApplicationView.CopiedFromApplicationDetailID != null) { model.ParentApplicationView = Database.GetApplicationView(model.ApplicationView.CopiedFromApplicationDetailID.Value, Profile.UserID); } else { model.ParentApplicationView = new Neo.LegitimateLicences.ApplicationRequest.Models.Database.Vw_ApplicationDetails_Light(); } model.SetFormEditState(activeUserTask); #endregion return model; } #endregion } }