Files
Saxonite/SaxoniteCoreWebOnline/Online/Models/Model_Organisation.cs
T
2021-11-20 15:17:48 +00:00

102 lines
4.4 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.App;
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 : SaxModel_Online
{
//-------------------------------------------------------------------
// Construction.
public Model_Organisation(SaxLocaliser localiser) :
base(localiser)
{
// Model data.
Organisation = new ModelData_Organisation(this);
// Page includes.
//AdditionalFiles_CSS.Add("css/sax-org.css");
AdditionalFiles_JS.Add("js/sax-org.js");
}
//-------------------------------------------------------------------
// List configuration.
public class OrganisationFilterData
{
public String Organisation { get; set; }
public String RegionId { get; set; }
public String SportId { get; set; }
}
public OrganisationFilterData Filter { get; } = new OrganisationFilterData();
//-------------------------------------------------------------------
// Organisation properties.
public ModelData_Organisation Organisation { get; set; }
// User - for organisation request.
public String ContactEmailAddress { get; set; }
public String ContactFirstName { get; set; }
public String ContactLastName { get; set; }
//-------------------------------------------------------------------
// Validation.
//-------------------------------------------------------------------
// Organisation.
public bool ValidateOrganisationRequestData(SaxController_Base.AjaxResponse_Data responseData)
{
// User Email Address - mandatory when supplied.
if (ContactEmailAddress != null)
{
responseData.SetControlValue(nameof(ContactEmailAddress), ContactEmailAddress);
if (StringUtil.IsEmpty(ContactEmailAddress))
responseData.SetControlError(nameof(ContactEmailAddress), Localiser["msg.validation.mandatory.value"]);
else if (!SacsDataValidationHelper.IsValidEmailAddress(ContactEmailAddress))
responseData.SetControlError(nameof(ContactEmailAddress), Localiser["msg.validation.invalid.value"]);
else if (StringUtil.GetLength(ContactEmailAddress) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress))
responseData.SetControlError(nameof(ContactEmailAddress), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress)]);
else if (AccountMgr.UserAccountExistsByEmailAddress(ContactEmailAddress))
responseData.SetControlError(nameof(ContactEmailAddress), Localiser["msg.validation.duplicate.value"]);
}
// User First Name - mandatory when supplied.
if (ContactFirstName != null)
{
responseData.SetControlValue(nameof(ContactFirstName), ContactFirstName);
if (StringUtil.IsEmpty(ContactFirstName))
responseData.SetControlError(nameof(ContactFirstName), Localiser["msg.validation.mandatory.value"]);
else if (StringUtil.GetLength(ContactFirstName) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName))
responseData.SetControlError(nameof(ContactFirstName), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName)]);
}
// User Last Name - mandatory when supplied.
if (ContactLastName != null)
{
responseData.SetControlValue(nameof(ContactLastName), ContactLastName);
if (StringUtil.IsEmpty(ContactLastName))
responseData.SetControlError(nameof(ContactLastName), Localiser["msg.validation.mandatory.value"]);
else if (StringUtil.GetLength(ContactLastName) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName))
responseData.SetControlError(nameof(ContactLastName), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName)]);
}
// Organisation properties.
Organisation.ValidateOrganisationData(responseData);
return !responseData.HasControlErrors();
}
//-------------------------------------------------------------------
}
//=======================================================================
}