using System; using System.Collections.Generic; using System.Web.Mvc; using Neo.Legitimate.Members.Models; using Neo.Legitimate.Data.Models; using Pilotfish.Afx.Services.Integration; using Pilotfish.Afx.ViewModels; using Pilotfish.Afx.Mvc; using Neo.Legitimate.Common; using System.Linq; using Neo.Legitimate.Common.Helpers; namespace Neo.Legitimate.Members.Controllers { [Authorize] public partial class MembersController : Neo.Legitimate.Common.ControllerBase { #region Action Results #region Default public ActionResult Default() { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.Securable.MembersModule)) { return RedirectToAction("Default", "Applications"); } var model = new DefaultModel { Members = new List(), Lookups = GetLookups() }; WebHelper.SetLastPageVisited(HttpContext, "Members/Default"); ViewBag.Controller = "Members"; ViewBag.Page = "Home"; return View("Default", model); } #endregion #endregion #region JSON endpoints // All JSON endpoints require [HttpPost] to prevent JSON hijacking. // With [HttpPost], returning arrays is allowed. // See http://haacked.com/archive/2009/06/25/json-hijacking.aspx [HttpPost] public JsonResult SearchVerifiedMembers(string memberNameSearch, string memberIdSearch, string memberEmailSearch, long? assocationSearch) { var database = new LegitimateDatabase(); IEnumerable data = new List(); var success = true; var errorMessage = ""; try { data = database.SearchVerifiedMembers(memberNameSearch, memberIdSearch, memberEmailSearch, assocationSearch); } catch (Exception ex) { success = false; errorMessage = database.GetInnermostMessage(ex); } return Json(new { data, success, errorMessage }, JsonSerializerOptions.None); } #endregion #region GetLookups public List GetLookups() { var lookups = new List(); 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))); } finally { integrationStore.Close(); } return lookups; } #endregion } }