using Neo.Afx.Mvc; using Neo.Afx.Security; using Neo.LegitimateLicences.LicenceIssueRequest.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.Mvc; using Neo.Afx.Common; namespace Neo.LegitimateLicences.LicenceIssueRequest { public partial class LicenceIssueRequestController { #region Dashboard /// /// Return LicenceIssueRequest Dashboard view /// /// public ActionResult Dashboard() { var isNew = WebHelper.ItemID == -1; var itemId = WebHelper.ItemID; var model = new LicenceIssueRequestDashboardModel { UserSecurables = (Profile.Securables != null) ? Profile.Securables.ToList() : new List() }; if (!isNew) { var licenceIssueDatabase = new LicenceIssueDatabase(); model.LicenceIssueView = licenceIssueDatabase.GetLicenceIssueView(itemId, Profile.UserID); model.WorkflowInstance = WorkflowHelper.GetWorkflowInstanceView(WebHelper.EntityID, WebHelper.ItemID, Profile.UserID); model.LicenceIssuingStatusSummary = licenceIssueDatabase.GetLicenceIssuingWorkflowSummary(itemId, Profile.UserID).ToList(); model.Data = new { Exceptions = licenceIssueDatabase.GetLicenceExceptions(model.LicenceIssueView.VerifiedLicenceID, Profile.UserID) }; #region Comments model.Comments = CommentHelper.GetLatestComments(WebHelper.EntityID, WebHelper.ItemID); #endregion } return View("Dashboard", model); } #endregion #region RecalculateExceptions /// /// Recalculate Exceptions on licence issue /// /// /// [HttpPost] public JsonNetResult RecalculateExceptions(long licenceID) { var database = new LegitimateDatabase(); try { database.RecalculateLicenceExceptions(licenceID); } catch (Exception ex) { #region Error Handling #region Error Additional Data Dictionary additionalData = new Dictionary(); additionalData.Add("licenceID", licenceID); #endregion string error = ErrorHelper.ProcessError(ex, "LicenceIssueRequest", "RecalculateExceptions", additionalData); #endregion return new JsonNetResult() { Data = new JsonBaseResult() { Success = false, ErrorCode = "ERROR", Error = error } }; } return new JsonNetResult() { Data = new JsonBaseResult() { Success = true, Error = "", ErrorCode = "", Result = new {} } }; } #endregion } }