This commit is contained in:
2021-07-10 14:23:14 +01:00
parent 03ea1058be
commit 10907d3aff
97 changed files with 2048 additions and 521 deletions
@@ -85,8 +85,8 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
return GetAjaxResult_InvalidSession(responseData);
// Organisation Id filter is mandatory.
SysId filterOrganisationId = new SysId(StringUtil.ToLong(model.Filter.OrganisationId));
if (!SysId.IsValid(filterOrganisationId))
SysId organisationId = model.Filter.OrganisationId.ToSysId();
if (!SysId.IsValid(organisationId))
{
SaLogger.Warn(fn + " Request to retrieve members without valid organisation Id.");
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
@@ -102,12 +102,25 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
responseData.Statuses.Add(SacsSystem.GetStatusCode(status), Localiser.GetStatusCaption(status));
responseData.DefaultStatusCode = SacsSystem.GetStatusCode(SaxUserOrganisation.DefaultStatus);
// Get organisation members.
GetOrganisationMembers(model, organisationId, responseData.Members);
if (model.Paging.IsPaged)
model.Paging.ItemCount = (ushort)responseData.Members.Count;
// Complete response.
responseData.SetPaging(model);
responseData.Success = true;
return Json(responseData);
}
private void GetOrganisationMembers (SaxModel_Admin model, SysId organisationId, List<MemberData_List> members)
{
// Item filter.
SaxUserOrganisation.Params prmUserOrganisation = new SaxUserOrganisation.Params();
prmUserOrganisation.OrganisationIdsIncluded.Add(filterOrganisationId);
prmUserOrganisation.OrganisationIdsIncluded.Add(organisationId);
prmUserOrganisation.OrganisationMembersOnly = true;
prmUserOrganisation.StatusCat = SaxUserOrganisation.StatusCat.NotDeleted;
model.DataItemTotal = (ulong)AccountMgr.GetUserOrganisationCount(prmUserOrganisation);
model.Paging.ItemTotal = (ulong)AccountMgr.GetUserOrganisationCount(prmUserOrganisation);
model.PopulatePagingTo(prmUserOrganisation.ResultsPaging);
// Item columns.
@@ -134,12 +147,10 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
};
// Query items.
model.DataItemCount = 0;
using (DbResultSet resultSet = AccountMgr.ExecuteUserOrganisationQuery(columns, prmUserOrganisation))
{
while (resultSet != null && resultSet.HasRows && resultSet.NextRecord())
{
model.DataItemCount++;
NamedValue.Map values = resultSet.GetRecordValues();
MemberData_List memberData = new MemberData_List()
{
@@ -154,15 +165,9 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
StatusCode = values.GetString(colStatus.DataName),
StatusDesc = SacsSystem.GetStatusDescForCode(values.GetString(colStatus.DataName))
};
responseData.Members.Add(memberData);
members.Add(memberData);
}
}
// Complete response.
responseData.SetPaging(model);
responseData.Success = true;
return Json(responseData);
}
//-------------------------------------------------------------------
@@ -189,7 +194,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
return GetAjaxResult_InvalidSession(responseData);
// Identify item.
SysId userOrganisationId = new SysId(StringUtil.ToLong(model.UserOrganisationId));
SysId userOrganisationId = model.UserOrganisationId.ToSysId();
if (!SysId.IsValid(userOrganisationId))
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.specified"]));
@@ -244,7 +249,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
return Json(responseData);
// User account.
SysId userAccountId = new SysId(StringUtil.ToLong(model.MemberUserAccountId));
SysId userAccountId = model.MemberUserAccountId.ToSysId();
SaxUserAccount userAccount = null;
if (!SysId.IsValid(userAccountId) && !StringUtil.IsEmpty(model.MemberUserEmailAddress))
{
@@ -258,7 +263,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
}
// Organisation.
SysId organisationId = new SysId(StringUtil.ToLong(model.MemberOrganisationId));
SysId organisationId = model.MemberOrganisationId.ToSysId();
SaxOrganisation organisation = null;
if (!SysId.IsValid(organisationId))
{
@@ -267,7 +272,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
}
// Retrieve existing item.
SysId userOrganisationId = new SysId(StringUtil.ToLong(model.UserOrganisationId));
SysId userOrganisationId = model.UserOrganisationId.ToSysId();
SaxUserOrganisation userOrganisation = AccountMgr.GetUserOrganisationById(userOrganisationId);
if (userOrganisation == null && SysId.IsValid(userOrganisationId))
{