using Neo.Afx.Services.Workflows; using Neo.LegitimateLicences.Common; using Neo.LegitimateLicences.Data.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Neo.Afx.ViewModels; using Neo.Afx.Services.Integration; using Neo.LegitimateLicences.Common.Helpers; using Neo.Afx.Mvc; namespace Neo.LegitimateLicences.Purification.Controllers { public partial class PurificationController : Neo.LegitimateLicences.Common.ControllerBase { #region Action Results #region UpdateMemberDetails public ActionResult UpdateMemberDetails() { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), Common.SecurableEnum.AdminModule)) { return RedirectToAction("Default", "Dashboard"); } var database = new LegitimateDatabase(); var model = new PurificationUpdateMemberDataModel { Member = new PurificationUpdateMemberDataModelResult(), Lookups = UpdateMemberDetailsGetLookups() }; WebHelper.SetLastPageVisited(HttpContext, "Purification/UpdateMemberDetails"); ViewBag.Controller = "Purification"; ViewBag.Page = "UpdateMemberDetails"; return View("UpdateMemberDetails", model); } #endregion #endregion #region JSON endpoints [HttpPost] public JsonResult FindMemberByID(string idNumber) { if (!SecurityHelper.UserHasAccessToSecurable(Profile.Securables.ToList(), SecurableEnum.ApplicationsModule_Purification_Updatemembercontactdetails)) { throw new Exception("Security error"); } var errorMessage = ""; var success = false; var database = new LegitimateDatabase(); var searchResult = new PurificationUpdateMemberDataModelResult(); try { var member = database.Purification_FindMember(idNumber, Profile.UserID); if (member != null) { searchResult.Email = member.Email; searchResult.FirstNames = member.FirstNames; searchResult.IDNumber = member.IDNumber; searchResult.MemberDataSource = member.MemberDataSource; searchResult.PhysicalAddress = member.PhysicalAddress; searchResult.PhysicalAddressCode = member.PhysicalAddressCode; searchResult.PostalAddress = member.PostalAddress; searchResult.PostalAddressCode = member.PostalAddressCode; searchResult.RecordsThatWillBeAffectedByUpdate = member.RecordsThatWillBeAffectedByUpdate; searchResult.SARSIncomeTaxNumber = member.SARSIncomeTaxNumber; //searchResult.SARSReasonIfNoTaxNumber = member.SARSReasonIfNoTaxNumber; searchResult.Surname = member.SurnameOrCompanyName; searchResult.TelCell = member.TelCell; searchResult.TelFax = member.TelFax; searchResult.TelPhone = member.TelPhone; searchResult.TradeName = member.TradeName; searchResult.BusinessTypeID = member.BusinessTypeID; success = member.RecordFound.Value; } else { errorMessage = "Member not found"; } } catch (Exception ex) { errorMessage = database.GetInnermostMessage(ex); } var results = new { Success = success, Result = searchResult, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } [HttpPost] public JsonResult UpdateMember(PurificationUpdateMemberDataModelResult member) { var database = new LegitimateDatabase(); var success = true; var errorMessage = ""; try { database.Purification_UpdateMember(member.IDNumber, member.Surname, member.FirstNames, member.TradeName, member.PostalAddress, member.PostalAddressCode, member.PhysicalAddress, member.PhysicalAddressCode, member.TelPhone, member.TelCell, member.TelFax, member.Email, member.SARSIncomeTaxNumber, member.BusinessTypeID, Profile.UserID); } catch (Exception ex) { success = false; errorMessage = database.GetInnermostMessage(ex); } var results = new { Success = success, ErrorMessage = errorMessage }; return Json(results, JsonSerializerOptions.None); } #endregion #region FindMemberByIDGetLookups public List UpdateMemberDetailsGetLookups() { var lookups = new List(); var integrationStore = new SqlIntegrationStore(); try { integrationStore.Open(); lookups.Add(new LookupList("BusinessTypes", integrationStore.GetDataEntities("BusinessTypes", string.Empty))); } finally { integrationStore.Close(); } return lookups; } #endregion } }