119 lines
5.1 KiB
C#
119 lines
5.1 KiB
C#
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<String> MemberRoleCodes { get; set; }
|
|
public List<String> GetMemberRoleCodes()
|
|
{
|
|
List<String> codes = new List<string>();
|
|
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();
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|