This commit is contained in:
2022-03-04 18:15:23 +00:00
parent 122056a9da
commit 362aa31e15
68 changed files with 1163 additions and 761 deletions
@@ -167,21 +167,27 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
if (!ValidUserSession)
return GetAjaxResult_InvalidSession(responseData);
// Identify item.
SysId regionId = model.RegionId.ToSysId();
if (!SysId.IsValid(regionId))
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
// Retrieve item.
SaxRegion region = ReferenceMgr.GetRegionById(regionId);
if (region == null)
// Record disposable items as they are created so all can be disposed when needed.
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
{
SaLogger.Warn(fn + " Failed to retrieve region for Id: '" + model.RegionId + "'");
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
}
// Construct response.
PopulateRegionResponseData(region, responseData.region);
// Identify item.
SysId regionId = model.RegionId.ToSysId();
if (!SysId.IsValid(regionId))
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
// Retrieve item.
SaxRegion region = ReferenceMgr.GetRegionById(regionId);
disposableItems.Add(region);
if (region == null)
{
SaLogger.Warn(fn + " Failed to retrieve region for Id: '" + model.RegionId + "'");
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
}
// Construct response.
PopulateRegionResponseData(region, responseData.region);
}
// Complete response.
responseData.Success = true;
@@ -204,56 +210,65 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
if (!ValidUserSession)
return GetAjaxResult_InvalidSession(responseData);
// Validate item properties.
model.ValidateRegionData(responseData);
if (responseData.HasControlErrors())
return Json(responseData);
// Retrieve existing item.
SysId regionId = model.RegionId.ToSysId();
SaxRegion region = ReferenceMgr.GetRegionById(regionId);
if (region == null && SysId.IsValid(regionId))
// Record disposable items as they are created so all can be disposed when needed.
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
{
SaLogger.Warn(fn + " Failed to retrieve region for Id: '" + model.RegionId + "'");
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
}
// Create new item if required.
if (region == null)
region = ReferenceMgr.CreateRegion();
// Validate item properties.
model.ValidateRegionData(responseData);
if (responseData.HasControlErrors())
return Json(responseData);
// Populate item properties.
if (model.RegionTypeCode != null)
region.RegionType = model.RegionType;
if (model.RegionCountryIso2Code != null)
region.CountryIso2Code = model.RegionCountryIso2Code;
if (model.RegionName != null)
region.Name = model.RegionName;
if (model.RegionIdParent != null)
region.RegionIdParent = model.RegionIdParent.ToSysId();
if (model.RegionStatusCode != null)
region.Status = model.RegionStatus;
// Store item.
if (!SysId.IsValid(region.Id))
{
if (!ReferenceMgr.InsertRegion(region, DbUpdateInfo))
// Retrieve existing item.
SysId regionId = model.RegionId.ToSysId();
SaxRegion region = ReferenceMgr.GetRegionById(regionId);
disposableItems.Add(region);
if (region == null && SysId.IsValid(regionId))
{
SaLogger.Warn(fn + " Failed to insert region: " + ReferenceMgr.ErrorStateMessage);
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
SaLogger.Warn(fn + " Failed to retrieve region for Id: '" + model.RegionId + "'");
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
}
}
else
{
if (!ReferenceMgr.UpdateRegion(region, DbUpdateInfo))
{
SaLogger.Warn(fn + " Failed to update region [Id:" + SysId.ToString(region.Id) + "]: " + ReferenceMgr.ErrorStateMessage);
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
}
}
// Construct response.
PopulateRegionResponseData(region, responseData.region);
// Create new item if required.
if (region == null)
{
region = ReferenceMgr.CreateRegion();
disposableItems.Add(region);
}
// Populate item properties.
if (model.RegionTypeCode != null)
region.RegionType = model.RegionType;
if (model.RegionCountryIso2Code != null)
region.CountryIso2Code = model.RegionCountryIso2Code;
if (model.RegionName != null)
region.Name = model.RegionName;
if (model.RegionIdParent != null)
region.RegionIdParent = model.RegionIdParent.ToSysId();
if (model.RegionStatusCode != null)
region.Status = model.RegionStatus;
// Store item.
if (!SysId.IsValid(region.Id))
{
if (!ReferenceMgr.InsertRegion(region, DbUpdateInfo))
{
SaLogger.Warn(fn + " Failed to insert region: " + ReferenceMgr.ErrorStateMessage);
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
}
}
else
{
if (!ReferenceMgr.UpdateRegion(region, DbUpdateInfo))
{
SaLogger.Warn(fn + " Failed to update region [Id:" + SysId.ToString(region.Id) + "]: " + ReferenceMgr.ErrorStateMessage);
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
}
}
// Construct response.
PopulateRegionResponseData(region, responseData.region);
}
// Complete response.
responseData.Success = true;
@@ -22,24 +22,28 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
private class SportData_List : AjaxResponse_Data.ItemData_Base
{
public String Name { get; set; }
public String SportIdParent { get; set; }
public String SportNameParent { get; set; }
public String SpecialityLabelCode { get; set; }
public String SpecialityLabelDesc { get; set; }
}
private class SportData_Full : SportData_List
{
}
private void PopulateSportResponseData(SaxSport sport, SportData_List data)
private void PopulateSportResponseData(SaxSport sport, SaxSport parentSport, SportData_List data)
{
data.Id = SysId.ToString(sport.Id);
data.SportNameParent = parentSport?.Name ?? null;
data.SportIdParent = parentSport?.Id.ToString() ?? null;
data.Name = sport.Name;
data.SpecialityLabelCode = SportSpecialityLabelCodes.GetCodeForType(sport.SpecialityLabel);
data.SpecialityLabelDesc = SportSpecialityLabelCodes.GetDescForType(sport.SpecialityLabel);
data.StatusCode = sport.StatusCode;
data.StatusDesc = sport.StatusDesc;
}
private void PopulateSportResponseData(SaxSport sport, SportData_Full data)
private void PopulateSportResponseData(SaxSport sport, SaxSport parentSport, SportData_Full data)
{
PopulateSportResponseData(sport, data as SportData_List);
PopulateSportResponseData(sport, parentSport, data as SportData_List);
}
//-------------------------------------------------------------------
@@ -82,14 +86,15 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
// Item columns.
ColumnDfn colId = ReferenceMgr.GetSportColumnDfn(SaxSport.Column.Id);
ColumnDfn colParentId = ReferenceMgr.GetSportColumnDfn(SaxSport.Column.SportIdParent);
ColumnDfn colParentName = ReferenceMgr.GetSportColumnDfn(SaxSport.Column.ParentSport_Name);
ColumnDfn colName = ReferenceMgr.GetSportColumnDfn(SaxSport.Column.Name);
ColumnDfn colSpecialityLabel = ReferenceMgr.GetSportColumnDfn(SaxSport.Column.SpecialityLabel);
ColumnDfn colStatus = ReferenceMgr.GetSportColumnDfn(SaxSport.Column.Status);
List<ColumnDfn> columns = new List<ColumnDfn>()
{
colId,
colName, colSpecialityLabel,
colStatus
colId, colParentId, colParentName,
colName, colSpecialityLabel, colStatus
};
// Sort order.
@@ -105,6 +110,8 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
SportData_List sportData = new SportData_List()
{
Id = values.GetString(colId.DataName),
SportIdParent = values.GetString(colParentId.DataName),
SportNameParent = values.GetString(colParentName.DataName),
Name = values.GetString(colName.DataName),
SpecialityLabelCode = SportSpecialityLabelCodes.GetCodeForType(specialityLabel),
SpecialityLabelDesc = SportSpecialityLabelCodes.GetDescForType(specialityLabel),
@@ -146,21 +153,31 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
if (!ValidUserSession)
return GetAjaxResult_InvalidSession(responseData);
// Identify item.
SysId sportId = model.SportId.ToSysId();
if (!SysId.IsValid(sportId))
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
// Retrieve item.
SaxSport sport = ReferenceMgr.GetSportById(sportId);
if (sport == null)
// Record disposable items as they are created so all can be disposed when needed.
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
{
SaLogger.Warn(fn + " Failed to retrieve sport for Id: '" + model.SportId + "'");
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
}
// Construct response.
PopulateSportResponseData(sport, responseData.sport);
// Identify item.
SysId sportId = model.SportId.ToSysId();
if (!SysId.IsValid(sportId))
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
// Retrieve item.
SaxSport sport = ReferenceMgr.GetSportById(sportId);
disposableItems.Add(sport);
if (sport == null)
{
SaLogger.Warn(fn + " Failed to retrieve sport for Id: '" + model.SportId + "'");
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
}
// Parent sport.
SaxSport parentSport = ReferenceMgr.GetSportById(sport.SportIdParent);
disposableItems.Add(parentSport);
// Construct response.
PopulateSportResponseData(sport, parentSport, responseData.sport);
}
// Complete response.
responseData.Success = true;
@@ -183,52 +200,67 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
if (!ValidUserSession)
return GetAjaxResult_InvalidSession(responseData);
// Validate item properties.
model.ValidateSportData(responseData);
if (responseData.HasControlErrors())
return Json(responseData);
// Retrieve existing item.
SysId sportId = model.SportId.ToSysId();
SaxSport sport = ReferenceMgr.GetSportById(sportId);
if (sport == null && SysId.IsValid(sportId))
// Record disposable items as they are created so all can be disposed when needed.
using (DisposableCollection<SacsHierarchyItem> disposableItems = new DisposableCollection<SacsHierarchyItem>())
{
SaLogger.Warn(fn + " Failed to retrieve sport for Id: '" + model.SportId + "'");
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
}
// Create new item if required.
if (sport == null)
sport = ReferenceMgr.CreateSport();
// Validate item properties.
model.ValidateSportData(responseData);
if (responseData.HasControlErrors())
return Json(responseData);
// Populate item properties.
if (model.SportName != null)
sport.Name = model.SportName;
if (model.SportSpecialityLabelCode != null)
sport.SpecialityLabel = model.SportSpecialityLabel;
if (model.SportStatusCode != null)
sport.Status = model.SportStatus;
// Store item.
if (!SysId.IsValid(sport.Id))
{
if (!ReferenceMgr.InsertSport(sport, DbUpdateInfo))
// Retrieve existing item.
SysId sportId = model.SportId.ToSysId();
SaxSport sport = ReferenceMgr.GetSportById(sportId);
disposableItems.Add(sport);
if (sport == null && SysId.IsValid(sportId))
{
SaLogger.Warn(fn + " Failed to insert sport: " + ReferenceMgr.ErrorStateMessage);
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
SaLogger.Warn(fn + " Failed to retrieve sport for Id: '" + model.SportId + "'");
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
}
}
else
{
if (!ReferenceMgr.UpdateSport(sport, DbUpdateInfo))
{
SaLogger.Warn(fn + " Failed to update sport [Id:" + SysId.ToString(sport.Id) + "]: " + ReferenceMgr.ErrorStateMessage);
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
}
}
// Construct response.
PopulateSportResponseData(sport, responseData.sport);
// Create new item if required.
if (sport == null)
{
sport = ReferenceMgr.CreateSport();
disposableItems.Add(sport);
}
// Populate item properties.
if (model.SportIdParent != null)
sport.SportIdParent = model.SportIdParent.ToSysId();
if (model.SportName != null)
sport.Name = model.SportName;
if (model.SportSpecialityLabelCode != null)
sport.SpecialityLabel = model.SportSpecialityLabel;
if (model.SportStatusCode != null)
sport.Status = model.SportStatus;
// Store item.
if (!SysId.IsValid(sport.Id))
{
if (!ReferenceMgr.InsertSport(sport, DbUpdateInfo))
{
SaLogger.Warn(fn + " Failed to insert sport: " + ReferenceMgr.ErrorStateMessage);
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.insert.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
}
}
else
{
if (!ReferenceMgr.UpdateSport(sport, DbUpdateInfo))
{
SaLogger.Warn(fn + " Failed to update sport [Id:" + SysId.ToString(sport.Id) + "]: " + ReferenceMgr.ErrorStateMessage);
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"] + "\n\n" + ReferenceMgr.ErrorStateMessage));
}
}
// Parent sport.
SaxSport parentSport = ReferenceMgr.GetSportById(sport.SportIdParent);
disposableItems.Add(parentSport);
// Construct response.
PopulateSportResponseData(sport, parentSport, responseData.sport);
}
// Complete response.
responseData.Success = true;
@@ -34,7 +34,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
// Paging.
Model_UsersOnline model = new Model_UsersOnline(Localiser);
model.Paging.PageNo = 1;
model.Paging.PageLength = 24;
model.Paging.PageLength = 12;
return View(model);
}