using Neo.Afx.Common; using Neo.Afx.ComponentModel; using Neo.Afx.Mvc; using Neo.Afx.Services.Integration; using Neo.Afx.ViewModels; using Neo.LegitimateLicences.BusinessRuleBypassRequest.Models.Database; using Neo.LegitimateLicences.Common; using Neo.LegitimateLicences.Data.Models; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace Neo.LegitimateLicences.BusinessRuleBypassRequest { public partial class BusinessRuleBypassRequestController { #region New public ActionResult New() { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.SecurableEnum.BusinessRuleBypassRequestModule)) { return RedirectToAction("Default", "Dashboard"); } var m = new BusinessRuleBypassRequestModel(); m.Lookups = GetLookupsForNewBusinessRuleBypassRequestView(); return View("New", m); } #endregion #region ValidateBusinessRuleBypassRequest [HttpPost] public JsonNetResult ValidateBusinessRuleBypassRequest(short businessRuleBypassRequestTypeID, string referenceNumber) { try { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.SecurableEnum.BusinessRuleBypassRequestModule)) { throw new Exception("Security error"); } bool success = true; string errorMessage = ""; var database = new LegitimateDatabase(); var brbDatabase = new BusinessRuleBypassRequestDatabase(); Pr_BusinessRuleBypassRequestPrecheck_Result data = new Pr_BusinessRuleBypassRequestPrecheck_Result(); try { data = brbDatabase.PrecheckBusinessRuleBypassRequest(businessRuleBypassRequestTypeID, referenceNumber, Profile.UserID); } catch (Exception ex) { errorMessage = ErrorHelper.GetInnerMostError(ex).Message; success = false; } return new JsonNetResult() { Data = new JsonBaseResult() { Success = success, Result = data, Error = errorMessage } }; } catch (Exception ex) { return new JsonNetResult() { Data = new JsonBaseResult() { Success = false, ErrorCode = "RouteSearch", Error = ErrorHelper.GetInnerMostError(ex).Message } }; } } #endregion #region CreateBusinessRuleBypassRequest [HttpPost] public JsonNetResult CreateBusinessRuleBypassRequest(short businessRuleBypassRequestTypeID, string referenceNumber, string reason, int relatedEntityID, long relatedItemID) { try { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.SecurableEnum.BusinessRuleBypassRequestModule)) { throw new Exception("Security error"); } bool success = true; string errorMessage = ""; var database = new LegitimateDatabase(); var brbDatabase = new BusinessRuleBypassRequestDatabase(); Vw_BusinessRuleBypassRequestDetails data = new Vw_BusinessRuleBypassRequestDetails(); try { data = brbDatabase.CreateBusinessRuleBypassRequest(businessRuleBypassRequestTypeID, referenceNumber, reason, relatedEntityID, relatedItemID, Profile.UserID); } catch (Exception ex) { errorMessage = ErrorHelper.GetInnerMostError(ex).Message; success = false; } return new JsonNetResult() { Data = new JsonBaseResult() { Success = success, Result = data, Error = errorMessage } }; } catch (Exception ex) { return new JsonNetResult() { Data = new JsonBaseResult() { Success = false, ErrorCode = "RouteSearch", Error = ErrorHelper.GetInnerMostError(ex).Message } }; } } #endregion #region GetLookupsForNewApplicationView public List GetLookupsForNewBusinessRuleBypassRequestView() { var lookups = new List(); var integrationStore = new SqlIntegrationStore(); try { integrationStore.Open(); lookups.Add(new LookupList("BusinessRuleBypassRequestTypes", integrationStore.GetDataEntities("BusinessRuleBypassRequestTypes", string.Empty).OrderBy(a => a.Title))); } finally { integrationStore.Close(); } return lookups; } #endregion } }