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(); } //------------------------------------------------------------------- } //======================================================================= }