diff --git a/SaxoniteCoreWeb/Base/Procs/SaxGolfUsgaDataLookup.cs b/SaxoniteCoreWeb/Base/Procs/SaxGolfUsgaDataLookup.cs index 1542639..8191ab2 100644 --- a/SaxoniteCoreWeb/Base/Procs/SaxGolfUsgaDataLookup.cs +++ b/SaxoniteCoreWeb/Base/Procs/SaxGolfUsgaDataLookup.cs @@ -321,6 +321,12 @@ namespace Saxonite.Net.Core.Web.Base.Procs SaLogger.Warn($"{SysUtil.Fn} USGA Country not found for code '{countryCode}'."); return usgaProvinces; } + if (usgaCountry.Priority) + { + // Clear country 'priority' flag. + usgaCountry.Priority = false; + ReferenceGolfMgr.UpdateUsgaCountry(usgaCountry, DbUpdateInfo); + } try { @@ -390,9 +396,6 @@ namespace Saxonite.Net.Core.Web.Base.Procs if (!ReferenceGolfMgr.HasErrorState()) { // Provinces updates OK. - // Clear country 'priority' flag. - usgaCountry.Priority = false; - ReferenceGolfMgr.UpdateUsgaCountry(usgaCountry, DbUpdateInfo); } else SaLogger.Warn($"{SysUtil.Fn} Error bulk updating USGA provinces: {ReferenceGolfMgr.ErrorStateMessage}."); } @@ -433,6 +436,12 @@ namespace Saxonite.Net.Core.Web.Base.Procs SaLogger.Warn($"{SysUtil.Fn} USGA Province not found for code '{provinceCode}'."); return usgaCourses; } + if (usgaProvince.Priority) + { + // Clear province 'priority' flag. + usgaProvince.Priority = false; + ReferenceGolfMgr.UpdateUsgaProvince(usgaProvince, DbUpdateInfo); + } try { @@ -604,9 +613,6 @@ namespace Saxonite.Net.Core.Web.Base.Procs if (!ReferenceGolfMgr.HasErrorState()) { // Courses updates OK. - // Clear province 'priority' flag. - usgaProvince.Priority = false; - ReferenceGolfMgr.UpdateUsgaProvince(usgaProvince, DbUpdateInfo); } else SaLogger.Warn($"{SysUtil.Fn} Error bulk updating USGA courses: {ReferenceGolfMgr.ErrorStateMessage}."); } @@ -723,6 +729,11 @@ namespace Saxonite.Net.Core.Web.Base.Procs SaLogger.Warn($"{SysUtil.Fn} USGA Course not found for Id '{usgaCourseId}'."); return markersData.Markers; } + if (usgaCourse.Priority) + { + usgaCourse.Priority = false; + ReferenceGolfMgr.UpdateUsgaCourse(usgaCourse, DbUpdateInfo); + } try { @@ -913,16 +924,17 @@ namespace Saxonite.Net.Core.Web.Base.Procs ReferenceGolfMgr.BulkUpdateUsgaMarkers(markersUpdateData, DbUpdateInfo); if (!ReferenceGolfMgr.HasErrorState()) { - // Courses updates OK. - // Store Marker data and clear Course 'priority' flag. - if (markersData.Markers.Any()) - { - usgaCourse.MarkersData = JsonConvert.SerializeObject(markersData); - usgaCourse.Priority = false; - ReferenceGolfMgr.UpdateUsgaCourse(usgaCourse, DbUpdateInfo); - } + // Markers updates OK. } else SaLogger.Warn($"{SysUtil.Fn} Error bulk updating USGA markers: {ReferenceGolfMgr.ErrorStateMessage}."); + + // Store Marker data and clear Course 'priority' flag. + if (markersData.Markers.Any()) + { + usgaCourse.MarkersData = JsonConvert.SerializeObject(markersData); + usgaCourse.Priority = false; + ReferenceGolfMgr.UpdateUsgaCourse(usgaCourse, DbUpdateInfo); + } } catch (Exception exc) { diff --git a/SaxoniteCoreWebAdmin/Admin/Controllers/ReferenceGolfController-Ajax.cs b/SaxoniteCoreWebAdmin/Admin/Controllers/ReferenceGolfController-Ajax.cs index 0e3e14b..e889e73 100644 --- a/SaxoniteCoreWebAdmin/Admin/Controllers/ReferenceGolfController-Ajax.cs +++ b/SaxoniteCoreWebAdmin/Admin/Controllers/ReferenceGolfController-Ajax.cs @@ -22,17 +22,6 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers { //------------------------------------------------------------------- // USGA Country data. - private class UsgaCountryStatsData : AjaxResponse_Base - { - public long? Total { get; set; } - public long? Active { get; set; } - public long? Inactive { get; set; } - public long? Deleted { get; set; } - public long? PriorityNoProvinces { get; set; } - public long? NonPriorityNoProvinces { get; set; } - public long? PriorityWithProvinces { get; set; } - public long? NonPriorityWithProvinces { get; set; } - } private class UsgaCountryListData : AjaxResponse_Data.ItemData_Base { public String Code { get; set; } @@ -44,69 +33,300 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers private class UsgaCountryItemData : UsgaCountryListData { } - private void PopulateUsgaCountryResponseListData(SaxGolfUsgaCountry country, UsgaCountryListData data) + private void PopulateUsgaCountryResponseListData(SaxGolfUsgaCountry province, UsgaCountryListData data) { - data.Id = SysId.ToString(country.Id); - data.Code = country.CountryCode; - data.Name = country.CountryName; - data.StatusCode = country.StatusCode; - data.StatusDesc = country.StatusDesc; + data.Id = SysId.ToString(province.Id); + data.Code = province.CountryCode; + data.Name = province.CountryName; + data.StatusCode = province.StatusCode; + data.StatusDesc = province.StatusDesc; } - private void PopulateUsgaCountryResponseItemData(SaxGolfUsgaCountry country, UsgaCountryItemData data) + private void PopulateUsgaCountryResponseItemData(SaxGolfUsgaCountry province, UsgaCountryItemData data) { - PopulateUsgaCountryResponseListData(country, data); + PopulateUsgaCountryResponseListData(province, data); } //------------------------------------------------------------------- - private void PopulateCountryStatsData(UsgaCountryStatsData countryStats) + // Get ReferenceGolf List ajax request. + //------------------------------------------------------------------- + private class AjaxResponse_ReferenceGolfStats : AjaxResponse_Data { + // Construction. + public AjaxResponse_ReferenceGolfStats(SaxModel_Admin model) : base(model) { } + // Statistics. + public class StatData : AjaxResponse_Base + { + public String Caption { get; set; } + public String Value { get; set; } + } + public class StatGroupData : AjaxResponse_Base + { + public String Caption { get; set; } + public List Stats { get; } = new List(); + } + public List Groups { get; } = new List(); + } + //------------------------------------------------------------------- + [HttpPost] + [Route("Reference/Golf/Ajax/GetUsgaStats")] + [Route("Reference/Golf/Ajax/GetStats")] + [Route("Reference/Golf/Ajax/Stats")] + public IActionResult Ajax_GetUsgaStats(Model_ReferenceGolf model) + { + String fn = GetType().Name + ".Ajax_GetUsgaStats"; + String messageTitle = Localiser["caption.reference.golf"]; + AjaxResponse_ReferenceGolfStats responseData = new AjaxResponse_ReferenceGolfStats(model); + + // Validate session. + if (!ValidUserSession) + return GetAjaxResult_InvalidSession(responseData); + + // Statistics. + responseData.Groups.Add(PopulateCountryStatsData()); + responseData.Groups.Add(PopulateProvinceStatsData()); + responseData.Groups.Add(PopulateFacilityStatsData()); + responseData.Groups.Add(PopulateCourseStatsData()); + responseData.Groups.Add(PopulateMarkerStatsData()); + + // Complete response. + responseData.Success = true; + return Json(responseData); + } + + //------------------------------------------------------------------- + private AjaxResponse_ReferenceGolfStats.StatGroupData PopulateCountryStatsData() + { + AjaxResponse_ReferenceGolfStats.StatGroupData group = new AjaxResponse_ReferenceGolfStats.StatGroupData() { Caption = "Countries" }; + // All countries. SaxGolfUsgaCountry.Params prmCountry = new SaxGolfUsgaCountry.Params(); prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.Any; - countryStats.Total = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry); + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Total", Value = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry).ToString() }); // Active countries. prmCountry = new SaxGolfUsgaCountry.Params(); prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.ActiveOnly; - countryStats.Active = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry); + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Active", Value = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry).ToString() }); // Inctive countries. prmCountry = new SaxGolfUsgaCountry.Params(); prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.InactiveOnly; - countryStats.Inactive = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry); + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Inactive", Value = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry).ToString() }); // Deleted countries. prmCountry = new SaxGolfUsgaCountry.Params(); prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.DeletedOnly; - countryStats.Deleted = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry); + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Deleted", Value = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry).ToString() }); // Priority countries without provinces. prmCountry = new SaxGolfUsgaCountry.Params(); prmCountry.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True; prmCountry.HasProvinces = SacsHierarchyItem.Params.BoolState.False; prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.ActiveOnly; - countryStats.PriorityNoProvinces = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry); + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Priority no provinces", Value = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry).ToString() }); // Non-Priority countries without provinces. prmCountry = new SaxGolfUsgaCountry.Params(); prmCountry.PriorityFlagState = SacsHierarchyItem.Params.FlagState.False; prmCountry.HasProvinces = SacsHierarchyItem.Params.BoolState.False; prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.ActiveOnly; - countryStats.NonPriorityNoProvinces = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry); + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Non-priority no provinces", Value = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry).ToString() }); // Priority countries with provinces. prmCountry = new SaxGolfUsgaCountry.Params(); prmCountry.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True; prmCountry.HasProvinces = SacsHierarchyItem.Params.BoolState.True; prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.ActiveOnly; - countryStats.PriorityWithProvinces = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry); + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Priority with provinces", Value = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry).ToString() }); // Non-Priority countries with provinces. prmCountry = new SaxGolfUsgaCountry.Params(); prmCountry.PriorityFlagState = SacsHierarchyItem.Params.FlagState.False; prmCountry.HasProvinces = SacsHierarchyItem.Params.BoolState.True; prmCountry.StatusCat = SaxGolfUsgaCountry.StatusCat.ActiveOnly; - countryStats.NonPriorityWithProvinces = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry); + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Non-priority with provinces", Value = ReferenceGolfMgr.GetUsgaCountryCount(prmCountry).ToString() }); + + return group; + } + + //------------------------------------------------------------------- + private AjaxResponse_ReferenceGolfStats.StatGroupData PopulateProvinceStatsData() + { + AjaxResponse_ReferenceGolfStats.StatGroupData group = new AjaxResponse_ReferenceGolfStats.StatGroupData() { Caption = "Provinces" }; + + // All provinces. + SaxGolfUsgaProvince.Params prmProvince = new SaxGolfUsgaProvince.Params(); + prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.Any; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Total", Value = ReferenceGolfMgr.GetUsgaProvinceCount(prmProvince).ToString() }); + + // Active provinces. + prmProvince = new SaxGolfUsgaProvince.Params(); + prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.ActiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Active", Value = ReferenceGolfMgr.GetUsgaProvinceCount(prmProvince).ToString() }); + + // Inctive provinces. + prmProvince = new SaxGolfUsgaProvince.Params(); + prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.InactiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Inactive", Value = ReferenceGolfMgr.GetUsgaProvinceCount(prmProvince).ToString() }); + + // Deleted provinces. + prmProvince = new SaxGolfUsgaProvince.Params(); + prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.DeletedOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Deleted", Value = ReferenceGolfMgr.GetUsgaProvinceCount(prmProvince).ToString() }); + + // Priority provinces without facilities. + prmProvince = new SaxGolfUsgaProvince.Params(); + prmProvince.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True; + prmProvince.HasFacilities = SacsHierarchyItem.Params.BoolState.False; + prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.ActiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Priority no facilities", Value = ReferenceGolfMgr.GetUsgaProvinceCount(prmProvince).ToString() }); + + // Non-Priority provinces without facilities. + prmProvince = new SaxGolfUsgaProvince.Params(); + prmProvince.PriorityFlagState = SacsHierarchyItem.Params.FlagState.False; + prmProvince.HasFacilities = SacsHierarchyItem.Params.BoolState.False; + prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.ActiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Non-priority no facilities", Value = ReferenceGolfMgr.GetUsgaProvinceCount(prmProvince).ToString() }); + + // Priority provinces with facilities. + prmProvince = new SaxGolfUsgaProvince.Params(); + prmProvince.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True; + prmProvince.HasFacilities = SacsHierarchyItem.Params.BoolState.True; + prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.ActiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Priority with facilities", Value = ReferenceGolfMgr.GetUsgaProvinceCount(prmProvince).ToString() }); + + // Non-Priority provinces with facilities. + prmProvince = new SaxGolfUsgaProvince.Params(); + prmProvince.PriorityFlagState = SacsHierarchyItem.Params.FlagState.False; + prmProvince.HasFacilities = SacsHierarchyItem.Params.BoolState.True; + prmProvince.StatusCat = SaxGolfUsgaProvince.StatusCat.ActiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Non-priority with facilities", Value = ReferenceGolfMgr.GetUsgaProvinceCount(prmProvince).ToString() }); + + return group; + } + + //------------------------------------------------------------------- + private AjaxResponse_ReferenceGolfStats.StatGroupData PopulateFacilityStatsData() + { + AjaxResponse_ReferenceGolfStats.StatGroupData group = new AjaxResponse_ReferenceGolfStats.StatGroupData() { Caption = "Facilities" }; + + // All facilities. + SaxGolfUsgaFacility.Params prmFacility = new SaxGolfUsgaFacility.Params(); + prmFacility.StatusCat = SaxGolfUsgaFacility.StatusCat.Any; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Total", Value = ReferenceGolfMgr.GetUsgaFacilityCount(prmFacility).ToString() }); + + // Active facilities. + prmFacility = new SaxGolfUsgaFacility.Params(); + prmFacility.StatusCat = SaxGolfUsgaFacility.StatusCat.ActiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Active", Value = ReferenceGolfMgr.GetUsgaFacilityCount(prmFacility).ToString() }); + + // Inctive facilities. + prmFacility = new SaxGolfUsgaFacility.Params(); + prmFacility.StatusCat = SaxGolfUsgaFacility.StatusCat.InactiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Inactive", Value = ReferenceGolfMgr.GetUsgaFacilityCount(prmFacility).ToString() }); + + // Deleted facilities. + prmFacility = new SaxGolfUsgaFacility.Params(); + prmFacility.StatusCat = SaxGolfUsgaFacility.StatusCat.DeletedOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Deleted", Value = ReferenceGolfMgr.GetUsgaFacilityCount(prmFacility).ToString() }); + + // Facilities without courses. + prmFacility = new SaxGolfUsgaFacility.Params(); + prmFacility.HasCourses = SacsHierarchyItem.Params.BoolState.False; + prmFacility.StatusCat = SaxGolfUsgaFacility.StatusCat.ActiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "No courses", Value = ReferenceGolfMgr.GetUsgaFacilityCount(prmFacility).ToString() }); + + // Priority facilities with courses. + prmFacility = new SaxGolfUsgaFacility.Params(); + prmFacility.HasCourses = SacsHierarchyItem.Params.BoolState.True; + prmFacility.StatusCat = SaxGolfUsgaFacility.StatusCat.ActiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "With courses", Value = ReferenceGolfMgr.GetUsgaFacilityCount(prmFacility).ToString() }); + + return group; + } + + //------------------------------------------------------------------- + private AjaxResponse_ReferenceGolfStats.StatGroupData PopulateCourseStatsData() + { + AjaxResponse_ReferenceGolfStats.StatGroupData group = new AjaxResponse_ReferenceGolfStats.StatGroupData() { Caption = "Courses" }; + + // All courses. + SaxGolfUsgaCourse.Params prmCourse = new SaxGolfUsgaCourse.Params(); + prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.Any; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Total", Value = ReferenceGolfMgr.GetUsgaCourseCount(prmCourse).ToString() }); + + // Active courses. + prmCourse = new SaxGolfUsgaCourse.Params(); + prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.ActiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Active", Value = ReferenceGolfMgr.GetUsgaCourseCount(prmCourse).ToString() }); + + // Inctive courses. + prmCourse = new SaxGolfUsgaCourse.Params(); + prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.InactiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Inactive", Value = ReferenceGolfMgr.GetUsgaCourseCount(prmCourse).ToString() }); + + // Deleted courses. + prmCourse = new SaxGolfUsgaCourse.Params(); + prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.DeletedOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Deleted", Value = ReferenceGolfMgr.GetUsgaCourseCount(prmCourse).ToString() }); + + // Priority courses without markers. + prmCourse = new SaxGolfUsgaCourse.Params(); + prmCourse.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True; + prmCourse.HasMarkers = SacsHierarchyItem.Params.BoolState.False; + prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.ActiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Priority no markers", Value = ReferenceGolfMgr.GetUsgaCourseCount(prmCourse).ToString() }); + + // Non-Priority courses without markers. + prmCourse = new SaxGolfUsgaCourse.Params(); + prmCourse.PriorityFlagState = SacsHierarchyItem.Params.FlagState.False; + prmCourse.HasMarkers = SacsHierarchyItem.Params.BoolState.False; + prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.ActiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Non-priority no markers", Value = ReferenceGolfMgr.GetUsgaCourseCount(prmCourse).ToString() }); + + // Priority courses with markers. + prmCourse = new SaxGolfUsgaCourse.Params(); + prmCourse.PriorityFlagState = SacsHierarchyItem.Params.FlagState.True; + prmCourse.HasMarkers = SacsHierarchyItem.Params.BoolState.True; + prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.ActiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Priority with markers", Value = ReferenceGolfMgr.GetUsgaCourseCount(prmCourse).ToString() }); + + // Non-Priority courses with markers. + prmCourse = new SaxGolfUsgaCourse.Params(); + prmCourse.PriorityFlagState = SacsHierarchyItem.Params.FlagState.False; + prmCourse.HasMarkers = SacsHierarchyItem.Params.BoolState.True; + prmCourse.StatusCat = SaxGolfUsgaCourse.StatusCat.ActiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Non-priority with markers", Value = ReferenceGolfMgr.GetUsgaCourseCount(prmCourse).ToString() }); + + return group; + } + + //------------------------------------------------------------------- + private AjaxResponse_ReferenceGolfStats.StatGroupData PopulateMarkerStatsData() + { + AjaxResponse_ReferenceGolfStats.StatGroupData group = new AjaxResponse_ReferenceGolfStats.StatGroupData() { Caption = "Markers" }; + + // All markers. + SaxGolfUsgaMarker.Params prmMarker = new SaxGolfUsgaMarker.Params(); + prmMarker.StatusCat = SaxGolfUsgaMarker.StatusCat.Any; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Total", Value = ReferenceGolfMgr.GetUsgaMarkerCount(prmMarker).ToString() }); + + // Active markers. + prmMarker = new SaxGolfUsgaMarker.Params(); + prmMarker.StatusCat = SaxGolfUsgaMarker.StatusCat.ActiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Active", Value = ReferenceGolfMgr.GetUsgaMarkerCount(prmMarker).ToString() }); + + // Inctive markers. + prmMarker = new SaxGolfUsgaMarker.Params(); + prmMarker.StatusCat = SaxGolfUsgaMarker.StatusCat.InactiveOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Inactive", Value = ReferenceGolfMgr.GetUsgaMarkerCount(prmMarker).ToString() }); + + // Deleted markers. + prmMarker = new SaxGolfUsgaMarker.Params(); + prmMarker.StatusCat = SaxGolfUsgaMarker.StatusCat.DeletedOnly; + group.Stats.Add(new AjaxResponse_ReferenceGolfStats.StatData() { Caption = "Deleted", Value = ReferenceGolfMgr.GetUsgaMarkerCount(prmMarker).ToString() }); + + return group; } //------------------------------------------------------------------- @@ -116,13 +336,13 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers { // Construction. public AjaxResponse_ReferenceGolfList(SaxModel_Admin model) : base(model) { } - // ReferenceGolf list. + // Country list. public List Countries { get; } = new List(); } //------------------------------------------------------------------- [HttpPost] - [Route("ReferenceGolf/Ajax/GetUsgaCountryList")] - [Route("ReferenceGolf/Ajax/GetUsgaCountryies")] + [Route("Reference/Golf/Ajax/GetUsgaCountryList")] + [Route("Reference/Golf/Ajax/GetUsgaCountryies")] public IActionResult Ajax_GetUsgaCountryList(Model_ReferenceGolf model) { String fn = GetType().Name + ".Ajax_GetUsgaCountryList"; @@ -162,7 +382,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers { NamedValue.Map values = resultSet.GetRecordValues(); ushort flags = (ushort)values.GetLong(colFlags.DataName); - UsgaCountryListData countryData = new UsgaCountryListData() + UsgaCountryListData provinceData = new UsgaCountryListData() { Id = values.GetString(colId.DataName), Code = values.GetString(colName.DataName), @@ -173,7 +393,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers StatusCode = values.GetString(colStatus.DataName), StatusDesc = SacsSystem.GetStatusDescForCode(values.GetString(colStatus.DataName)) }; - responseData.Countries.Add(countryData); + responseData.Countries.Add(provinceData); } } if (model.Paging.IsPaged) diff --git a/SaxoniteCoreWebAdmin/Admin/Controllers/ReferenceGolfController.cs b/SaxoniteCoreWebAdmin/Admin/Controllers/ReferenceGolfController.cs index 7400392..db211eb 100644 --- a/SaxoniteCoreWebAdmin/Admin/Controllers/ReferenceGolfController.cs +++ b/SaxoniteCoreWebAdmin/Admin/Controllers/ReferenceGolfController.cs @@ -23,6 +23,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers //------------------------------------------------------------------- [HttpGet] + [Route("Reference/Golf")] public IActionResult Index() { // Validate session. @@ -33,10 +34,10 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers // Paging. Model_ReferenceGolf model = new Model_ReferenceGolf(Localiser); - model.Paging.PageNo = 1; - model.Paging.PageLength = 12; + //model.Paging.PageNo = 1; + //model.Paging.PageLength = 12; - return View(model); + return View("/Views/Reference/Golf/Index.cshtml",model); } //------------------------------------------------------------------- diff --git a/SaxoniteCoreWebAdmin/Localisation/SaxAdminProperties.resx b/SaxoniteCoreWebAdmin/Localisation/SaxAdminProperties.resx index 867d3ce..7bfb1b9 100644 --- a/SaxoniteCoreWebAdmin/Localisation/SaxAdminProperties.resx +++ b/SaxoniteCoreWebAdmin/Localisation/SaxAdminProperties.resx @@ -123,6 +123,9 @@ Download Organisations + + Golf + Image Upload @@ -531,6 +534,9 @@ Sports + + Statistics + Status diff --git a/SaxoniteCoreWebAdmin/SaxoniteCoreWebAdmin.csproj b/SaxoniteCoreWebAdmin/SaxoniteCoreWebAdmin.csproj index 5bc5e50..56bb984 100644 --- a/SaxoniteCoreWebAdmin/SaxoniteCoreWebAdmin.csproj +++ b/SaxoniteCoreWebAdmin/SaxoniteCoreWebAdmin.csproj @@ -36,6 +36,10 @@ true PreserveNewest + + true + PreserveNewest + diff --git a/SaxoniteCoreWebAdmin/Views/Reference/Golf/Index.cshtml b/SaxoniteCoreWebAdmin/Views/Reference/Golf/Index.cshtml new file mode 100644 index 0000000..55fb6c6 --- /dev/null +++ b/SaxoniteCoreWebAdmin/Views/Reference/Golf/Index.cshtml @@ -0,0 +1,95 @@ +@model Model_ReferenceGolf +@inject SaxLocaliser Localiser +@{ + /* Reference - Golf - Index */ + ViewData["Title"] = "Reference - Golf"; +} + +
+ + + +
+
+
@Localiser["caption.reference.golf"]
+
+
@(Localiser[
+
+
+
+ @using (@Html.BeginForm(FormMethod.Post, new { @id = "frmRefGolfFilter", @class = "sax-form", @onSubmit = "return false;" })) + { +
+
@Localiser["label.options"]
+
+ @* ToDo ... *@ +
+
+ } +
+
+ + @* Reference - Golf - Stats *@ +
+ +
+
@Localiser["label.statictics"]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
diff --git a/SaxoniteCoreWebAdmin/Views/Shared/_Layout.cshtml b/SaxoniteCoreWebAdmin/Views/Shared/_Layout.cshtml index 6479499..bf3e7cb 100644 --- a/SaxoniteCoreWebAdmin/Views/Shared/_Layout.cshtml +++ b/SaxoniteCoreWebAdmin/Views/Shared/_Layout.cshtml @@ -1,4 +1,5 @@ -@model SaxModel_Admin + +@model SaxModel_Admin @inject Microsoft.AspNetCore.Antiforgery.IAntiforgery AntiForgery; @inject SaxLocaliser Localiser @* @@ -135,6 +136,7 @@