using Neo.Afx.Common; using Neo.Afx.ComponentModel; using Neo.Afx.Mvc; using Neo.Afx.Services.Integration; using Neo.Afx.ViewModels; using Neo.LegitimateLicences.AccreditationCancelRequest.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.AccreditationCancelRequest { public partial class AccreditationCancelRequestController { #region New public ActionResult New() { var model = new NewAccreditationCancelRequestModel { Accreditations = new List(), Lookups = GetLookups() }; return View("New", model); } #endregion #region SearchVerifiedAccreditations [HttpPost] public JsonNetResult SearchVerifiedAccreditations(string accreditationNumber, long? memberIdSearch, long? accreditationStatusIdSearch, DateTime? issueDateStartDateSearch, DateTime? issueDateEndDateSearch, DateTime? expiryDateStartDateSearch, DateTime? expiryDateEndDateSearch) { var database = new LegitimateDatabase(); IEnumerable data = new List(); try { data = database.SearchVerifiedAccreditations(accreditationNumber, memberIdSearch, accreditationStatusIdSearch, issueDateStartDateSearch, issueDateEndDateSearch, expiryDateStartDateSearch, expiryDateEndDateSearch, Profile.UserID).ToList(); data = data.Where(a => a.AccreditationStatusID == (short)AccreditationStatusEnum.AwaitingIssuing || a.AccreditationStatusID == (short)AccreditationStatusEnum.Issued || a.AccreditationStatusID == (short)AccreditationStatusEnum.ExpiringWithin60Days || a.AccreditationStatusID == (short)AccreditationStatusEnum.AwaitingNewVehicle).ToList(); return new JsonNetResult() { Data = new JsonBaseResult() { Success = true, Error = "", ErrorCode = "", Result = data } }; } catch (Exception ex) { #region Error Handling #region Error Additional Data Dictionary additionalData = new Dictionary(); additionalData.Add("accreditationNumber", accreditationNumber); additionalData.Add("memberIdSearch", memberIdSearch); additionalData.Add("accreditationStatusIdSearch", accreditationStatusIdSearch); additionalData.Add("issueDateStartDateSearch", issueDateStartDateSearch); additionalData.Add("issueDateEndDateSearch", issueDateEndDateSearch); additionalData.Add("expiryDateStartDateSearch", expiryDateStartDateSearch); additionalData.Add("expiryDateEndDateSearch", expiryDateEndDateSearch); #endregion string error = ErrorHelper.ProcessError(ex, "AccreditationCancelRequest", "SearchVerifiedAccreditations", additionalData); #endregion return new JsonNetResult() { Data = new JsonBaseResult() { Success = false, ErrorCode = "ERROR", Error = error } }; } } #endregion #region CreateAccreditationCancelRequest [HttpPost] public JsonNetResult CreateAccreditationCancelRequest(long accreditationID) { try { var accreditationCancelDatabase = new AccreditationCancelDatabase(); var accreditationCancelRequest = accreditationCancelDatabase.CreateAccreditationCancelRequest(accreditationID, Profile.UserID); return new JsonNetResult() { Data = new JsonBaseResult() { Success = true, Result = new { AccreditationCancelRequest = accreditationCancelRequest } } }; } catch (Exception ex) { #region Error Handling #region Error Additional Data Dictionary additionalData = new Dictionary(); additionalData.Add("accreditationID", accreditationID); #endregion string error = ErrorHelper.ProcessError(ex, "AccreditationCancelRequest", "CreateAccreditationCancelRequest", additionalData); #endregion return new JsonNetResult() { Data = new JsonBaseResult() { Success = false, ErrorCode = "ERROR", Error = error } }; } } #endregion #region GetLookups public List GetLookups() { var lookups = new List(); var database = new LegitimateDatabase(); var integrationStore = new SqlIntegrationStore(); try { integrationStore.Open(); lookups.Add(new LookupList("ApplicationActiveWorkflows", integrationStore.GetDataEntities("ActiveWorkflows", string.Empty))); lookups.Add(new LookupList("ApplicationWorkflowInstanceStatus", integrationStore.GetDataEntities("WorkflowInstanceStatus", string.Empty))); lookups.Add(new LookupList("ApplicationWorkflowTemplateSteps", integrationStore.GetDataEntities("WorkflowTemplateSteps", string.Empty))); lookups.Add(new LookupList("AccreditationStatuses", integrationStore.GetDataEntities("AccreditationStatuses", string.Empty))); } finally { integrationStore.Close(); } return lookups; } #endregion } }