using Neo.Afx.Security;
using Neo.Afx.Services.Integration;
using Neo.Afx.Services.Workflows.Entities;
using Neo.Afx.ViewModels;
using Neo.LegitimateLicences.LicenceIssueRequest.Models.Database;
using Neo.LegitimateLicences.Common;
using Neo.LegitimateLicences.Common.Helpers;
using Neo.LegitimateLicences.Data.Models;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
namespace Neo.LegitimateLicences.LicenceIssueRequest
{
public partial class LicenceIssueRequestController
{
#region Form
///
/// Return LicenceIssueRequest Form
///
///
public ActionResult Form()
{
var isNew = WebHelper.ItemID == -1;
var itemId = WebHelper.ItemID;
var taskId = WebHelper.TaskID;
var model = new LicenceIssueRequestFormModel
{
UserSecurables = (Profile.Securables != null) ? Profile.Securables.ToList() : new List(),
Ui = new Afx.ViewModels.WorkflowConsoleUIProperties()
};
var db = new LicenceIssueDatabase();
var dbNational = new LegitimateDatabase();
var licence = db.GetLicenceIssueForm(itemId, Profile.UserID);
model.Data = licence;
model.Lookups = GetLookupsForFormGetLookupsFormView();
model.WorkflowInstance = WorkflowHelper.GetWorkflowInstanceView(WebHelper.EntityID, WebHelper.ItemID, Profile.UserID);
model.LicenceServiceDetails = dbNational.GetVerifiedLicenceServiceDetails(licence.VerifiedLicenceID);
#region Get active user task
Vw_WorkflowInstanceTask activeUserTask = null;
if (taskId != -1)
{
activeUserTask = WorkflowHelper.GetActiveUserUserTaskByID((long)EntityEnum.LicenceIssueDetails, itemId, taskId, Profile.UserID);
}
if (activeUserTask == null)
{
activeUserTask = WorkflowHelper.GetActiveUserTask(Profile.UserID, EntityEnum.LicenceIssueDetails, itemId);
}
#endregion
model.Ui.canSave= (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber == 2);
return View("Form", model);
}
#endregion
#region GetLookups
///
/// Return Lookup list
///
///
public List GetLookupsForFormGetLookupsFormView()
{
var lookups = new List();
var integrationStore = new SqlIntegrationStore();
try
{
integrationStore.Open();
lookups.Add(new LookupList("VehicleTypes", integrationStore.GetDataEntities("VehicleTypes", string.Empty)));
lookups.Add(new LookupList("VehicleModels", integrationStore.GetDataEntities("VehicleModels", string.Empty)));
lookups.Add(new LookupList("IDTypes", integrationStore.GetDataEntities("IDTypes", string.Empty)));
lookups.Add(new LookupList("BusinessTypes", integrationStore.GetDataEntities("BusinessTypes", string.Empty)));
lookups.Add(new LookupList("CarryingCapacities", integrationStore.GetDataEntities("CarryingCapacities", string.Empty)));
}
finally
{
integrationStore.Close();
}
return lookups;
}
#endregion
}
}