Files
Saxonite/SaxoniteCoreWebOnline/Online/Models/Model_Organisation_Events.cs
T
2021-11-20 15:17:48 +00:00

121 lines
4.1 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.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_Organisation_Events : SaxModel_Online
{
//-------------------------------------------------------------------
// Construction.
public Model_Organisation_Events(SaxLocaliser localiser) :
base(localiser)
{
//AdditionalFiles_CSS.Add("css/sax-org-evt.css");
AdditionalFiles_JS.Add("js/sax-org-evt.js");
}
//-------------------------------------------------------------------
// List configuration.
public class EventFilterData
{
public String OrganisationId { get; set; }
public String OrganisationCaption { get; set; }
public String Event { get; set; }
}
public EventFilterData Filter { get; } = new EventFilterData();
//-------------------------------------------------------------------
// Event properties.
public String EventId { get; set; }
public String EventExists { get; set; }
// Event properties.
public String EventOrganisationId { get; set; }
// Sport.
public String EventSportIdPrimary { get; set; }
// Region.
public String EventRegionIdCountry { get; set; }
// Event Content.
public String EventDate { get; set; }
public String EventTime { get; set; }
public String EventTypeCode { get; set; }
public String EventAbout { get; set; }
public String EventStatusCode { get; set; }
public SaStatus EventStatus { get { return SacsSystem.GetStatusForCode(EventStatusCode); } }
//-------------------------------------------------------------------
// Validation.
//-------------------------------------------------------------------
// Event.
public bool ValidateEventData(SaxController_Base.AjaxResponse_Data responseData)
{
// Event type.
if (EventTypeCode != null)
{
if (StringUtil.IsEmpty(EventTypeCode))
responseData.SetControlError(nameof(EventTypeCode), Localiser["msg.validation.mandatory.value"]);
}
// Event date.
if (EventDate != null)
{
}
// Event time.
if (EventTime != null)
{
}
// Event about.
if (EventAbout != null)
{
responseData.SetControlValue(nameof(EventAbout), EventAbout);
if (StringUtil.IsEmpty(EventAbout))
responseData.SetControlError(nameof(EventAbout), Localiser["msg.validation.mandatory.value"]);
else if (StringUtil.GetLength(EventAbout) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_About))
responseData.SetControlError(nameof(EventAbout), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_About)]);
}
// Event sport.
if (EventSportIdPrimary != null)
{
SysId articleSportId = ExtractSysId(EventSportIdPrimary);
if (!SysId.IsValid(articleSportId))
responseData.SetControlError(nameof(EventSportIdPrimary), Localiser["msg.validation.mandatory.value"]);
}
// Event region.
if (EventRegionIdCountry != null)
{
SysId articleRegionId = ExtractSysId(EventRegionIdCountry);
if (!SysId.IsValid(articleRegionId))
responseData.SetControlError(nameof(EventRegionIdCountry), Localiser["msg.validation.mandatory.value"]);
}
// Event status.
if (EventStatusCode != null)
{
if (StringUtil.IsEmpty(EventStatusCode))
responseData.SetControlError(nameof(EventStatusCode), Localiser["msg.validation.mandatory.value"]);
else if (!SaxOrganisationEvent.ValidStatuses.Contains(EventStatus))
responseData.SetControlError(nameof(EventStatusCode), Localiser["msg.validation.invalid.value"]);
}
return !responseData.HasControlErrors();
}
//-------------------------------------------------------------------
}
//=======================================================================
}