This commit is contained in:
2022-05-29 13:45:22 +01:00
parent d631ad0223
commit 833798c9f8
93 changed files with 2063 additions and 788 deletions
@@ -39,7 +39,7 @@ namespace Saxonite.Net.Core.Web.Admin.Models
public String Town { get; set; }
public String Province { get; set; }
public String RegionIdProvince { get; set; }
public String Country { get; set; }
public String RegionIdCountry { get; set; }
public String PostalCode { get; set; }
//-------------------------------------------------------------------
@@ -47,14 +47,14 @@ namespace Saxonite.Net.Core.Web.Admin.Models
/// <summary>Have any address values been supplied by the form.</summary>
public bool IsSpecified()
{
if (Id != null || Line1 != null || Town != null || Province != null || Country != null || PostalCode != null)
if (Id != null || Line1 != null || Town != null || Province != null || RegionIdCountry != null || PostalCode != null)
return true;
return false;
}
/// <summary>Have any address values been populated on the form.</summary>
public bool IsPopulated()
{
if (SysId.IsValid(Id.ToSysId()) || !StringUtil.IsEmpty(Line1) || !StringUtil.IsEmpty(Town) || !StringUtil.IsEmpty(Province) || !StringUtil.IsEmpty(Country) || !StringUtil.IsEmpty(PostalCode))
if (SysId.IsValid(Id.ToSysId()) || !StringUtil.IsEmpty(Line1) || !StringUtil.IsEmpty(Town) || !StringUtil.IsEmpty(Province) || !StringUtil.IsEmpty(RegionIdCountry) || !StringUtil.IsEmpty(PostalCode))
return true;
return false;
}
@@ -63,7 +63,7 @@ namespace Saxonite.Net.Core.Web.Admin.Models
// Validation.
//-------------------------------------------------------------------
// Address.
public bool ValidateAddressData(SaxController_Base.AjaxResponse_Data responseData)
public bool ValidateAddressData(SaxModel_Admin model, SaxController_Base.AjaxResponse_Data responseData)
{
// Are any properties populated.
bool populated = IsPopulated();
@@ -101,32 +101,37 @@ namespace Saxonite.Net.Core.Web.Admin.Models
// Address Town - mandatory if any value populated.
if (Town != null)
{
responseData.SetControlValue(ControlNameSuffix + "Town", Town);
String controlName = ControlNameSuffix + nameof(Town);
responseData.SetControlValue(controlName, Town);
if (StringUtil.IsEmpty(Town) && populated)
responseData.SetControlError(ControlNameSuffix + "Town", Model.Localiser["msg.validation.mandatory.value"]);
responseData.SetControlError(controlName, Model.Localiser["msg.validation.mandatory.value"]);
else if (StringUtil.GetLength(Town) > Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.ItemAddress_Town))
responseData.SetControlError(ControlNameSuffix + "Town", Model.Localiser["msg.validation.maximum.length", Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.ItemAddress_Town)]);
responseData.SetControlError(controlName, Model.Localiser["msg.validation.maximum.length", Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.ItemAddress_Town)]);
}
// Address Province - optional.
if (Province != null)
{
responseData.SetControlValue(ControlNameSuffix + "Province", Province);
String controlName = ControlNameSuffix + nameof(Province);
responseData.SetControlValue(controlName, Province);
if (!StringUtil.IsEmpty(Province))
{
if (StringUtil.GetLength(Province) > Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.ItemAddress_Province))
responseData.SetControlError(ControlNameSuffix + "Province", Model.Localiser["msg.validation.maximum.length", Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.ItemAddress_Province)]);
responseData.SetControlError(controlName, Model.Localiser["msg.validation.maximum.length", Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.ItemAddress_Province)]);
}
}
// Address Country - optional.
if (Country != null)
// Address Country - mandatory if any value populated.
if (RegionIdCountry != null)
{
responseData.SetControlValue(ControlNameSuffix + "Country", Country);
if (!StringUtil.IsEmpty(Country))
String controlName = ControlNameSuffix + nameof(RegionIdCountry);
if (!SysId.IsValid(RegionIdCountry.ToSysId()) && populated)
responseData.SetControlError(controlName, Model.Localiser["msg.validation.mandatory.value"]);
else if (SysId.IsValid(RegionIdCountry.ToSysId()))
{
if (StringUtil.GetLength(Country) > Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.ItemAddress_Country))
responseData.SetControlError(ControlNameSuffix + "Country", Model.Localiser["msg.validation.maximum.length", Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.ItemAddress_Country)]);
SaxRegion.Data region = model.Internals.GetRegion(RegionIdCountry.ToSysId());
if (region == null || region.RegionType != Sax.RegionType.Country)
responseData.SetControlError(controlName, Model.Localiser["msg.validation.invalid.value"]);
}
}
@@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.Rendering;
using Sarand.Net.Standard.Base.App;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Core;
@@ -34,7 +35,9 @@ namespace Saxonite.Net.Core.Web.Admin.Models
public String OrganisationTypeCode { get; set; }
public String OrganisationCategoryCode { get; set; }
public String OrganisationSportId { get; set; }
public String OrganisationSportName { get; set; }
public String OrganisationRegionId { get; set; }
public String OrganisationRegionName { get; set; }
public String OrganisationStatusCategoryCode { get; set; }
}
public FilterData Filter { get; } = new FilterData();
@@ -75,7 +78,7 @@ namespace Saxonite.Net.Core.Web.Admin.Models
public String OrganisationCategoryValue { get; set; }
public Sax.OrganisationCategory OrganisationCategory { get { return (Sax.OrganisationCategory)OrganisationCategoryCodes.GetTypeForCode(OrganisationCategoryValue); } }
public String OrganisationSportId { get; set; }
public String OrganisationRegionIdCountry { get; set; }
public String OrganisationRegionIdPrimary { get; set; }
public String OrganisationAbout { get; set; }
public String OrganisationFacilities { get; set; }
// Common properties.
@@ -92,6 +95,11 @@ namespace Saxonite.Net.Core.Web.Admin.Models
// Address.
public ModelData_Address Address { get; }
//-------------------------------------------------------------------
// Images.
public List<IFormFile> OrganisationLogoImage { get; set; }
//-------------------------------------------------------------------
// Utilities.
public bool IsSportMandatory()
{
@@ -143,15 +151,15 @@ namespace Saxonite.Net.Core.Web.Admin.Models
}
}
// Organisation region.
if (OrganisationRegionIdCountry != null)
// Organisation primary region.
if (OrganisationRegionIdPrimary != null)
{
using (SaxRegion region = ReferenceMgr.GetRegionById(OrganisationRegionIdCountry.ToSysId()))
using (SaxRegion region = ReferenceMgr.GetRegionById(OrganisationRegionIdPrimary.ToSysId()))
{
if (region == null)
responseData.SetControlError(nameof(OrganisationRegionIdCountry), Localiser["msg.validation.invalid.value"]);
responseData.SetControlError(nameof(OrganisationRegionIdPrimary), Localiser["msg.validation.invalid.value"]);
else if (region.RegionType != Sax.RegionType.Country && region.RegionType != Sax.RegionType.Continent && region.RegionType != Sax.RegionType.World)
responseData.SetControlError(nameof(OrganisationRegionIdCountry), "Organisation region must be a country or international region");
responseData.SetControlError(nameof(OrganisationRegionIdPrimary), "Organisation region must be a country or international region");
}
if (!StringUtil.IsEmpty(OrganisationName))
@@ -161,7 +169,7 @@ namespace Saxonite.Net.Core.Web.Admin.Models
if (SysId.IsValid(OrganisationId.ToSysId()))
prmOrganisation.IdsExcluded.Add(OrganisationId.ToSysId());
prmOrganisation.NameFull = OrganisationName;
prmOrganisation.RegionIdsIncluded.Add(OrganisationRegionIdCountry.ToSysId());
prmOrganisation.RegionIdsIncluded.Add(OrganisationRegionIdPrimary.ToSysId());
prmOrganisation.StatusCat = SaxOrganisation.StatusCat.Any;
if (AccountMgr.GetOrganisationCount(prmOrganisation) > 0)
responseData.SetControlError(nameof(OrganisationName), Localiser["msg.validation.duplicate.value"]);
@@ -226,7 +234,7 @@ namespace Saxonite.Net.Core.Web.Admin.Models
// Validate address fields.
if (Address != null)
Address.ValidateAddressData(responseData);
Address.ValidateAddressData(this, responseData);
return !responseData.HasControlErrors();
}
@@ -35,7 +35,9 @@ namespace Saxonite.Net.Core.Web.Admin.Models
{
public String User { get; set; }
public String UserSportId { get; set; }
public String UserSportName { get; set; }
public String UserRegionId { get; set; }
public String UserRegionName { get; set; }
public String UserStatusCategoryCode { get; set; }
}
public FilterData Filter { get; } = new FilterData();