133 lines
4.7 KiB
C#
133 lines
4.7 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 EventSummary { get; set; }
|
|
public String EventDetails { 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)
|
|
{
|
|
DateTime eventOn = ParseDateFromForm(EventDate);
|
|
if (!DateUtil.IsValid(eventOn))
|
|
responseData.SetControlError(nameof(EventDate), Localiser["msg.validation.mandatory.value"]);
|
|
}
|
|
|
|
// Event time.
|
|
if (EventTime != null)
|
|
{
|
|
}
|
|
|
|
// Event summary.
|
|
if (EventSummary != null)
|
|
{
|
|
responseData.SetControlValue(nameof(EventSummary), EventSummary);
|
|
if (StringUtil.IsEmpty(EventSummary))
|
|
responseData.SetControlError(nameof(EventSummary), Localiser["msg.validation.mandatory.value"]);
|
|
else if (StringUtil.GetLength(EventSummary) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Summary))
|
|
responseData.SetControlError(nameof(EventSummary), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Summary)]);
|
|
}
|
|
|
|
// Event details.
|
|
if (EventDetails != null)
|
|
{
|
|
responseData.SetControlValue(nameof(EventDetails), EventDetails);
|
|
if (StringUtil.GetLength(EventDetails) > GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Details))
|
|
responseData.SetControlError(nameof(EventDetails), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationEvent_Details)]);
|
|
}
|
|
|
|
// Event sport.
|
|
if (EventSportIdPrimary != null)
|
|
{
|
|
SysId articleSportId = ExtractSysId(EventSportIdPrimary);
|
|
if (!SysId.IsValid(articleSportId))
|
|
responseData.SetControlError("EventSportPrimary", Localiser["msg.validation.mandatory.value"]);
|
|
}
|
|
|
|
// Event region.
|
|
if (EventRegionIdCountry != null)
|
|
{
|
|
SysId articleRegionId = ExtractSysId(EventRegionIdCountry);
|
|
if (!SysId.IsValid(articleRegionId))
|
|
responseData.SetControlError("EventRegionCountry", Localiser["msg.validation.mandatory.value"]);
|
|
}
|
|
|
|
// Event status.
|
|
if (EventStatusCode != null)
|
|
{
|
|
if (StringUtil.IsEmpty(EventStatusCode))
|
|
responseData.SetControlError(nameof(EventStatus), Localiser["msg.validation.mandatory.value"]);
|
|
else if (!SaxOrganisationEvent.ValidStatuses.Contains(EventStatus))
|
|
responseData.SetControlError(nameof(EventStatus), Localiser["msg.validation.invalid.value"]);
|
|
}
|
|
|
|
return !responseData.HasControlErrors();
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
//=======================================================================
|
|
}
|