|
|
|
@@ -28,7 +28,8 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|
|
|
|
public String LastName { get; set; }
|
|
|
|
|
public String RegionNameCountry { get; set; }
|
|
|
|
|
public String RegionNameProvince { get; set; }
|
|
|
|
|
public int UserRoleCount { get; set; }
|
|
|
|
|
public int? UserSportCount { get; set; } = null;
|
|
|
|
|
public int? UserRoleCount { get; set; } = null;
|
|
|
|
|
public bool? SystemAdmin { get; set; } = null;
|
|
|
|
|
public String LastOnlineLoginAt { get; set; }
|
|
|
|
|
public String LastAdminLoginAt { get; set; }
|
|
|
|
@@ -37,9 +38,17 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|
|
|
|
{
|
|
|
|
|
public String RegionIdCountry { get; set; }
|
|
|
|
|
public String RegionIdProvince { get; set; }
|
|
|
|
|
// User sports.
|
|
|
|
|
public class UserSportData
|
|
|
|
|
{
|
|
|
|
|
public String SportId { get; set; }
|
|
|
|
|
public String SportName { get; set; }
|
|
|
|
|
}
|
|
|
|
|
public List<UserSportData> Sports { get; set; }
|
|
|
|
|
// User roles.
|
|
|
|
|
public List<String> userRoleCodes { get; } = new List<string>();
|
|
|
|
|
}
|
|
|
|
|
private void PopulateUserResponseData(SaxModel_Admin model, UserData_List data, SaxUserAccount user, List<SaxUserRole> userRoles)
|
|
|
|
|
private void PopulateUserResponseData(SaxModel_Admin model, UserData_List data, SaxUserAccount user, List<SaxUserSport> userSports, List<SaxUserRole> userRoles)
|
|
|
|
|
{
|
|
|
|
|
data.Id = SysId.ToString(user.Id);
|
|
|
|
|
data.EmailAddress = user.EmailAddress;
|
|
|
|
@@ -49,7 +58,10 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|
|
|
|
data.LastName = user.LastName;
|
|
|
|
|
data.RegionNameCountry = model.GetRegionName(user.RegionIdCountry);
|
|
|
|
|
data.RegionNameProvince = model.GetRegionName(user.RegionIdProvince);
|
|
|
|
|
data.UserRoleCount = userRoles?.GetUserRolesByStatus(SaStatus.Active).Count ?? 0;
|
|
|
|
|
// User sports.
|
|
|
|
|
// User roles.
|
|
|
|
|
if (userRoles?.GetUserRolesByStatus(SaStatus.Active).Count > 0)
|
|
|
|
|
data.UserRoleCount = userRoles.GetUserRolesByStatus(SaStatus.Active).Count;
|
|
|
|
|
data.SystemAdmin = (userRoles != null && userRoles.Exists(item => item.UserRole == Sax.UserRole.SystemAdmin) ? true : (bool?)null);
|
|
|
|
|
data.LastOnlineLoginAt = model.FormatDateTimeForDisplay(user.LastLoginAt);
|
|
|
|
|
data.StatusCode = user.StatusCode;
|
|
|
|
@@ -59,13 +71,31 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|
|
|
|
if (userRole_SystemAdmin != null)
|
|
|
|
|
data.LastAdminLoginAt = model.FormatDateTimeForDisplay(userRole_SystemAdmin.LastLoginAt);
|
|
|
|
|
}
|
|
|
|
|
private void PopulateUserResponseData(SaxModel_Admin model, UserData_Full data, SaxUserAccount user, List<SaxUserRole> userRoles)
|
|
|
|
|
private void PopulateUserResponseData(SaxModel_Admin model, UserData_Full data, SaxUserAccount user, List<SaxUserSport> userSports, List<SaxUserRole> userRoles)
|
|
|
|
|
{
|
|
|
|
|
PopulateUserResponseData(model, data as UserData_List, user, userRoles);
|
|
|
|
|
PopulateUserResponseData(model, data as UserData_List, user, userSports, userRoles);
|
|
|
|
|
|
|
|
|
|
data.RegionIdCountry = SysId.ToString(user.RegionIdCountry);
|
|
|
|
|
data.RegionIdProvince = SysId.ToString(user.RegionIdProvince);
|
|
|
|
|
|
|
|
|
|
// User sports.
|
|
|
|
|
if (userSports != null && !userSports.IsEmpty())
|
|
|
|
|
{
|
|
|
|
|
data.Sports = new List<UserData_Full.UserSportData>();
|
|
|
|
|
List<SaxSport> sports = ReferenceMgr.GetSportListByIds(userSports.GetSportIds());
|
|
|
|
|
foreach (SaxUserSport userSport in userSports)
|
|
|
|
|
{
|
|
|
|
|
SaxSport sport = sports.GetSportById(userSport.SportId);
|
|
|
|
|
UserData_Full.UserSportData userSportData = new UserData_Full.UserSportData()
|
|
|
|
|
{
|
|
|
|
|
SportId = SysId.ToString(userSport.SportId),
|
|
|
|
|
SportName = sport?.Name ?? null
|
|
|
|
|
};
|
|
|
|
|
data.Sports.Add(userSportData);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// User roles.
|
|
|
|
|
if (userRoles != null)
|
|
|
|
|
{
|
|
|
|
|
foreach (SaxUserRole userRole in userRoles.GetUserRolesByStatus(SaStatus.Active))
|
|
|
|
@@ -75,6 +105,14 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
|
|
|
// Utilities.
|
|
|
|
|
private List<SaxUserSport> GetUserSports(SysId userAccountId, SaxUserSport.StatusCat statusCat = SaxUserSport.StatusCat.NotDeleted)
|
|
|
|
|
{
|
|
|
|
|
if (!SysId.IsValid(userAccountId)) return new List<SaxUserSport>();
|
|
|
|
|
SaxUserSport.Params prmUserSport = new SaxUserSport.Params();
|
|
|
|
|
prmUserSport.UserAccountIdsIncluded.Add(userAccountId);
|
|
|
|
|
prmUserSport.StatusCat = statusCat;
|
|
|
|
|
return AccountMgr.GetUserSportList(prmUserSport);
|
|
|
|
|
}
|
|
|
|
|
private List<SaxUserRole> GetUserRoles(SysId userAccountId, SaxUserRole.StatusCat statusCat = SaxUserRole.StatusCat.NotDeleted)
|
|
|
|
|
{
|
|
|
|
|
if (!SysId.IsValid(userAccountId)) return new List<SaxUserRole>();
|
|
|
|
@@ -142,6 +180,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|
|
|
|
ColumnDfn colProvinceName = AccountMgr.GetUserAccountColumnDfn(SaxUserAccount.Column.RegionProvince_Name);
|
|
|
|
|
ColumnDfn colUserRoleCount = AccountMgr.GetUserAccountColumnDfn(SaxUserAccount.Column.UserRoleCount);
|
|
|
|
|
ColumnDfn colSystemAdminUser = AccountMgr.GetUserAccountColumnDfn(SaxUserAccount.Column.SystemAdminUser);
|
|
|
|
|
ColumnDfn colUserSportCount = AccountMgr.GetUserAccountColumnDfn(SaxUserAccount.Column.UserSportCount_Active);
|
|
|
|
|
ColumnDfn colLastLogin = AccountMgr.GetUserAccountColumnDfn(SaxUserAccount.Column.LastLoginAt);
|
|
|
|
|
ColumnDfn colAdminLastLogin = AccountMgr.GetUserAccountColumnDfn(SaxUserAccount.Column.LastAdminLoginAt);
|
|
|
|
|
ColumnDfn colStatus = AccountMgr.GetUserAccountColumnDfn(SaxUserAccount.Column.Status);
|
|
|
|
@@ -149,8 +188,9 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|
|
|
|
{
|
|
|
|
|
colId, colEmail, colTitle, colFirstName, colLastName,
|
|
|
|
|
colCountryName, colProvinceName,
|
|
|
|
|
colUserRoleCount, colSystemAdminUser,
|
|
|
|
|
colLastLogin, colAdminLastLogin, colStatus
|
|
|
|
|
colUserSportCount, colUserRoleCount,
|
|
|
|
|
colSystemAdminUser, colLastLogin, colAdminLastLogin,
|
|
|
|
|
colStatus
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Query items.
|
|
|
|
@@ -168,6 +208,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|
|
|
|
LastName = values.GetString(colLastName.DataName),
|
|
|
|
|
RegionNameCountry = values.GetString(colCountryName.DataName),
|
|
|
|
|
RegionNameProvince = values.GetString(colProvinceName.DataName),
|
|
|
|
|
UserSportCount = StringUtil.ToInt(values.GetString(colUserSportCount.DataName)),
|
|
|
|
|
UserRoleCount = StringUtil.ToInt(values.GetString(colUserRoleCount.DataName)),
|
|
|
|
|
SystemAdmin = StringUtil.ToBool(values.GetString(colSystemAdminUser.DataName)),
|
|
|
|
|
LastOnlineLoginAt = model.FormatDateTimeForDisplay(values.GetDateTime(colLastLogin.DataName)),
|
|
|
|
@@ -175,6 +216,9 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|
|
|
|
StatusCode = values.GetString(colStatus.DataName),
|
|
|
|
|
StatusDesc = SacsSystem.GetStatusDescForCode(values.GetString(colStatus.DataName))
|
|
|
|
|
};
|
|
|
|
|
if (userData.UserSportCount < 1) userData.UserSportCount = null;
|
|
|
|
|
if (userData.UserRoleCount < 1) userData.UserRoleCount = null;
|
|
|
|
|
if (userData.SystemAdmin == false) userData.SystemAdmin = null;
|
|
|
|
|
userData.DisplayName = SaxUserAccount.GetDisplayName(userData.Title, userData.FirstName, userData.LastName);
|
|
|
|
|
responseData.Users.Add(userData);
|
|
|
|
|
}
|
|
|
|
@@ -231,8 +275,16 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|
|
|
|
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.id.not.found"]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// User Sports.
|
|
|
|
|
List<SaxUserSport> userSports = GetUserSports(user.Id, SaxUserSport.StatusCat.ActiveOnly);
|
|
|
|
|
disposableItems.AddRange(userSports);
|
|
|
|
|
|
|
|
|
|
// User Roles.
|
|
|
|
|
List<SaxUserRole> userRoles = GetUserRoles(user.Id, SaxUserRole.StatusCat.ActiveOnly);
|
|
|
|
|
disposableItems.AddRange(userRoles);
|
|
|
|
|
|
|
|
|
|
// Construct response.
|
|
|
|
|
PopulateUserResponseData(model, responseData.user, user, GetUserRoles(user.Id).GetUserRolesByStatus(SaStatus.Active));
|
|
|
|
|
PopulateUserResponseData(model, responseData.user, user, userSports, userRoles);
|
|
|
|
|
responseData.Success = true;
|
|
|
|
|
}
|
|
|
|
|
return Json(responseData);
|
|
|
|
@@ -275,8 +327,16 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|
|
|
|
return Json(responseData);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// User Sports.
|
|
|
|
|
List<SaxUserSport> userSports = GetUserSports(user.Id, SaxUserSport.StatusCat.ActiveOnly);
|
|
|
|
|
disposableItems.AddRange(userSports);
|
|
|
|
|
|
|
|
|
|
// User Roles.
|
|
|
|
|
List<SaxUserRole> userRoles = GetUserRoles(user.Id, SaxUserRole.StatusCat.ActiveOnly);
|
|
|
|
|
disposableItems.AddRange(userRoles);
|
|
|
|
|
|
|
|
|
|
// Construct response.
|
|
|
|
|
PopulateUserResponseData(model, responseData.user, user, GetUserRoles(user.Id).GetUserRolesByStatus(SaStatus.Active));
|
|
|
|
|
PopulateUserResponseData(model, responseData.user, user, userSports, userRoles);
|
|
|
|
|
responseData.Success = true;
|
|
|
|
|
}
|
|
|
|
|
return Json(responseData);
|
|
|
|
@@ -407,8 +467,12 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// User Sports.
|
|
|
|
|
List<SaxUserSport> userSports = GetUserSports(user.Id, SaxUserSport.StatusCat.ActiveOnly);
|
|
|
|
|
disposableItems.AddRange(userSports);
|
|
|
|
|
|
|
|
|
|
// Construct response.
|
|
|
|
|
PopulateUserResponseData(model, responseData.user, user, userRoles.GetUserRolesByStatus(SaStatus.Active));
|
|
|
|
|
PopulateUserResponseData(model, responseData.user, user, userSports, userRoles.GetUserRolesByStatus(SaStatus.Active));
|
|
|
|
|
responseData.Success = true;
|
|
|
|
|
}
|
|
|
|
|
return Json(responseData);
|
|
|
|
@@ -479,8 +543,12 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
|
|
|
|
emailsSentCount++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// User Sports.
|
|
|
|
|
List<SaxUserSport> userSports = GetUserSports(userAccount.Id, SaxUserSport.StatusCat.ActiveOnly);
|
|
|
|
|
disposableItems.AddRange(userSports);
|
|
|
|
|
|
|
|
|
|
// Construct response.
|
|
|
|
|
PopulateUserResponseData(model, responseData.user, userAccount, userRoles.GetUserRolesByStatus(SaStatus.Active));
|
|
|
|
|
PopulateUserResponseData(model, responseData.user, userAccount, userSports, userRoles.GetUserRolesByStatus(SaStatus.Active));
|
|
|
|
|
responseData.SetNotification(messageTitle, "Emails sent: " + emailsSentCount);
|
|
|
|
|
responseData.Success = true;
|
|
|
|
|
}
|
|
|
|
|