using Sarand.Net.Standard.Base.App; using Sarand.Net.Standard.Base.Bus; using Sarand.Net.Standard.Base.Core; 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.Core.Web.Base.Models; 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.Admin.Models { //======================================================================= public class Model_Sport : SaxModel_Admin { //------------------------------------------------------------------- // Construction. public Model_Sport(SaxLocaliser localiser) : base(localiser) { AdditionalFiles_JS.Add("js/sax-sport.js"); } //------------------------------------------------------------------- // Sport list configuration. public class FilterData { public String Sport { get; set; } } public FilterData Filter { get; } = new FilterData(); //------------------------------------------------------------------- // Sport properties. public String SportId { get; set; } public String SportName { get; set; } public String SportStatusCode { get; set; } public SaStatus SportStatus { get { return SacsSystem.GetStatusForCode(SportStatusCode); } } //------------------------------------------------------------------- // Validation. //------------------------------------------------------------------- // Sport. public bool ValidateSportData(SaxController_Base.AjaxResponse_Data responseData) { // Sport name. if (SportName != null) { responseData.SetControlValue(nameof(SportName), SportName); if (StringUtil.IsEmpty(SportName)) responseData.SetControlError(nameof(SportName), Localiser["msg.validation.mandatory.value"]); else if (StringUtil.GetLength(SportName) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.Sport_Name)) responseData.SetControlError(nameof(SportName), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.Sport_Name)]); else { // Check for duplicate name. SaxSport.Params prmSport = new SaxSport.Params(); SysId sportId = SportId.ToSysId(); if (SysId.IsValid(sportId)) prmSport.IdsExcluded.Add(sportId); prmSport.NamePartial = SportName; prmSport.StatusCat = SaxSport.StatusCat.Any; if (ReferenceMgr.GetSportCount(prmSport) > 0) responseData.SetControlError(nameof(SportName), Localiser["msg.validation.duplicate.value"]); } } // Sport status. if (SportStatusCode != null) { if (StringUtil.IsEmpty(SportStatusCode)) responseData.SetControlError(nameof(SportStatus), Localiser["msg.validation.mandatory.value"]); else if (!SaxSport.ValidStatuses.Contains(SportStatus)) responseData.SetControlError(nameof(SportStatus), Localiser["msg.validation.invalid.value"]); } return !responseData.HasControlErrors(); } //------------------------------------------------------------------- } //======================================================================= }