113 lines
4.1 KiB
C#
113 lines
4.1 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.Reflection;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Saxonite.Net.Core.Web.Online.Models
|
|
{
|
|
//=======================================================================
|
|
public class Model_UserEligibility : SaxModel_Online
|
|
{
|
|
//-------------------------------------------------------------------
|
|
// Construction.
|
|
public Model_UserEligibility(SaxLocaliser localiser) :
|
|
base(localiser)
|
|
{
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// User properties.
|
|
public class UserAccountData
|
|
{
|
|
public String Id { get; set; }
|
|
}
|
|
public UserAccountData UserAccount { get; } = new UserAccountData();
|
|
|
|
// Eligibility properties.
|
|
public class EligibilityData
|
|
{
|
|
/// <summary>User Experience Id.</summary>
|
|
public String Id { get; set; }
|
|
/// <summary>Flag to indicate whether item is being updated.</summary>
|
|
public String Exists { get; set; }
|
|
/// <summary>User Experience Region Id.</summary>
|
|
public String RegionId { get; set; }
|
|
/// <summary>User Experience Type.</summary>
|
|
public String Type { get; set; }
|
|
/// <summary>User Experience Info.</summary>
|
|
public String Info { get; set; }
|
|
public Sax.EligibilityType getEligibilityType()
|
|
{
|
|
if (Type != null)
|
|
return (Sax.EligibilityType)SaxSystem.GetCodesOfType(Sax.CodeType.EligibilityType).GetTypeForCode(Type);
|
|
return Sax.EligibilityType.Unknown;
|
|
}
|
|
/// <summary>User Experience Expiry date.</summary>
|
|
public String ExpiresOn { get; set; }
|
|
}
|
|
public EligibilityData Eligibility { get; } = new EligibilityData();
|
|
|
|
//-------------------------------------------------------------------
|
|
// Validate model data.
|
|
//-------------------------------------------------------------------
|
|
// Validate eligibility details.
|
|
public bool ValidateEligibilityDetails(SaxController_Base.AjaxResponse_Data responseData)
|
|
{
|
|
// Eligibility type.
|
|
String controlName = "EligibilityType";
|
|
if (Eligibility.Type == null || Eligibility.getEligibilityType() <= 0)
|
|
{
|
|
responseData.SetControlError(controlName, Localiser["msg.validation.mandatory.value"]);
|
|
}
|
|
|
|
// Eligibility Region - mandatory for new eligibility.
|
|
controlName = "EligibilityRegion";
|
|
SysId eligibilityRegionId = ExtractSysId(Eligibility.RegionId);
|
|
if ((Eligibility.RegionId == null || !SysId.IsValid(eligibilityRegionId)) && !StringUtil.ToBool(Eligibility.Exists))
|
|
{
|
|
responseData.SetControlError(controlName, Localiser["msg.validation.mandatory.value"]);
|
|
}
|
|
else if (Eligibility.RegionId != null)
|
|
{
|
|
SaxRegion.Data eligibilityRegion = Internals.GetRegion(eligibilityRegionId);
|
|
if (eligibilityRegion == null)
|
|
responseData.SetControlError(controlName, Localiser["msg.validation.invalid.value"]);
|
|
}
|
|
|
|
// Eligibility info.
|
|
controlName = "EligibilityInfo";
|
|
if (Eligibility.Info != null)
|
|
{
|
|
responseData.SetControlValue(controlName, Eligibility.Info);
|
|
if (StringUtil.GetLength(Eligibility.Info) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserEligibility_Info))
|
|
responseData.SetControlError(controlName, Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserEligibility_Info)]);
|
|
}
|
|
|
|
// Eligibility Expiry date.
|
|
controlName = "EligibilityExpiry";
|
|
if (Eligibility.ExpiresOn != null)
|
|
{
|
|
if (!StringUtil.IsBlank(Eligibility.ExpiresOn) && !DateUtil.IsValid(ParseDateFromForm(Eligibility.ExpiresOn)))
|
|
{
|
|
responseData.SetControlError(controlName, Localiser["msg.validation.invalid.value"]);
|
|
}
|
|
}
|
|
return !responseData.HasControlErrors();
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|