using Sarand.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Bus; using Sarand.Net.Standard.Base.Core; using Sarand.Net.Standard.Base.Helpers; using Sarand.Net.Standard.Base.Utils; using Saxonite.Base.App; using Saxonite.Net.Core.Web.Base.App; using Saxonite.Net.Core.Web.Base.Controllers; using Saxonite.Net.Standard.Base.Bus; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Saxonite.Net.Core.Web.Online.Models { //======================================================================= public class Model_Organisation_Members : SaxModel_Online { //------------------------------------------------------------------- // Construction. public Model_Organisation_Members(SaxLocaliser localiser) : base(localiser) { //AdditionalFiles_CSS.Add("css/sax-org-mbr.css"); AdditionalFiles_JS.Add("js/sax-org-mbr.js"); } //------------------------------------------------------------------- // List configuration. public class MemberFilterData { public String OrganisationId { get; set; } public String OrganisationCaption { get; set; } public String Member { get; set; } public String OrganisationRole { get; set; } } public MemberFilterData Filter { get; } = new MemberFilterData(); //------------------------------------------------------------------- // Member properties. public String MemberId { get; set; } public String MemberExists { get; set; } // Member properties. public String MemberOrganisationId { get; set; } public String MemberEmailAddress { get; set; } public String MemberNameSupplied{ get; set; } public String MemberTitle { get; set; } public String MemberFirstName { get; set; } public String MemberLastName { get; set; } public String MemberRoleCodeDelim = ","; public List MemberRoleCodes { get; set; } public List GetMemberRoleCodes() { List codes = new List(); foreach (String code in MemberRoleCodes) { if (StringUtil.IsEmpty(code)) continue; codes.AddRange(code.Split(MemberRoleCodeDelim)); } return codes; } public String MemberAdminComment { get; set; } //------------------------------------------------------------------- // Validation. //------------------------------------------------------------------- // Member. public bool ValidateMemberData(SaxController_Base.AjaxResponse_Data responseData) { // Member Email Address. if (MemberEmailAddress != null) { responseData.SetControlValue(nameof(MemberEmailAddress), MemberEmailAddress); if (StringUtil.IsEmpty(MemberEmailAddress)) responseData.SetControlError(nameof(MemberEmailAddress), Localiser["msg.validation.mandatory.value"]); else if (StringUtil.GetLength(MemberEmailAddress) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress)) responseData.SetControlError(nameof(MemberEmailAddress), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress)]); else if (!SacsDataValidationHelper.IsValidEmailAddress(MemberEmailAddress)) responseData.SetControlError(nameof(MemberEmailAddress), Localiser["msg.validation.invalid.value"]); } // Member First Name. bool memberNameSupplied = StringUtil.ToBool(MemberNameSupplied); if (MemberFirstName != null && memberNameSupplied) { responseData.SetControlValue(nameof(MemberFirstName), MemberFirstName); if (StringUtil.IsEmpty(MemberFirstName)) responseData.SetControlError(nameof(MemberFirstName), Localiser["msg.validation.mandatory.value"]); else if (StringUtil.GetLength(MemberFirstName) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName)) responseData.SetControlError(nameof(MemberFirstName), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName)]); } // Member Last Name. if (MemberLastName != null && memberNameSupplied) { responseData.SetControlValue(nameof(MemberLastName), MemberLastName); if (StringUtil.IsEmpty(MemberLastName)) responseData.SetControlError(nameof(MemberLastName), Localiser["msg.validation.mandatory.value"]); else if (StringUtil.GetLength(MemberLastName) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName)) responseData.SetControlError(nameof(MemberLastName), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName)]); } // Member Admin Comment. if (MemberAdminComment != null) { responseData.SetControlValue(nameof(MemberAdminComment), MemberAdminComment); if (!StringUtil.IsEmpty(MemberAdminComment) && StringUtil.GetLength(MemberAdminComment) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserOrganisation_AdminComment)) responseData.SetControlError(nameof(MemberAdminComment), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserOrganisation_AdminComment)]); } return !responseData.HasControlErrors(); } //------------------------------------------------------------------- } //======================================================================= }