100 lines
3.6 KiB
C#
100 lines
3.6 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.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 SportSpecialityLabelCode { get; set; }
|
|
public Sax.SportSpecialityLabel SportSpecialityLabel { get { return (Sax.SportSpecialityLabel)SportSpecialityLabelCodes.GetTypeForCode(SportSpecialityLabelCode); } }
|
|
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 Speciality Label.
|
|
if (SportSpecialityLabelCode != null)
|
|
{
|
|
if (!StringUtil.IsEmpty(SportSpecialityLabelCode))
|
|
{
|
|
if (SportSpecialityLabel <= 0)
|
|
responseData.SetControlError(nameof(SportSpecialityLabel), Localiser["msg.validation.invalid.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();
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|