Files
Saxonite/SaxoniteCoreWebOnline/Online/Models/Model_UserSportExperience.cs
T
2022-10-12 13:50:38 +01:00

129 lines
5.7 KiB
C#

using Microsoft.AspNetCore.Http;
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.Online.Models
{
//=======================================================================
public class Model_UserSportExperience : SaxModel_Online
{
//-------------------------------------------------------------------
// Construction.
public Model_UserSportExperience(SaxLocaliser localiser) :
base(localiser)
{
}
//-------------------------------------------------------------------
// User Sports Experience Properties.
public String UserSportExperienceId { get; set; }
public String UserSportExperienceExists { get; set; }
public String UserSportId { get; set; }
public String ExperiencePeriodFrom { get; set; }
public String ExperiencePeriodTo { get; set; }
public String ExperienceOrganisationId { get; set; }
public String ExperienceOrganisationName { get; set; }
public String ExperienceSummary { get; set; }
public String ExperienceTeam { get; set; }
public String ExperienceLeague { get; set; }
public String ExperienceSpeciality { get; set; }
public String ExperienceAwards{ get; set; }
// Regions.
public String ExperienceRegionIdNation { get; set; }
public String ExperienceRegionIdProvince { get; set; }
//-------------------------------------------------------------------
// Validate User Sport Experience data.
public bool ValidateProfileSportData(SaxController_Base.AjaxResponse_Data responseData)
{
// Period dates.
DateTime periodFrom = ParseDateFromForm(ExperiencePeriodFrom);
DateTime periodTo = ParseDateFromForm(ExperiencePeriodTo);
// Period From.
if (ExperiencePeriodFrom != null)
{
// Period from date is mandatory.
if (!DateUtil.IsValid(periodFrom))
responseData.SetControlError(nameof(ExperiencePeriodFrom), Localiser["msg.validation.invalid.value"]);
}
// Period To.
if (ExperiencePeriodTo != null)
{
// Period to date is optional must not be before the from date.
if (DateUtil.IsValid(periodTo) && DateUtil.IsValid(periodFrom) && periodTo.CompareTo(periodFrom) < 0)
responseData.SetControlError(nameof(ExperiencePeriodTo), Localiser["msg.validation.invalid.value"]);
}
// Organisation name.
if (ExperienceOrganisationName != null)
{
responseData.SetControlValue(nameof(ExperienceOrganisationName), ExperienceOrganisationName);
if (StringUtil.GetLength(ExperienceOrganisationName) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserSportExperience_OrganisationName))
responseData.SetControlError(nameof(ExperienceOrganisationName), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserSportExperience_OrganisationName)]);
}
// Summary.
if (ExperienceSummary != null)
{
responseData.SetControlValue(nameof(ExperienceSummary), ExperienceSummary);
if (StringUtil.IsEmpty(ExperienceSummary))
responseData.SetControlError(nameof(ExperienceSummary), Localiser["msg.validation.mandatory.value"]);
else if (StringUtil.GetLength(ExperienceSummary) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Summary))
responseData.SetControlError(nameof(ExperienceSummary), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Summary)]);
}
// Team.
if (ExperienceTeam != null)
{
responseData.SetControlValue(nameof(ExperienceTeam), ExperienceTeam);
if (StringUtil.GetLength(ExperienceTeam) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Team))
responseData.SetControlError(nameof(ExperienceTeam), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Team)]);
}
// League.
if (ExperienceLeague != null)
{
responseData.SetControlValue(nameof(ExperienceLeague), ExperienceLeague);
if (StringUtil.GetLength(ExperienceLeague) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserSportExperience_League))
responseData.SetControlError(nameof(ExperienceLeague), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserSportExperience_League)]);
}
// Speciality.
if (ExperienceSpeciality != null)
{
responseData.SetControlValue(nameof(ExperienceSpeciality), ExperienceSpeciality);
if (StringUtil.GetLength(ExperienceSpeciality) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Speciality))
responseData.SetControlError(nameof(ExperienceSpeciality), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Speciality)]);
}
// Awards.
if (ExperienceAwards != null)
{
responseData.SetControlValue(nameof(ExperienceAwards), ExperienceAwards);
if (StringUtil.IsEmpty(ExperienceAwards))
responseData.SetControlError(nameof(ExperienceAwards), Localiser["msg.validation.mandatory.value"]);
else if (StringUtil.GetLength(ExperienceAwards) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Awards))
responseData.SetControlError(nameof(ExperienceAwards), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserSportExperience_Awards)]);
}
return !responseData.HasControlErrors();
}
//-------------------------------------------------------------------
}
//=======================================================================
}