using Neo.LegitimateLicences.Common; using Neo.LegitimateLicences.Common.Helpers; using System.Web.Mvc; using System.Linq; using System.Collections.Generic; using Neo.Afx.Security; using Neo.LegitimateLicences.BusinessRuleBypassRequest.Models.Database; using Neo.Afx.Services.Workflows; using Neo.LegitimateLicences.Data.Models; using Neo.Afx.Services.Workflows.Entities; using System; namespace Neo.LegitimateLicences.BusinessRuleBypassRequest { public partial class BusinessRuleBypassRequestController : Controller { #region Constructor public BusinessRuleBypassRequestController() : base(new BusinessRuleBypassRequestDatabase()) { } #endregion #region Console public ActionResult Console() { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.SecurableEnum.BusinessRuleBypassRequestModule)) { return RedirectToAction("Default", "Dashboard"); } var isNew = WebHelper.ItemID == -1; var itemId = WebHelper.ItemID; var taskId = WebHelper.TaskID; var model = new BusinessRuleBypassRequestConsoleModel { UserSecurables = (Profile.Securables != null) ? Profile.Securables.ToList() : new List(), Ui = new Afx.ViewModels.WorkflowConsoleUIProperties() }; if (!isNew) { var database = new LegitimateDatabase(); var workflowDatabase = new WorkflowsDatabase(); var businessRuleBypassRequest = Database.GetBusinessRuleBypassRequestView(WebHelper.ItemID, Profile.UserID); if (businessRuleBypassRequest.WorkflowInstanceID.HasValue) { var error = workflowDatabase.ReAssignWorkflowInstanceGroupTask(businessRuleBypassRequest.WorkflowInstanceID.Value, Profile.UserID, "", Profile.UserID); if (!string.IsNullOrEmpty(error)) { throw new Exception(error); } } #region Get active user task Vw_WorkflowInstanceTask activeUserTask = null; if (taskId != -1) { activeUserTask = WorkflowHelper.GetActiveUserUserTaskByID((long)EntityEnum.BusinessRuleBypassRequests, itemId, taskId, Profile.UserID); } if (activeUserTask == null) { activeUserTask = WorkflowHelper.GetActiveUserTask(Profile.UserID, EntityEnum.BusinessRuleBypassRequests, itemId); } #endregion model.Ui.canSubmit = (activeUserTask != null && activeUserTask.WorkflowTemplateStepTypeID == (short)WorkflowTemplateStepTypeEnum.DataCapture); model.Ui.canApproveReject = (activeUserTask != null && activeUserTask.WorkflowTemplateStepTypeID == (short)WorkflowTemplateStepTypeEnum.Approval); model.Ui.canRequestCorrection = (activeUserTask != null && activeUserTask.WorkflowTemplateStepNumber > 1); model.Ui.canDelete = (activeUserTask != null); model.Ui.canEscalate = false; model.Ui.canSendEscalationBack = false; if (activeUserTask != null) { if (activeUserTask.EscalatedFromID != null) { model.Ui.canSendEscalationBack = true; } model.CTS = activeUserTask.WorkflowTemplateStepNumber; } } return View("Console", model); } #endregion } }