v1.0.6.0
Refresh Online Session with profile region and sports.
This commit is contained in:
@@ -56,7 +56,7 @@ namespace Saxonite.Net.Core.UnitTests.Web.Admin.App
|
||||
SaxSessionData_Admin sessionDataDeserialized =
|
||||
JsonConvert.DeserializeObject<SaxSessionData_Admin>(
|
||||
sessionDataJson,
|
||||
new JsonSerializerSettings { ContractResolver = new SaxController_Base.SessionStorage.SaxSessionDataContractResolver() }
|
||||
SaxController_Base.SessionStorage.JsonDeserialisationSettings
|
||||
);
|
||||
Assert.IsNotNull(sessionDataDeserialized);
|
||||
|
||||
|
||||
@@ -137,12 +137,14 @@ namespace Saxonite.Net.Core.Web.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
private class CodeCache
|
||||
{
|
||||
public List<TypeCodeDesc> regionTypes;
|
||||
public List<TypeCodeDesc> userRoles;
|
||||
public List<TypeCodeDesc> organisationTypes;
|
||||
public List<TypeCodeDesc> organisationCategories;
|
||||
public List<TypeCodeDesc> organisationRoles;
|
||||
public List<TypeCodeDesc> opportunityTypes;
|
||||
public List<TypeCodeDesc> sportParticipationCodes;
|
||||
public List<TypeCodeDesc> sportOfficiatingCodes;
|
||||
public List<TypeCodeDesc> regionTypeCodes;
|
||||
public List<TypeCodeDesc> userRoleCodes;
|
||||
public List<TypeCodeDesc> organisationTypeCodes;
|
||||
public List<TypeCodeDesc> organisationCategoryCodes;
|
||||
public List<TypeCodeDesc> organisationRoleCodes;
|
||||
public List<TypeCodeDesc> opportunityTypeCodes;
|
||||
}
|
||||
private CodeCache codes = new CodeCache();
|
||||
|
||||
@@ -153,64 +155,84 @@ namespace Saxonite.Net.Core.Web.Base.App
|
||||
return SacsSystem.GetStatusDesc(status);
|
||||
}
|
||||
|
||||
// Sport Participation.
|
||||
public String GetSportParticipationTypeCaption(Sax.SportParticipation participation)
|
||||
{
|
||||
if ((int)participation < 1) return "";
|
||||
if (codes.sportParticipationCodes == null)
|
||||
codes.sportParticipationCodes = SaxSystem.GetCodesOfType(Sax.CodeType.SportParticipation);
|
||||
// ToDo Sport Participation localisation.
|
||||
return codes.sportParticipationCodes.GetDescForType(participation);
|
||||
}
|
||||
|
||||
// Sport Officiating.
|
||||
public String GetSportOfficiatingTypeCaption(Sax.SportOfficiating participation)
|
||||
{
|
||||
if ((int)participation < 1) return "";
|
||||
if (codes.sportOfficiatingCodes == null)
|
||||
codes.sportOfficiatingCodes = SaxSystem.GetCodesOfType(Sax.CodeType.SportOfficiating);
|
||||
// ToDo Sport Officiating localisation.
|
||||
return codes.sportOfficiatingCodes.GetDescForType(participation);
|
||||
}
|
||||
|
||||
// Region type.
|
||||
public String GetRegionTypeCaption(Sax.RegionType regionType)
|
||||
{
|
||||
if ((int)regionType < 1) return "";
|
||||
if (codes.regionTypes == null)
|
||||
codes.regionTypes = SaxSystem.GetCodesOfType(Sax.CodeType.RegionType);
|
||||
if (codes.regionTypeCodes == null)
|
||||
codes.regionTypeCodes = SaxSystem.GetCodesOfType(Sax.CodeType.RegionType);
|
||||
// ToDo Region type localisation.
|
||||
return codes.regionTypes.GetDescForType(regionType);
|
||||
return codes.regionTypeCodes.GetDescForType(regionType);
|
||||
}
|
||||
|
||||
// User role.
|
||||
public String GetUserRoleCaption(Sax.UserRole userRole)
|
||||
{
|
||||
if ((int)userRole < 1) return "";
|
||||
if (codes.userRoles == null)
|
||||
codes.userRoles = SaxSystem.GetCodesOfType(Sax.CodeType.UserRole);
|
||||
if (codes.userRoleCodes == null)
|
||||
codes.userRoleCodes = SaxSystem.GetCodesOfType(Sax.CodeType.UserRole);
|
||||
// ToDo User Role localisation.
|
||||
return codes.userRoles.GetDescForType(userRole);
|
||||
return codes.userRoleCodes.GetDescForType(userRole);
|
||||
}
|
||||
|
||||
// Organisation type.
|
||||
public String GetOrganisationTypeCaption(Sax.OrganisationType organisationType)
|
||||
{
|
||||
if ((int)organisationType < 1) return "";
|
||||
if (codes.organisationTypes == null)
|
||||
codes.organisationTypes = SaxSystem.GetCodesOfType(Sax.CodeType.OrganisationType);
|
||||
if (codes.organisationTypeCodes == null)
|
||||
codes.organisationTypeCodes = SaxSystem.GetCodesOfType(Sax.CodeType.OrganisationType);
|
||||
// ToDo Organisation Type localisation.
|
||||
return codes.organisationTypes.GetDescForType(organisationType);
|
||||
return codes.organisationTypeCodes.GetDescForType(organisationType);
|
||||
}
|
||||
|
||||
// Organisation category.
|
||||
public String GetOrganisationCategoryCaption(Sax.OrganisationCategory organisationCategory)
|
||||
{
|
||||
if ((int)organisationCategory < 1) return "";
|
||||
if (codes.organisationCategories == null)
|
||||
codes.organisationCategories = SaxSystem.GetCodesOfType(Sax.CodeType.OrganisationCategory);
|
||||
if (codes.organisationCategoryCodes == null)
|
||||
codes.organisationCategoryCodes = SaxSystem.GetCodesOfType(Sax.CodeType.OrganisationCategory);
|
||||
// ToDo Organisation Category localisation.
|
||||
return codes.organisationCategories.GetDescForType(organisationCategory);
|
||||
return codes.organisationCategoryCodes.GetDescForType(organisationCategory);
|
||||
}
|
||||
|
||||
// Organisation role.
|
||||
public String GetOrganisationRoleCaption(Sax.OrganisationRole organisationRole)
|
||||
{
|
||||
if ((int)organisationRole < 1) return "";
|
||||
if (codes.organisationRoles == null)
|
||||
codes.organisationRoles = SaxSystem.GetCodesOfType(Sax.CodeType.OrganisationRole);
|
||||
if (codes.organisationRoleCodes == null)
|
||||
codes.organisationRoleCodes = SaxSystem.GetCodesOfType(Sax.CodeType.OrganisationRole);
|
||||
// ToDo Organisation Role localisation.
|
||||
return codes.organisationRoles.GetDescForType(organisationRole);
|
||||
return codes.organisationRoleCodes.GetDescForType(organisationRole);
|
||||
}
|
||||
|
||||
// Opportunity type.
|
||||
public String GetOpportunityTypeCaption(Sax.OpportunityType opportunityType)
|
||||
{
|
||||
if ((int)opportunityType < 1) return "";
|
||||
if (codes.opportunityTypes == null)
|
||||
codes.opportunityTypes = SaxSystem.GetCodesOfType(Sax.CodeType.OpportunityType);
|
||||
if (codes.opportunityTypeCodes == null)
|
||||
codes.opportunityTypeCodes = SaxSystem.GetCodesOfType(Sax.CodeType.OpportunityType);
|
||||
// ToDo Opportunity Type localisation.
|
||||
return codes.opportunityTypes.GetDescForType(opportunityType);
|
||||
return codes.opportunityTypeCodes.GetDescForType(opportunityType);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -7,7 +7,7 @@ using System.Text;
|
||||
namespace Saxonite.Net.Core.Web.Base.App
|
||||
{
|
||||
//=======================================================================
|
||||
public class SaxSessionData_Web : SaxSessionData
|
||||
public abstract class SaxSessionData_Web : SaxSessionData
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Protected construction.
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace Saxonite.Net.Core.Web.Base.Consoles
|
||||
public static int CompareActivityIndices(ActivityData_Web item1, ActivityData_Web item2)
|
||||
{
|
||||
int effectiveCompare = item1.EffectiveOn.CompareTo(item2.EffectiveOn);
|
||||
if (effectiveCompare != null) return effectiveCompare * -1;
|
||||
if (effectiveCompare != 0) return effectiveCompare * -1;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,13 +90,15 @@ namespace Saxonite.Net.Core.Web.Base.Controllers
|
||||
public SaxActivityMgr ActivityMgr { get { return Internals.ActivityMgr; } }
|
||||
public SaxItemDataMgr ItemDataMgr { get { return Internals.ItemDataMgr; } }
|
||||
// System codes.
|
||||
public List<TypeCodeDesc> RegionTypes { get { return Internals.RegionTypes; } }
|
||||
public List<TypeCodeDesc> UserRoles { get { return Internals.UserRoles; } }
|
||||
public List<TypeCodeDesc> OrganisationTypes { get { return Internals.OrganisationTypes; } }
|
||||
public List<TypeCodeDesc> OrganisationCategories { get { return Internals.OrganisationCategories; } }
|
||||
public List<TypeCodeDesc> OrganisationRoles { get { return Internals.OrganisationRoles; } }
|
||||
public List<TypeCodeDesc> OpportunityTypes { get { return Internals.OpportunityTypes; } }
|
||||
public List<TypeCodeDesc> DataItemTypes { get { return Internals.DataItemTypes; } }
|
||||
public List<TypeCodeDesc> SportParticipationCodes { get { return Internals.SportParticipationCodes; } }
|
||||
public List<TypeCodeDesc> SportOfficiatingCodes { get { return Internals.SportOfficiatingCodes; } }
|
||||
public List<TypeCodeDesc> RegionTypeCodes { get { return Internals.RegionTypeCodes; } }
|
||||
public List<TypeCodeDesc> UserRoleCodes { get { return Internals.UserRoleCodes; } }
|
||||
public List<TypeCodeDesc> OrganisationTypeCodes { get { return Internals.OrganisationTypeCodes; } }
|
||||
public List<TypeCodeDesc> OrganisationCategoryCodes { get { return Internals.OrganisationCategoryCodes; } }
|
||||
public List<TypeCodeDesc> OrganisationRoleCodes { get { return Internals.OrganisationRoleCodes; } }
|
||||
public List<TypeCodeDesc> OpportunityTypeCodes { get { return Internals.OpportunityTypeCodes; } }
|
||||
public List<TypeCodeDesc> DataItemTypeCodes { get { return Internals.DataItemTypeCodes; } }
|
||||
// Email.
|
||||
public SaEmailConfig EmailConfig { get { return App.EmailConfig; } }
|
||||
public SaxEmailConsole EmailConsole { get { return Internals.EmailConsole; } }
|
||||
|
||||
@@ -55,13 +55,15 @@ namespace Saxonite.Net.Core.Web.Base.Models
|
||||
protected SaxActivityMgr ActivityMgr { get { return Internals.ActivityMgr; } }
|
||||
protected SaxItemDataMgr ItemDataMgr { get { return Internals.ItemDataMgr; } }
|
||||
// System codes.
|
||||
public List<TypeCodeDesc> RegionTypes { get { return Internals.RegionTypes; } }
|
||||
public List<TypeCodeDesc> UserRoles { get { return Internals.UserRoles; } }
|
||||
public List<TypeCodeDesc> OrganisationTypes { get { return Internals.OrganisationTypes; } }
|
||||
public List<TypeCodeDesc> OrganisationCategories { get { return Internals.OrganisationCategories; } }
|
||||
public List<TypeCodeDesc> OrganisationRoles { get { return Internals.OrganisationRoles; } }
|
||||
public List<TypeCodeDesc> OpportunityTypes { get { return Internals.OpportunityTypes; } }
|
||||
public List<TypeCodeDesc> DataItemTypes { get { return Internals.DataItemTypes; } }
|
||||
public List<TypeCodeDesc> SportParticipationCodes { get { return Internals.SportParticipationCodes; } }
|
||||
public List<TypeCodeDesc> SportOfficiatingCodes { get { return Internals.SportOfficiatingCodes; } }
|
||||
public List<TypeCodeDesc> RegionTypeCodes { get { return Internals.RegionTypeCodes; } }
|
||||
public List<TypeCodeDesc> UserRoleCodes { get { return Internals.UserRoleCodes; } }
|
||||
public List<TypeCodeDesc> OrganisationTypeCodes { get { return Internals.OrganisationTypeCodes; } }
|
||||
public List<TypeCodeDesc> OrganisationCategoryCodes { get { return Internals.OrganisationCategoryCodes; } }
|
||||
public List<TypeCodeDesc> OrganisationRoleCodes { get { return Internals.OrganisationRoleCodes; } }
|
||||
public List<TypeCodeDesc> OpportunityTypeCodes { get { return Internals.OpportunityTypeCodes; } }
|
||||
public List<TypeCodeDesc> DataItemTypeCodes { get { return Internals.DataItemTypeCodes; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Page configuration.
|
||||
@@ -153,28 +155,40 @@ namespace Saxonite.Net.Core.Web.Base.Models
|
||||
get { return new SelectList(SaxSystem.GetCodesOfType(Sax.CodeType.YesNo), "Code", "Desc"); }
|
||||
}
|
||||
|
||||
/// <summary>List of Sport Participation options for dropdown.</summary>
|
||||
public IEnumerable<SelectListItem> SportParticipationCodesForSelect
|
||||
{
|
||||
get { return new SelectList(SportParticipationCodes, "Code", "Desc"); }
|
||||
}
|
||||
|
||||
/// <summary>List of Sport Officiating options for dropdown.</summary>
|
||||
public IEnumerable<SelectListItem> SportOfficiatingCodesForSelect
|
||||
{
|
||||
get { return new SelectList(SportOfficiatingCodes, "Code", "Desc"); }
|
||||
}
|
||||
|
||||
/// <summary>List of Region Types for dropdown.</summary>
|
||||
public IEnumerable<SelectListItem> RegionTypesForSelect
|
||||
{
|
||||
get { return new SelectList(RegionTypeCodes, "Code", "Desc"); }
|
||||
}
|
||||
|
||||
/// <summary>List of titles for dropdown.</summary>
|
||||
public IEnumerable<SelectListItem> TitlesForSelect
|
||||
{
|
||||
get { return new SelectList(SaxSystem.GetCodesOfType(Sax.CodeType.Title), "Code", "Desc"); }
|
||||
}
|
||||
|
||||
/// <summary>List of Region Types for dropdown.</summary>
|
||||
public IEnumerable<SelectListItem> RegionTypesForSelect
|
||||
{
|
||||
get { return new SelectList(RegionTypes, "Code", "Desc"); }
|
||||
}
|
||||
|
||||
/// <summary>List of Organisation Types for dropdown.</summary>
|
||||
public IEnumerable<SelectListItem> OrganisationTypesForSelect
|
||||
{
|
||||
get { return new SelectList(OrganisationTypes, "Code", "Desc"); }
|
||||
get { return new SelectList(OrganisationTypeCodes, "Code", "Desc"); }
|
||||
}
|
||||
|
||||
/// <summary>List of Organisation Categories for dropdown.</summary>
|
||||
public IEnumerable<SelectListItem> OrganisationCategoriesForSelect
|
||||
{
|
||||
get { return new SelectList(OrganisationCategories, "Code", "Desc"); }
|
||||
get { return new SelectList(OrganisationCategoryCodes, "Code", "Desc"); }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -28,8 +28,21 @@ namespace Saxonite.Net.Core.Web.Admin.App
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Properties.
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// User details.
|
||||
private class UserData_Admin : UserData
|
||||
{
|
||||
public UserData_Admin(SaxSessionContext sessionContext, SaxUserAccount userAccount, List<SaxUserRole> userRoles) :
|
||||
base(sessionContext, userAccount, userRoles)
|
||||
{ }
|
||||
public UserData_Admin(UserData userData) :
|
||||
base(userData)
|
||||
{ }
|
||||
}
|
||||
protected override UserData CreateUserData(SaxSessionContext sessionContext, SaxUserAccount userAccount, List<SaxUserRole> userRoles) { return new UserData_Admin(sessionContext, userAccount, userRoles); }
|
||||
/// <summary>User - JSON deserialisation route.</summary>
|
||||
public new UserData User { get { return base.User; } set { SetUser(value); } }
|
||||
public new UserData User { get { return base.User; } set { SetUser(new UserData_Admin(value)); } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
|
||||
@@ -47,10 +47,10 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
{
|
||||
data.Id = SysId.ToString(organisation.Id);
|
||||
data.Name = organisation.Name;
|
||||
data.TypeCode = OrganisationTypes.GetCodeForType(organisation.OrganisationType);
|
||||
data.TypeDesc = OrganisationTypes.GetDescForType(organisation.OrganisationType);
|
||||
data.CategoryCode = OrganisationCategories.GetCodeForType(organisation.OrganisationCategory);
|
||||
data.CategoryDesc = OrganisationCategories.GetDescForType(organisation.OrganisationCategory);
|
||||
data.TypeCode = OrganisationTypeCodes.GetCodeForType(organisation.OrganisationType);
|
||||
data.TypeDesc = OrganisationTypeCodes.GetDescForType(organisation.OrganisationType);
|
||||
data.CategoryCode = OrganisationCategoryCodes.GetCodeForType(organisation.OrganisationCategory);
|
||||
data.CategoryDesc = OrganisationCategoryCodes.GetDescForType(organisation.OrganisationCategory);
|
||||
data.MemberCount = AccountMgr.GetOrganisationMemberCount(organisation.Id);
|
||||
// Sport.
|
||||
data.SportId = SysId.ToLong(organisation.SportIdPrimary);
|
||||
@@ -145,9 +145,9 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
Id = values.GetString(colId.DataName),
|
||||
Name = values.GetString(colName.DataName),
|
||||
TypeCode = values.GetString(colOrganisationType.DataName),
|
||||
TypeDesc = OrganisationTypes.GetDescForCode(values.GetString(colOrganisationType.DataName)),
|
||||
TypeDesc = OrganisationTypeCodes.GetDescForCode(values.GetString(colOrganisationType.DataName)),
|
||||
CategoryCode = values.GetString(colOrganisationCategory.DataName),
|
||||
CategoryDesc = OrganisationCategories.GetDescForCode(values.GetString(colOrganisationCategory.DataName)),
|
||||
CategoryDesc = OrganisationCategoryCodes.GetDescForCode(values.GetString(colOrganisationCategory.DataName)),
|
||||
MemberCount = StringUtil.ToLong(values.GetString(colMemberCount.DataName)),
|
||||
SportId = values.GetLong(colSportId.DataName),
|
||||
SportName = values.GetString(colSportName.DataName),
|
||||
|
||||
@@ -47,7 +47,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
data.OrganisationName = organisation.Name;
|
||||
// Exclude 'Member' role.
|
||||
foreach (Sax.OrganisationRole organisationRole in userOrganisation.OrganisationRoles.FindAll(item => item != Sax.OrganisationRole.Member))
|
||||
data.RoleCodes.Add(OrganisationRoles.GetCodeForType(organisationRole));
|
||||
data.RoleCodes.Add(OrganisationRoleCodes.GetCodeForType(organisationRole));
|
||||
data.RoleCount = userOrganisation.OrganisationRoles.Count - 1;
|
||||
data.StatusCode = userOrganisation.StatusCode;
|
||||
data.StatusDesc = userOrganisation.StatusDesc;
|
||||
@@ -91,7 +91,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
|
||||
// Reference data - organisation roles.
|
||||
// Exclude 'Member' as this is added automatically when stored.
|
||||
foreach (TypeCodeDesc organisationRole in OrganisationRoles.FindAll(item => item.Type != (int)Sax.OrganisationRole.Member))
|
||||
foreach (TypeCodeDesc organisationRole in OrganisationRoleCodes.FindAll(item => item.Type != (int)Sax.OrganisationRole.Member))
|
||||
responseData.MemberRoles.Add(organisationRole.Code, Localiser.GetOrganisationRoleCaption((Sax.OrganisationRole)organisationRole.Type));
|
||||
|
||||
// Reference data - statuses.
|
||||
|
||||
@@ -36,8 +36,8 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
private void PopulateRegionResponseData(SaxRegion region, RegionData_List data)
|
||||
{
|
||||
data.Id = SysId.ToString(region.Id);
|
||||
data.RegionTypeCode = RegionTypes.GetCodeForType(region.RegionType);
|
||||
data.RegionTypeDesc = RegionTypes.GetDescForType(region.RegionType);
|
||||
data.RegionTypeCode = RegionTypeCodes.GetCodeForType(region.RegionType);
|
||||
data.RegionTypeDesc = RegionTypeCodes.GetDescForType(region.RegionType);
|
||||
data.CountryIso2Code = region.CountryIso2Code;
|
||||
data.Name = region.Name;
|
||||
data.StatusCode = region.StatusCode;
|
||||
@@ -117,8 +117,8 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
RegionData_List regionData = new RegionData_List()
|
||||
{
|
||||
Id = values.GetString(colId.DataName),
|
||||
RegionTypeCode = RegionTypes.GetCodeForType(regionType),
|
||||
RegionTypeDesc = RegionTypes.GetDescForType(regionType),
|
||||
RegionTypeCode = RegionTypeCodes.GetCodeForType(regionType),
|
||||
RegionTypeDesc = RegionTypeCodes.GetDescForType(regionType),
|
||||
CountryIso2Code = values.GetString(colIso2Code.DataName),
|
||||
Name = values.GetString(colName.DataName),
|
||||
ParentName = values.GetString(colParentName.DataName),
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
if (userRoles != null)
|
||||
{
|
||||
foreach (SaxUserRole userRole in userRoles.GetUserRolesByStatus(SaStatus.Active))
|
||||
data.userRoleCodes.Add(UserRoles.GetCodeForType(userRole.UserRole));
|
||||
data.userRoleCodes.Add(UserRoleCodes.GetCodeForType(userRole.UserRole));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
return GetAjaxResult_InvalidSession(responseData);
|
||||
|
||||
// Reference data - user roles.
|
||||
foreach (TypeCodeDesc userRole in UserRoles)
|
||||
foreach (TypeCodeDesc userRole in UserRoleCodes)
|
||||
responseData.UserRoles.Add(userRole.Code, Localiser.GetUserRoleCaption((Sax.UserRole)userRole.Type));
|
||||
responseData.DefaultStatusCode = SacsSystem.GetStatusCode(SaxUserAccount.DefaultStatus);
|
||||
|
||||
@@ -280,7 +280,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
foreach (String userRoleCode in userRoleCodes)
|
||||
{
|
||||
// Role to activate.
|
||||
Sax.UserRole role = (Sax.UserRole)UserRoles.GetTypeForCode(userRoleCode);
|
||||
Sax.UserRole role = (Sax.UserRole)UserRoleCodes.GetTypeForCode(userRoleCode);
|
||||
SaxUserRole userRole = userRoles.GetUserRoleByRole(role);
|
||||
if (userRole == null)
|
||||
{
|
||||
@@ -292,7 +292,7 @@ namespace Saxonite.Net.Core.Web.Admin.Controllers
|
||||
// Roles to deactivate.
|
||||
foreach (SaxUserRole userRole in userRoles)
|
||||
{
|
||||
if (!userRoleCodes.Exists(item => item.EqualsCI(UserRoles.GetCodeForType(userRole.UserRole))))
|
||||
if (!userRoleCodes.Exists(item => item.EqualsCI(UserRoleCodes.GetCodeForType(userRole.UserRole))))
|
||||
userRole.Status = SaStatus.Inactive;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,11 +37,11 @@ namespace Saxonite.Net.Core.Web.Admin.Models
|
||||
public FilterData Filter { get; } = new FilterData();
|
||||
public Sax.OrganisationType FilterOrganisationType
|
||||
{
|
||||
get { return (Sax.OrganisationType)OrganisationTypes.GetTypeForCode(Filter.OrganisationTypeCode); }
|
||||
get { return (Sax.OrganisationType)OrganisationTypeCodes.GetTypeForCode(Filter.OrganisationTypeCode); }
|
||||
}
|
||||
public Sax.OrganisationCategory FilterOrganisationCategory
|
||||
{
|
||||
get { return (Sax.OrganisationCategory)OrganisationCategories.GetTypeForCode(Filter.OrganisationCategoryCode); }
|
||||
get { return (Sax.OrganisationCategory)OrganisationCategoryCodes.GetTypeForCode(Filter.OrganisationCategoryCode); }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -49,9 +49,9 @@ namespace Saxonite.Net.Core.Web.Admin.Models
|
||||
public String OrganisationId { get; set; }
|
||||
public String OrganisationName { get; set; }
|
||||
public String OrganisationTypeValue { get; set; }
|
||||
public Sax.OrganisationType OrganisationType { get { return (Sax.OrganisationType)OrganisationTypes.GetTypeForCode(OrganisationTypeValue); } }
|
||||
public Sax.OrganisationType OrganisationType { get { return (Sax.OrganisationType)OrganisationTypeCodes.GetTypeForCode(OrganisationTypeValue); } }
|
||||
public String OrganisationCategoryValue { get; set; }
|
||||
public Sax.OrganisationCategory OrganisationCategory { get { return (Sax.OrganisationCategory)OrganisationCategories.GetTypeForCode(OrganisationCategoryValue); } }
|
||||
public Sax.OrganisationCategory OrganisationCategory { get { return (Sax.OrganisationCategory)OrganisationCategoryCodes.GetTypeForCode(OrganisationCategoryValue); } }
|
||||
public String OrganisationSportId { get; set; }
|
||||
public String OrganisationRegionId { get; set; }
|
||||
// Common properties.
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace Saxonite.Net.Core.Web.Admin.Models
|
||||
public FilterData Filter { get; } = new FilterData();
|
||||
public Sax.RegionType FilterRegionType
|
||||
{
|
||||
get { return (Sax.RegionType)RegionTypes.GetTypeForCode(Filter.RegionTypeCode); }
|
||||
get { return (Sax.RegionType)RegionTypeCodes.GetTypeForCode(Filter.RegionTypeCode); }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -45,8 +45,8 @@ namespace Saxonite.Net.Core.Web.Admin.Models
|
||||
public String RegionTypeCode { get; set; }
|
||||
public Sax.RegionType RegionType
|
||||
{
|
||||
get { return (Sax.RegionType)RegionTypes.GetTypeForCode(RegionTypeCode); }
|
||||
set { RegionTypeCode = RegionTypes.GetCodeForType(value); }
|
||||
get { return (Sax.RegionType)RegionTypeCodes.GetTypeForCode(RegionTypeCode); }
|
||||
set { RegionTypeCode = RegionTypeCodes.GetCodeForType(value); }
|
||||
}
|
||||
public String RegionCountryIso2Code { get; set; }
|
||||
public String RegionName { get; set; }
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
//--------------------------------------------------------------
|
||||
sax.refreshDbSchema= function (delay)
|
||||
{
|
||||
if (sax.awaitingLogin) return;
|
||||
var $results = $('.sax-panel-results.DbSchema');
|
||||
if (!sax.awaitingRefreshResponse)
|
||||
{
|
||||
|
||||
@@ -249,6 +249,9 @@
|
||||
<data name="label.no" xml:space="preserve">
|
||||
<value>No</value>
|
||||
</data>
|
||||
<data name="label.officiating" xml:space="preserve">
|
||||
<value>Officiating</value>
|
||||
</data>
|
||||
<data name="label.ok" xml:space="preserve">
|
||||
<value>OK</value>
|
||||
</data>
|
||||
@@ -264,6 +267,9 @@
|
||||
<data name="label.outline" xml:space="preserve">
|
||||
<value>Outline</value>
|
||||
</data>
|
||||
<data name="label.participation" xml:space="preserve">
|
||||
<value>Participation</value>
|
||||
</data>
|
||||
<data name="label.password" xml:space="preserve">
|
||||
<value>Password</value>
|
||||
</data>
|
||||
|
||||
@@ -32,9 +32,35 @@ namespace Saxonite.Net.Core.Web.Online.App
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Security.
|
||||
// Contact details.
|
||||
private class UserData_Online : UserData
|
||||
{
|
||||
public UserData_Online(SaxSessionContext sessionContext, SaxUserAccount userAccount, List<SaxUserRole> userRoles) :
|
||||
base(sessionContext, userAccount, userRoles)
|
||||
{ }
|
||||
public UserData_Online(UserData userData) :
|
||||
base(userData)
|
||||
{ }
|
||||
public new bool RefreshUserData(SaxUserAccount userAccount)
|
||||
{
|
||||
return base.RefreshUserData(userAccount);
|
||||
}
|
||||
}
|
||||
protected override UserData CreateUserData(SaxSessionContext sessionContext, SaxUserAccount userAccount, List<SaxUserRole> userRoles) { return new UserData_Online(sessionContext, userAccount, userRoles); }
|
||||
/// <summary>User - JSON deserialisation route.</summary>
|
||||
public new UserData User { get { return base.User; } set { SetUser(value); } }
|
||||
public new UserData User { get { return base.User; } set { SetUser(new UserData_Online(value)); } }
|
||||
|
||||
/// <summary>
|
||||
/// Update the user's contect details against the session.
|
||||
/// <para>- User Account must match that already against the session.</para>
|
||||
/// </summary>
|
||||
public bool RefreshUser(SaxUserAccount userAccount)
|
||||
{
|
||||
UserData_Online user = User as UserData_Online;
|
||||
if (user != null)
|
||||
return user.RefreshUserData(userAccount);
|
||||
return false;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// User Profile.
|
||||
@@ -45,6 +71,7 @@ namespace Saxonite.Net.Core.Web.Online.App
|
||||
// Sports.
|
||||
public class SportData
|
||||
{
|
||||
[JsonConstructor]
|
||||
public SportData(SysId sportId, SaStatus status)
|
||||
{
|
||||
SportId = sportId;
|
||||
|
||||
@@ -157,6 +157,9 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
return Json(responseData.SetMessage(messageTitle, Localiser["msg.error.item.update.failed"]));
|
||||
}
|
||||
|
||||
// Refresh profile contact details to session.
|
||||
RefreshSessionProfileContact(userAccount);
|
||||
|
||||
// Construct response.
|
||||
responseData.Contact = new ContactResponseData();
|
||||
PopulateContactResponseData(responseData.Contact, userAccount);
|
||||
|
||||
@@ -14,6 +14,7 @@ using Sarand.Net.Standard.Base.Bus;
|
||||
using Sarand.Net.Standard.Base.Utils;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
using Sarand.Net.Standard.Base.Dbas;
|
||||
using Saxonite.Net.Standard.Base.App;
|
||||
|
||||
namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
{
|
||||
@@ -29,11 +30,15 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
public long Id { get; set; }
|
||||
public long SportId { get; set; }
|
||||
public String SportName { get; set; }
|
||||
public String SportParticipation { get; set; }
|
||||
public String SportOfficiating { get; set; }
|
||||
public String StatusCode { get; set; }
|
||||
public String StatusDesc { get; set; }
|
||||
}
|
||||
public class ProfileSportResponseData_Item : ProfileSportResponseData_List
|
||||
{
|
||||
public String SportParticipationCode { get; set; }
|
||||
public String SportOfficiatingCode { get; set; }
|
||||
public String CreatedOnFmt { get; set; }
|
||||
}
|
||||
private void PopulateProfileSportResponseData(Model_Account model, SaxUserSport userSport, SaxSport sport, ProfileSportResponseData_Item data)
|
||||
@@ -41,6 +46,10 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
data.Id = SysId.ToLong(userSport.Id);
|
||||
data.SportId = SysId.ToLong(userSport.SportId);
|
||||
data.SportName = sport.Name;
|
||||
data.SportParticipationCode = SportParticipationCodes.GetCodeForType(userSport.Participation);
|
||||
data.SportParticipation = Localiser.GetSportParticipationTypeCaption(userSport.Participation);
|
||||
data.SportOfficiatingCode = SportOfficiatingCodes.GetCodeForType(userSport.Officiating);
|
||||
data.SportOfficiating = Localiser.GetSportOfficiatingTypeCaption(userSport.Officiating);
|
||||
data.CreatedOnFmt = DateUtil.Format(userSport.CreateStamp.On, "d-MMM-yyyy");
|
||||
data.StatusCode = userSport.StatusCode;
|
||||
data.StatusDesc = userSport.StatusDesc;
|
||||
@@ -79,11 +88,14 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
ColumnDfn colId = AccountMgr.GetUserSportColumnDfn(SaxUserSport.Column.Id);
|
||||
ColumnDfn colSportId = AccountMgr.GetUserSportColumnDfn(SaxUserSport.Column.SportId);
|
||||
ColumnDfn colSportName = AccountMgr.GetUserSportColumnDfn(SaxUserSport.Column.Sport_Name);
|
||||
ColumnDfn colParticipation = AccountMgr.GetUserSportColumnDfn(SaxUserSport.Column.SportParticipation);
|
||||
ColumnDfn colOfficiating = AccountMgr.GetUserSportColumnDfn(SaxUserSport.Column.SportOfficiating);
|
||||
ColumnDfn colStatus = AccountMgr.GetUserSportColumnDfn(SaxUserSport.Column.Status);
|
||||
List<ColumnDfn> columns = new List<ColumnDfn>()
|
||||
{
|
||||
colId,
|
||||
colSportId, colSportName,
|
||||
colParticipation, colOfficiating,
|
||||
colStatus,
|
||||
};
|
||||
|
||||
@@ -103,6 +115,8 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
Id = values.GetLong(colId.DataName),
|
||||
SportId = values.GetLong(colSportId.DataName),
|
||||
SportName = values.GetString(colSportName.DataName),
|
||||
SportParticipation = Localiser.GetSportParticipationTypeCaption((Sax.SportParticipation)values.GetLong(colParticipation.DataName)),
|
||||
SportOfficiating = Localiser.GetSportOfficiatingTypeCaption((Sax.SportOfficiating)values.GetLong(colOfficiating.DataName)),
|
||||
StatusCode = values.GetString(colStatus.DataName),
|
||||
StatusDesc = SacsSystem.GetStatusDescForCode(values.GetString(colStatus.DataName))
|
||||
};
|
||||
@@ -227,11 +241,28 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
// Create new item if required.
|
||||
// If sport doesn't exist for the user, it may have been previously deleted.
|
||||
if (userSport == null)
|
||||
userSport = AccountMgr.CreateUserSport(SessionData.User.UserAccountId, sportId);
|
||||
{
|
||||
SaxUserSport.Params prmUserSport = new SaxUserSport.Params();
|
||||
prmUserSport.UserAccountIdsIncluded.Add(SessionData.User.UserAccountId);
|
||||
prmUserSport.SportIdsIncluded.Add(sportId);
|
||||
prmUserSport.StatusCat = SaxUserSport.StatusCat.Any;
|
||||
userSport = AccountMgr.GetUserSport(prmUserSport);
|
||||
if (userSport != null)
|
||||
{
|
||||
SaLogger.Info(fn + " Resurrecting User Sport with status: " + userSport.StatusDesc + ". Id: " + SysId.ToString(userSport.Id));
|
||||
userSport.Status = SaxUserSport.DefaultStatus;
|
||||
}
|
||||
else
|
||||
userSport = AccountMgr.CreateUserSport(SessionData.User.UserAccountId, sportId);
|
||||
}
|
||||
|
||||
// Populate item properties.
|
||||
if (model.ProfileSportParticipationCode != null)
|
||||
userSport.Participation = model.ProfileSportParticipation;
|
||||
if (model.ProfileSportOfficiatingCode != null)
|
||||
userSport.Officiating = model.ProfileSportOfficiating;
|
||||
|
||||
// Store item.
|
||||
if (!SysId.IsValid(userSport.Id))
|
||||
@@ -251,6 +282,9 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
}
|
||||
}
|
||||
|
||||
// Refresh list of profile sports for Activity Index.
|
||||
RefreshSessionProfileSports();
|
||||
|
||||
// Construct response.
|
||||
PopulateProfileSportResponseData(model, userSport, sport, responseData.Sport);
|
||||
responseData.Success = true;
|
||||
|
||||
+6
-6
@@ -46,7 +46,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
private void PopulateOpportunityResponseData(Model_Organisation_Opportunities model, SaxOrganisationOpportunity opportunity, OpportunityData_List data)
|
||||
{
|
||||
data.Id = SysId.ToString(opportunity.Id);
|
||||
data.TypeCode = OpportunityTypes.GetCodeForType(opportunity.OpportunityType);
|
||||
data.TypeCode = OpportunityTypeCodes.GetCodeForType(opportunity.OpportunityType);
|
||||
data.TypeDesc = Localiser.GetOpportunityTypeCaption(opportunity.OpportunityType);
|
||||
data.Position = opportunity.Position;
|
||||
data.Outline = opportunity.Outline;
|
||||
@@ -113,7 +113,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
SessionData_Online.Filter.SetMemberOrganisation(organisation);
|
||||
|
||||
// Reference data - opportunity types.
|
||||
foreach (TypeCodeDesc opportunityType in OpportunityTypes)
|
||||
foreach (TypeCodeDesc opportunityType in OpportunityTypeCodes)
|
||||
responseData.OpportunityTypes.Add(opportunityType.Code, Localiser.GetOpportunityTypeCaption((Sax.OpportunityType)opportunityType.Type));
|
||||
|
||||
// User organisation.
|
||||
@@ -172,11 +172,11 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
{
|
||||
Id = values.GetString(colId.DataName),
|
||||
TypeCode = values.GetString(colOpportunityTypeCode.DataName),
|
||||
TypeDesc = Localiser.GetOpportunityTypeCaption((Sax.OpportunityType)OpportunityTypes.GetTypeForCode(values.GetString(colOpportunityTypeCode.DataName))),
|
||||
TypeDesc = Localiser.GetOpportunityTypeCaption((Sax.OpportunityType)OpportunityTypeCodes.GetTypeForCode(values.GetString(colOpportunityTypeCode.DataName))),
|
||||
Position = values.GetString(colPosition.DataName),
|
||||
Outline = values.GetString(colOutline.DataName),
|
||||
RegionCaption = model.GetRegionCaption(values.GetString(colRegionName.DataName).ToSysId()),
|
||||
SportCaption = model.GetSportCaption(values.GetString(colSportName.DataName).ToSysId()),
|
||||
RegionCaption = model.GetRegionCaption(values.GetString(colRegionId.DataName).ToSysId()),
|
||||
SportCaption = model.GetSportCaption(values.GetString(colSportId.DataName).ToSysId()),
|
||||
CreatedOnFmt = DateUtil.Format(values.GetDateTime(colCreatedOn.DataName), "d-MMM-yyyy"),
|
||||
PublishedOnFmt = DateUtil.Format(values.GetDateTime(colPublishedOn.DataName), "d-MMM-yyyy"),
|
||||
ExpiresOnFmt = DateUtil.Format(values.GetDateTime(colExpiresOn.DataName), "d-MMM-yyyy"),
|
||||
@@ -326,7 +326,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
if (model.OpportunitySportId != null)
|
||||
opportunity.SportIdPrimary = model.OpportunitySportId.ToSysId();
|
||||
if (model.OpportunityTypeCode != null)
|
||||
opportunity.OpportunityType = (Sax.OpportunityType)OpportunityTypes.GetTypeForCode(model.OpportunityTypeCode);
|
||||
opportunity.OpportunityType = (Sax.OpportunityType)OpportunityTypeCodes.GetTypeForCode(model.OpportunityTypeCode);
|
||||
if (model.OpportunityPosition != null)
|
||||
opportunity.Position = model.OpportunityPosition;
|
||||
if (model.OpportunityOutline != null)
|
||||
|
||||
@@ -96,6 +96,22 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Populate the user's profile contact details to the session.</summary>
|
||||
protected bool RefreshSessionProfileContact(SaxUserAccount userAccount)
|
||||
{
|
||||
String fn = GetType().Name + ".RefreshSessionProfileContact";
|
||||
SaxSessionData_Online sessionData = SessionData_Online;
|
||||
SysId userAccountId = sessionData?.User.UserAccountId ?? null;
|
||||
if (!SysId.IsValid(userAccountId)) return false;
|
||||
if (!SysId.IsValid(userAccount?.Id ?? null)) return false;
|
||||
if (!userAccountId.Equals(userAccount.Id)) return false;
|
||||
|
||||
sessionData.RefreshUser(userAccount);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Populate the user's profile sports to the session.</summary>
|
||||
protected bool RefreshSessionProfileSports()
|
||||
@@ -109,18 +125,22 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
// Read discrete values to avoid loading the entire UserSport records which can be substantial.
|
||||
ColumnDfn colSportId = AccountMgr.GetUserSportColumnDfn(SaxUserSport.Column.SportId);
|
||||
ColumnDfn colSportName = AccountMgr.GetUserSportColumnDfn(SaxUserSport.Column.Sport_Name);
|
||||
ColumnDfn colParticipation = AccountMgr.GetUserSportColumnDfn(SaxUserSport.Column.SportParticipation);
|
||||
ColumnDfn colOfficiating = AccountMgr.GetUserSportColumnDfn(SaxUserSport.Column.SportOfficiating);
|
||||
ColumnDfn colStatus = AccountMgr.GetUserSportColumnDfn(SaxUserSport.Column.Status);
|
||||
|
||||
SaxUserSport.Params prmUserSport = new SaxUserSport.Params();
|
||||
prmUserSport.UserAccountIdsIncluded.Add(userAccountId);
|
||||
prmUserSport.StatusCat = SaxUserSport.StatusCat.ActiveOnly;
|
||||
using (DbResultSet resultSet = AccountMgr.ExecuteUserSportQuery(new List<ColumnDfn>() { colSportId, colSportName, colStatus }, prmUserSport))
|
||||
using (DbResultSet resultSet = AccountMgr.ExecuteUserSportQuery(new List<ColumnDfn>() { colSportId, colSportName, colParticipation, colOfficiating, colStatus }, prmUserSport))
|
||||
{
|
||||
while (resultSet != null && resultSet.NextRecord())
|
||||
{
|
||||
NamedValue.Map values = resultSet.GetRecordValues();
|
||||
SysId sportId = new SysId(values.GetLong(colSportId.DataName));
|
||||
String sportName = values.GetString(colSportName.DataName);
|
||||
Sax.SportParticipation participation = (Sax.SportParticipation)values.GetLong(colParticipation.DataName);
|
||||
Sax.SportOfficiating officiating = (Sax.SportOfficiating)values.GetLong(colOfficiating.DataName);
|
||||
SaStatus status = SacsSystem.GetStatusForCode(values.GetString(colStatus.DataName));
|
||||
sessionData.Profile.AddSport(sportId, status);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
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.Core.Web.Base.Models;
|
||||
using Saxonite.Net.Standard.Base.App;
|
||||
using Saxonite.Net.Standard.Base.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -41,6 +43,18 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
||||
public String UserSportId { get; set; }
|
||||
public String ProfileSportId { get; set; }
|
||||
public String ProfileSportExists { get; set; }
|
||||
public String ProfileSportParticipationCode { get; set; }
|
||||
public Sax.SportParticipation ProfileSportParticipation
|
||||
{
|
||||
get { return (Sax.SportParticipation)SportParticipationCodes.GetTypeForCode(ProfileSportParticipationCode); }
|
||||
set { ProfileSportParticipationCode = SportParticipationCodes.GetCodeForType(value); }
|
||||
}
|
||||
public String ProfileSportOfficiatingCode { get; set; }
|
||||
public Sax.SportOfficiating ProfileSportOfficiating
|
||||
{
|
||||
get { return (Sax.SportOfficiating)SportOfficiatingCodes.GetTypeForCode(ProfileSportOfficiatingCode); }
|
||||
set { ProfileSportOfficiatingCode = SportOfficiatingCodes.GetCodeForType(value); }
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public bool ValidateContactDetails(SaxController_Base.AjaxResponse_Data responseData)
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
</div>
|
||||
<div class="sax-content">
|
||||
<div class="row">
|
||||
<div class="col-sm-6"><div class=""></div></div>
|
||||
<div class="col-sm-6"><div class=""></div></div>
|
||||
<div class="col-sm-6 sax-note">@Localiser["label.participation"]: <span class="SportParticipation"></span></div>
|
||||
<div class="col-sm-6 sax-note">@Localiser["label.officiating"]: <span class="SportOfficiating"></span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -43,28 +43,50 @@
|
||||
@Html.HiddenFor(model => model.UserSportId, new { @id = "", @class = "UserSportId" })
|
||||
}
|
||||
|
||||
<div id="dlgProfileSport" class="sax-dialog">
|
||||
<div id="dlgProfileSport" class="sax-dialog">
|
||||
|
||||
@using (Html.BeginForm(FormMethod.Post, new { @id = "frmProfileSport", @class = "sax-form", @onSubmit = "return false;" }))
|
||||
{
|
||||
<input type="hidden" class="UserSportId" name="UserSportId" />
|
||||
<input type="hidden" class="ProfileSportExists" name="ProfileSportExists" />
|
||||
@using (Html.BeginForm(FormMethod.Post, new { @id = "frmProfileSport", @class = "sax-form", @onSubmit = "return false;" }))
|
||||
{
|
||||
<input type="hidden" class="UserSportId" name="UserSportId" />
|
||||
<input type="hidden" class="ProfileSportExists" name="ProfileSportExists" />
|
||||
|
||||
@* Sport *@
|
||||
<div class="sax-form-control ProfileSportId">
|
||||
<div class="sax-label">
|
||||
<label for="ifProfileSport"><span><span class="required">*</span> @Localiser["label.sport"]</span></label>
|
||||
</div>
|
||||
<div class="sax-control row">
|
||||
<input type="hidden" id="ifProfileSportId" class="ProfileSportId" name="ProfileSportId" />
|
||||
<div class="col"><input type="text" id="ifProfileSport" class="ProfileSport sax-input" name="ProfileSport" readonly="readonly" maxlength=128 /></div>
|
||||
<div class="fixed"><button id="pbSelectSport" class="sax-button" style="min-width:auto;margin-left:4px;padding:4px 6px" onclick="sax.selectUserSport()">@Localiser["label.select"]</button></div>
|
||||
</div>
|
||||
<div class="sax-message"></div>
|
||||
@* Sport *@
|
||||
<div class="sax-form-control ProfileSportId">
|
||||
<div class="sax-label">
|
||||
<label for="ifProfileSport"><span><span class="required">*</span> @Localiser["label.sport"]</span></label>
|
||||
</div>
|
||||
<div class="sax-control row">
|
||||
<input type="hidden" id="ifProfileSportId" class="ProfileSportId" name="ProfileSportId" />
|
||||
<div class="col"><input type="text" id="ifProfileSport" class="ProfileSport sax-input" name="ProfileSport" readonly="readonly" maxlength=128 /></div>
|
||||
<div class="fixed"><button id="pbSelectSport" class="sax-button" style="min-width:auto;margin-left:4px;padding:4px 6px" onclick="sax.selectUserSport()">@Localiser["label.select"]</button></div>
|
||||
</div>
|
||||
<div class="sax-message"></div>
|
||||
</div>
|
||||
|
||||
}
|
||||
@* Sport Participation *@
|
||||
<div class="sax-form-control ProfileSportParticipation">
|
||||
<div class="sax-label">
|
||||
<label for="cbProfileSportParticipation"><span><span class="required">*</span> @Localiser["label.participation"]</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
@Html.DropDownListFor(model => model.ProfileSportParticipationCode, Model.SportParticipationCodesForSelect, "", new { @id = "cbProfileSportParticipation", @class = "ProfileSportParticipation sax-select" })
|
||||
</div>
|
||||
<div class="sax-message"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@* Sport Officiating *@
|
||||
<div class="sax-form-control ProfileSportOfficiating">
|
||||
<div class="sax-label">
|
||||
<label for="cbProfileSportOfficiating"><span><span class="required">*</span> @Localiser["label.officiating"]</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
@Html.DropDownListFor(model => model.ProfileSportOfficiatingCode, Model.SportOfficiatingCodesForSelect, "", new { @id = "cbProfileSportOfficiating", @class = "ProfileSportOfficiating sax-select" })
|
||||
</div>
|
||||
<div class="sax-message"></div>
|
||||
</div>
|
||||
|
||||
}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -41,13 +41,13 @@
|
||||
<div class="sax-content">
|
||||
<div class="row">
|
||||
<div class="col-sm-12"><div class="ArticleSummary"></div></div>
|
||||
<div class="col-6"><div class="ArticleSportCaption"></div></div>
|
||||
<div class="col-6 right"><div class="ArticleRegionCaption"></div></div>
|
||||
<div class="col-6"><div class="ArticleSportCaption sax-note"></div></div>
|
||||
<div class="col-6 right"><div class="ArticleRegionCaption sax-note"></div></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4"><div class="">@Localiser["label.created"]: <span class="ArticleCreatedOn"></span></div></div>
|
||||
<div class="col-sm-4"><div class="ArticlePublished">@Localiser["label.published"]: <span class="ArticlePublishedOn"></span></div></div>
|
||||
<div class="col-sm-4 right"><div class="ArticleStatusDesc"></div></div>
|
||||
<div class="col-sm-4"><div class="sax-note">@Localiser["label.created"]: <span class="ArticleCreatedOn"></span></div></div>
|
||||
<div class="col-sm-4"><div class="ArticlePublished sax-note">@Localiser["label.published"]: <span class="ArticlePublishedOn"></span></div></div>
|
||||
<div class="col-sm-4 right"><div class="ArticleStatusDesc sax-note"></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -49,13 +49,13 @@
|
||||
<div class="sax-content">
|
||||
<div class="row">
|
||||
<div class="col-sm-12"><div class="OpportunityOutline"></div></div>
|
||||
<div class="col-sm-6"><div class="OpportunityRegionCaption"></div></div>
|
||||
<div class="col-sm-6 right"><div class="OpportunitySportCaption"></div></div>
|
||||
<div class="col-sm-6"><div class="OpportunityRegionCaption sax-note"></div></div>
|
||||
<div class="col-sm-6 right"><div class="OpportunitySportCaption sax-note"></div></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4"><div class="">@Localiser["label.created"]: <span class="OpportunityCreatedOn"></span></div></div>
|
||||
<div class="col-sm-4"><div class="OpportunityPublished">@Localiser["label.published"]: <span class="OpportunityPublishedOn"></span></div></div>
|
||||
<div class="col-sm-4 right"><div class="OpportunityStatusDesc"></div></div>
|
||||
<div class="col-sm-4"><div class="sax-note">@Localiser["label.created"]: <span class="OpportunityCreatedOn"></span></div></div>
|
||||
<div class="col-sm-4"><div class="OpportunityPublished sax-note">@Localiser["label.published"]: <span class="OpportunityPublishedOn"></span></div></div>
|
||||
<div class="col-sm-4 right"><div class="OpportunityStatusDesc sax-note"></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
(function (win, doc, undef)
|
||||
{
|
||||
"use strict";
|
||||
sax.profile = { contact: {}, sports: {}, organisations: {} };
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.refreshProfile = function ()
|
||||
@@ -37,7 +38,7 @@
|
||||
}
|
||||
sax.onRefreshProfileContactInfo = function (response)
|
||||
{
|
||||
sax.debug('onRefreshProfileContactInfo', response);
|
||||
//sax.debug('onRefreshProfileContactInfo', response);
|
||||
if (!response || !response.success || !response.contact) return;
|
||||
var $section = $('.sax-panel-section.ProfileContact');
|
||||
$('.sax-message', $section).stop(true, false).fadeOut(200).empty();
|
||||
@@ -50,7 +51,7 @@
|
||||
}
|
||||
sax.onRefreshProfileContactForm = function (response)
|
||||
{
|
||||
sax.debug('onRefreshProfileContactForm', response);
|
||||
//sax.debug('onRefreshProfileContactForm', response);
|
||||
if (!response || !response.success) return;
|
||||
var $section = $('.sax-panel-section.ProfileContact');
|
||||
$('.sax-message', $section).stop(true, false).fadeOut(200).empty();
|
||||
@@ -85,7 +86,7 @@
|
||||
}
|
||||
sax.onSelectRegionCountry = function (region)
|
||||
{
|
||||
sax.debug(region);
|
||||
//sax.debug(region);
|
||||
sax.clearControlError($('#ifAccountRegionIdCountry').val(region.id));
|
||||
$('#ifAccountRegionCaptionCountry').val(region ? region.name : '');
|
||||
}
|
||||
@@ -101,7 +102,7 @@
|
||||
}
|
||||
sax.refreshProfileSports = function (callbackFn)
|
||||
{
|
||||
//sax.debug('refreshProfileSports');
|
||||
sax.debug('refreshProfileSports');
|
||||
delete sax.page.profileSportsChanged;
|
||||
sax.ajaxProfileSports = sax.ajaxProfileSports || { url: sax.url.base + 'Account/Ajax/GetProfileSports', formId: 'frmNavigate', noWaitIcon: true };
|
||||
sax.ajaxProfileSports.callbackFn = callbackFn;
|
||||
@@ -109,11 +110,11 @@
|
||||
}
|
||||
sax.onRefreshProfileSportsInfo = function (response)
|
||||
{
|
||||
sax.debug('onRefreshProfileSportsInfo', response);
|
||||
//sax.debug('onRefreshProfileSportsInfo', response);
|
||||
if (!response || !response.success) return;
|
||||
var $section = $('.sax-panel-section.ProfileSports');
|
||||
$('.sax-message', $section).stop(true, false).fadeOut(200).empty();
|
||||
|
||||
sax.profile.sports.Ids = [];
|
||||
let items = response.sports;
|
||||
if (!items) return;
|
||||
let $items = $('.sax-panel-results.ProfileSports', $section).empty();
|
||||
@@ -121,9 +122,11 @@
|
||||
for (let itemIdx = 0; itemIdx < items.length; itemIdx++)
|
||||
{
|
||||
let item = items[itemIdx];
|
||||
sax.profile.sports.Ids.push(item.sportId);
|
||||
let $item = $tmpl.clone().prop('id', 'ProSpt_' + item.id);
|
||||
$('.sax-header .sax-action.sax-edit', $item).on('click', function (evt) { sax.updateProfileSport(item.id); });
|
||||
$('.SportName', $item).text(item.sportName);
|
||||
$('.SportParticipation', $item).text(item.sportParticipation);
|
||||
$items.append($item);
|
||||
}
|
||||
$items.show();
|
||||
@@ -132,37 +135,40 @@
|
||||
}
|
||||
sax.addProfileSport = function ()
|
||||
{
|
||||
sax.debug('addProfileSport');
|
||||
//sax.debug('addProfileSport');
|
||||
let $dlg = sax.$dlg.profileSport;
|
||||
$('.UserSportId,.ProfileSportExists,#ifProfileSportId,#ifProfileSport', $dlg).val('');
|
||||
$('.UserSportId,.ProfileSportExists,#ifProfileSportId,input.sax-input,select.sax-select', $dlg).val('');
|
||||
$('#pbSelectSport', $dlg).show();
|
||||
$dlg.dialog('option', 'title', sax.dlg.title.addUserSport);
|
||||
sax.openDialog($dlg, 480, 400);
|
||||
}
|
||||
sax.updateProfileSport = function (id)
|
||||
{
|
||||
sax.debug('updateProfileSport', id);
|
||||
//sax.debug('updateProfileSport', id);
|
||||
$('#frmProfileSportId .UserSportId').val(id);
|
||||
sax.ajaxProfileSport = sax.ajaxProfileSport || { url: sax.url.base + 'Account/Ajax/GetProfileSport', formId: 'frmProfileSportId', callbackFn: sax.doUpdateProfileSport };
|
||||
sax.doAjaxRequest(sax.ajaxProfileSport, 50);
|
||||
}
|
||||
sax.doUpdateProfileSport = function (response)
|
||||
{
|
||||
sax.debug('doUpdateProfileSport', response);
|
||||
//sax.debug('doUpdateProfileSport', response);
|
||||
let $dlg = sax.$dlg.profileSport;
|
||||
let item = response.sport;
|
||||
$('.UserSportId', $dlg).val(item.id);
|
||||
$('.ProfileSportExists', $dlg).val(1);
|
||||
$('#ifProfileSportId', $dlg).val(item.sportId);
|
||||
$('#ifProfileSport', $dlg).val(item.sportName);
|
||||
$('#cbProfileSportParticipation', $dlg).val(item.sportParticipationCode);
|
||||
$('#cbProfileSportOfficiating', $dlg).val(item.sportOfficiatingCode);
|
||||
$('#pbSelectSport', $dlg).hide();
|
||||
$dlg.dialog('option', 'title', sax.dlg.title.updateUserSport);
|
||||
sax.openDialog($dlg, 480, 400);
|
||||
}
|
||||
sax.selectUserSport = function (sport)
|
||||
{
|
||||
sax.debug('selectUserSport');
|
||||
sax.data.selectSport.fn.selectSport({ caption: sax.dlg.title.selectSport, sportId: $('#frmProfileSport #ifProfileSportId').val(), fnCallback: sax.onSelectUserSport })
|
||||
//sax.debug('selectUserSport');
|
||||
let excludeIds = $.grep(sax.profile.sports.Ids, function (value) { return !sport || value != sport.id; });
|
||||
sax.data.selectSport.fn.selectSport({ caption: sax.dlg.title.selectSport, sportId: $('#frmProfileSport #ifProfileSportId').val(), excludeIds: excludeIds, fnCallback: sax.onSelectUserSport })
|
||||
}
|
||||
sax.onSelectUserSport = function (sport)
|
||||
{
|
||||
@@ -171,7 +177,7 @@
|
||||
}
|
||||
sax.storeProfileSport = function ()
|
||||
{
|
||||
sax.debug('storeProfileSport');
|
||||
//sax.debug('storeProfileSport');
|
||||
sax.clearControlErrors();
|
||||
sax.ajaxStoreProfileSport = sax.ajaxStoreProfileSport || { url: sax.url.base + 'Account/Ajax/StoreProfileSport', formId: 'frmProfileSport', callbackFn: sax.onStoreProfileSport };
|
||||
sax.doAjaxRequest(sax.ajaxStoreProfileSport, 50);
|
||||
@@ -179,8 +185,7 @@
|
||||
sax.onStoreProfileSport = function (response)
|
||||
{
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response || !response.success)
|
||||
return;
|
||||
if (!response || !response.success) return;
|
||||
sax.$dlg.profileSport.dialog('close');
|
||||
sax.refreshProfileSportsInfo();
|
||||
}
|
||||
@@ -204,7 +209,7 @@
|
||||
}
|
||||
sax.onRefreshProfileOrganisationsInfo = function (response)
|
||||
{
|
||||
sax.debug('onRefreshProfileOrganisationsInfo', response);
|
||||
//sax.debug('onRefreshProfileOrganisationsInfo', response);
|
||||
if (!response || !response.success) return;
|
||||
var $section = $('.sax-panel-section.ProfileOrganisations');
|
||||
$('.sax-message', $section).stop(true, false).fadeOut(200).empty();
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
//--------------------------------------------------------------
|
||||
sax.refreshResults = function (delay)
|
||||
{
|
||||
if (sax.awaitingLogin) return;
|
||||
var $results = $('.sax-panel-results');
|
||||
if (!sax.awaitingRefreshResponse)
|
||||
{
|
||||
@@ -21,7 +22,7 @@
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
{
|
||||
sax.debug('doRefreshResults', response);
|
||||
//sax.debug('doRefreshResults', response);
|
||||
delete sax.awaitingRefreshResponse;
|
||||
var $results = $('.sax-panel-results');
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty();
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
{
|
||||
sax.debug('doRefreshResults', response);
|
||||
//sax.debug('doRefreshResults', response);
|
||||
delete sax.awaitingRefreshResponse;
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
var $results = $('.sax-panel-results');
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
{
|
||||
sax.debug('doRefreshResults', response);
|
||||
//sax.debug('doRefreshResults', response);
|
||||
delete sax.awaitingRefreshResponse;
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
var $panel = $('#pnlOpportunities');
|
||||
@@ -83,7 +83,7 @@
|
||||
{
|
||||
let handleMemberOrganisationsResponse = function (response)
|
||||
{
|
||||
sax.debug('handleUserOrgsResponse', response);
|
||||
//sax.debug('handleUserOrgsResponse', response);
|
||||
if (!response.success) return;
|
||||
sax.data.memberOrganisations = response.organisations;
|
||||
if (fnCallback) fnCallback();
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
}
|
||||
sax.onSignin = function (response)
|
||||
{
|
||||
sax.debug(response);
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response.success) return;
|
||||
sax.goToPage('');
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
/*
|
||||
* Sport selection config:
|
||||
* - caption - dialog title.
|
||||
* - sportId - currently selected sport.
|
||||
* - sportId - currently selected sport.
|
||||
* - excludeIds - array of sports Ids to ignore.
|
||||
* - fnCallback - method to call on completion to store selected sport.
|
||||
*/
|
||||
ss.fn.selectSport = function (cfg)
|
||||
@@ -61,6 +62,7 @@
|
||||
for (let rgnIdx = 0; rgnIdx < sports.length; rgnIdx++)
|
||||
{
|
||||
let sport = sports[rgnIdx];
|
||||
if (ss.cfg.excludeIds && ss.cfg.excludeIds.includes(sport.id)) continue;
|
||||
let id = sport.id;
|
||||
if (filter && !sport.name.match(reFilter)) continue;
|
||||
let $sport = $sportTmpl.clone();
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
public static class Version
|
||||
{
|
||||
private static String version { get; } = "1.0.5.3";
|
||||
private static String version { get; } = "1.0.6.0";
|
||||
// Retrieve version.
|
||||
public static String GetFullVersion () { return version; }
|
||||
public static String GetAppVersion ()
|
||||
@@ -39,6 +39,9 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Version history.
|
||||
//-------------------------------------------------------------------
|
||||
// 1.0.6 ?-Jun-2021 ???
|
||||
// - ?.
|
||||
// 1.0.5 31-May-2021 Activity Index
|
||||
// - Admin Database Schema (Home) and Tables page.
|
||||
// - Online Account country, Home activities.
|
||||
|
||||
@@ -88,6 +88,8 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
public enum CodeType
|
||||
{
|
||||
YesNo,
|
||||
SportParticipation,
|
||||
SportOfficiating,
|
||||
RegionType,
|
||||
UserRole,
|
||||
Title,
|
||||
@@ -170,10 +172,23 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
{
|
||||
Unknown = 0,
|
||||
/* Do not change the values/codes - tied to database. */
|
||||
Regular,
|
||||
Occasional,
|
||||
Spectator,
|
||||
Interested
|
||||
Professional = 100,
|
||||
Regular = 200,
|
||||
Occasional = 300,
|
||||
Spectator = 400,
|
||||
Interested = 900,
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
/// <summary>Sport Officiating</summary>
|
||||
public enum SportOfficiating
|
||||
{
|
||||
Unknown = 0,
|
||||
/* Do not change the values/codes - tied to database. */
|
||||
Professional = 100,
|
||||
Regular = 200,
|
||||
Occasional = 300,
|
||||
Interested = 900,
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Tue 25-May-2021 19:36:10
|
||||
// Code generated by Sarand Database Utilities Wed 2-Jun-2021 15:39:57
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Base.App
|
||||
{
|
||||
@@ -201,6 +201,8 @@ namespace Saxonite.Base.App
|
||||
UserSport_Id,
|
||||
UserSport_UserAccountId,
|
||||
UserSport_SportId,
|
||||
UserSport_Participation,
|
||||
UserSport_Officiating,
|
||||
UserSport_UserSportData,
|
||||
UserSport_Notes,
|
||||
UserSport_Flags,
|
||||
@@ -216,7 +218,7 @@ namespace Saxonite.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private static readonly int tableCount = 11;
|
||||
private static readonly int columnCount = 176;
|
||||
private static readonly int columnCount = 178;
|
||||
private static ulong maxTextLen = 0;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -565,6 +567,8 @@ namespace Saxonite.Base.App
|
||||
new ColumnDfn(11,"Id",4,4,true,10),
|
||||
new ColumnDfn(11,"UserAccountId",4,4,false,10),
|
||||
new ColumnDfn(11,"SportId",4,4,false,10),
|
||||
new ColumnDfn(11,"Participation",3,5,false,5),
|
||||
new ColumnDfn(11,"Officiating",3,5,false,5),
|
||||
new ColumnDfn(11,"UserSportData",0,-9,false,0),
|
||||
new ColumnDfn(11,"Notes",0,-9,false,2000),
|
||||
new ColumnDfn(11,"Flags",3,5,false,5),
|
||||
|
||||
@@ -87,13 +87,15 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
// System codes.
|
||||
private readonly Dictionary<Sax.CodeType, List<TypeCodeDesc>> codeTypes = new Dictionary<Sax.CodeType, List<TypeCodeDesc>>();
|
||||
public List<TypeCodeDesc> RegionTypes { get { return GetCodesOfType(Sax.CodeType.RegionType); } }
|
||||
public List<TypeCodeDesc> UserRoles { get { return GetCodesOfType(Sax.CodeType.UserRole); } }
|
||||
public List<TypeCodeDesc> OrganisationTypes { get { return GetCodesOfType(Sax.CodeType.OrganisationType); } }
|
||||
public List<TypeCodeDesc> OrganisationCategories { get { return GetCodesOfType(Sax.CodeType.OrganisationCategory); } }
|
||||
public List<TypeCodeDesc> OrganisationRoles { get { return GetCodesOfType(Sax.CodeType.OrganisationRole); } }
|
||||
public List<TypeCodeDesc> OpportunityTypes { get { return GetCodesOfType(Sax.CodeType.OpportunityType); } }
|
||||
public List<TypeCodeDesc> DataItemTypes { get { return GetCodesOfType(Sax.CodeType.DataItemType); } }
|
||||
public List<TypeCodeDesc> SportParticipationCodes { get { return GetCodesOfType(Sax.CodeType.SportParticipation); } }
|
||||
public List<TypeCodeDesc> SportOfficiatingCodes { get { return GetCodesOfType(Sax.CodeType.SportOfficiating); } }
|
||||
public List<TypeCodeDesc> RegionTypeCodes { get { return GetCodesOfType(Sax.CodeType.RegionType); } }
|
||||
public List<TypeCodeDesc> UserRoleCodes { get { return GetCodesOfType(Sax.CodeType.UserRole); } }
|
||||
public List<TypeCodeDesc> OrganisationTypeCodes { get { return GetCodesOfType(Sax.CodeType.OrganisationType); } }
|
||||
public List<TypeCodeDesc> OrganisationCategoryCodes { get { return GetCodesOfType(Sax.CodeType.OrganisationCategory); } }
|
||||
public List<TypeCodeDesc> OrganisationRoleCodes { get { return GetCodesOfType(Sax.CodeType.OrganisationRole); } }
|
||||
public List<TypeCodeDesc> OpportunityTypeCodes { get { return GetCodesOfType(Sax.CodeType.OpportunityType); } }
|
||||
public List<TypeCodeDesc> DataItemTypeCodes { get { return GetCodesOfType(Sax.CodeType.DataItemType); } }
|
||||
public List<TypeCodeDesc> GetCodesOfType(Sax.CodeType codeType)
|
||||
{
|
||||
if (!codeTypes.ContainsKey(codeType))
|
||||
|
||||
@@ -14,7 +14,7 @@ using Newtonsoft.Json.Converters;
|
||||
namespace Saxonite.Net.Standard.Base.App
|
||||
{
|
||||
//=======================================================================
|
||||
public class SaxSessionData
|
||||
public abstract class SaxSessionData
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Protected construction.
|
||||
@@ -28,7 +28,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
private SaxSessionData(SaxSessionContext sessionContext)
|
||||
{
|
||||
SessionContext = sessionContext;
|
||||
User = new UserData(SessionContext, null, null);
|
||||
userData = CreateUserData(SessionContext, null, null);
|
||||
}
|
||||
/// <summary>
|
||||
/// Primary constructor - on user login.
|
||||
@@ -38,7 +38,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
protected SaxSessionData(SaxSessionContext sessionContext, SaxUserAccount userAccount, List<SaxUserRole> userRoles)
|
||||
{
|
||||
SessionContext = sessionContext;
|
||||
User = new UserData(SessionContext, userAccount, userRoles);
|
||||
userData = CreateUserData(SessionContext, userAccount, userRoles);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -60,17 +60,12 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
public class UserData
|
||||
{
|
||||
protected UserData() { }
|
||||
public UserData(SaxSessionContext sessionContext, SaxUserAccount userAccount, List<SaxUserRole> userRoles)
|
||||
protected UserData(SaxSessionContext sessionContext, SaxUserAccount userAccount, List<SaxUserRole> userRoles)
|
||||
{
|
||||
if (userAccount != null)
|
||||
{
|
||||
UserAccountId = userAccount.Id;
|
||||
FirstName = userAccount.FirstName;
|
||||
LastName = userAccount.LastName;
|
||||
DisplayName = userAccount.GetDisplayName();
|
||||
EmailAddress = userAccount.EmailAddress;
|
||||
RegionIdCountry = userAccount.RegionIdCountry;
|
||||
RegionIdProvince = userAccount.RegionIdProvince;
|
||||
RefreshUserData(userAccount);
|
||||
if (sessionContext.Application == Sax.Application.Admin)
|
||||
KeepLoggedIn = userAccount.KeepLoggedIn_Admin;
|
||||
else if (sessionContext.Application == Sax.Application.Online)
|
||||
@@ -84,7 +79,22 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
}
|
||||
}
|
||||
}
|
||||
protected UserData(UserData userData)
|
||||
{
|
||||
UserAccountId = userData.UserAccountId;
|
||||
Title = userData.Title;
|
||||
FirstName = userData.FirstName;
|
||||
LastName = userData.LastName;
|
||||
DisplayName = userData.DisplayName;
|
||||
EmailAddress = userData.EmailAddress;
|
||||
RegionIdCountry = userData.RegionIdCountry;
|
||||
RegionIdProvince = userData.RegionIdProvince;
|
||||
KeepLoggedIn = userData.KeepLoggedIn;
|
||||
roles.AddRange(userData.Roles);
|
||||
}
|
||||
// Properties.
|
||||
public SysId UserAccountId { get; protected set; }
|
||||
public String Title { get; protected set; }
|
||||
public String FirstName { get; protected set; }
|
||||
public String LastName { get; protected set; }
|
||||
public String DisplayName { get; protected set; }
|
||||
@@ -93,6 +103,21 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
public SysId RegionIdProvince { get; protected set; }
|
||||
public bool KeepLoggedIn { get; protected set; }
|
||||
public bool UserAccountSupplied { get; protected set; }
|
||||
// Refresh properties.
|
||||
protected bool RefreshUserData(SaxUserAccount userAccount)
|
||||
{
|
||||
// Check that user matches the session.
|
||||
if (!SysId.IsValid(UserAccountId) || !SysId.IsValid(userAccount?.Id ?? null) || !UserAccountId.Equals(userAccount.Id)) return false;
|
||||
// Refresh properties.
|
||||
Title = userAccount.Title;
|
||||
FirstName = userAccount.FirstName;
|
||||
LastName = userAccount.LastName;
|
||||
DisplayName = userAccount.GetDisplayName();
|
||||
EmailAddress = userAccount.EmailAddress;
|
||||
RegionIdCountry = userAccount.RegionIdCountry;
|
||||
RegionIdProvince = userAccount.RegionIdProvince;
|
||||
return true;
|
||||
}
|
||||
// Roles.
|
||||
public class RoleData
|
||||
{
|
||||
@@ -107,19 +132,20 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
public Sax.UserRole Role { get; protected set; }
|
||||
public SaStatus Status { get; protected set; }
|
||||
}
|
||||
[JsonIgnore]
|
||||
private readonly List<RoleData> roles = new List<RoleData>();
|
||||
public List<RoleData> Roles { get { return new List<RoleData>(roles); } protected set { roles.Clear(); roles.AddRange(value); } }
|
||||
[JsonIgnore]
|
||||
public bool IsJournalist { get { return roles?.Exists(item => item.Role == Sax.UserRole.Journalist) ?? false; } }
|
||||
}
|
||||
public UserData User { get; private set; }
|
||||
protected abstract UserData CreateUserData(SaxSessionContext sessionContext, SaxUserAccount userAccount, List<SaxUserRole> userRoles);
|
||||
private UserData userData;
|
||||
public UserData User { get { return userData; } }
|
||||
/// <summary>User - JSON deserialisation route.</summary>
|
||||
protected void SetUser(UserData user)
|
||||
{
|
||||
if (User != null && User.UserAccountSupplied)
|
||||
if (this.userData != null && User.UserAccountSupplied)
|
||||
throw new NotSupportedException("Session User cannot be replaced.");
|
||||
User = user;
|
||||
this.userData = user;
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -14,8 +14,10 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
// Code types.
|
||||
private static readonly List<TypeCodeDesc> regionTypeCodes = new List<TypeCodeDesc>();
|
||||
private static readonly List<TypeCodeDesc> yesNoCodes = new List<TypeCodeDesc>();
|
||||
private static readonly List<TypeCodeDesc> sportParticipationCodes = new List<TypeCodeDesc>();
|
||||
private static readonly List<TypeCodeDesc> sportOfficiatingCodes = new List<TypeCodeDesc>();
|
||||
private static readonly List<TypeCodeDesc> regionTypeCodes = new List<TypeCodeDesc>();
|
||||
private static readonly List<TypeCodeDesc> userRoleCodes = new List<TypeCodeDesc>();
|
||||
private static readonly List<TypeCodeDesc> titleCodes = new List<TypeCodeDesc>();
|
||||
private static readonly List<TypeCodeDesc> organisationTypeCodes = new List<TypeCodeDesc>();
|
||||
@@ -33,6 +35,20 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
yesNoCodes.Add(Sax.YesNo.Yes, "YES", "Yes");
|
||||
yesNoCodes.Add(Sax.YesNo.No, "NO", "No");
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Sport participation.
|
||||
sportParticipationCodes.Add(Sax.SportParticipation.Professional, "PRO", "Professional");
|
||||
sportParticipationCodes.Add(Sax.SportParticipation.Regular, "REG", "Regular");
|
||||
sportParticipationCodes.Add(Sax.SportParticipation.Occasional, "OCC", "Occasional");
|
||||
sportParticipationCodes.Add(Sax.SportParticipation.Spectator, "SPC", "Spectator");
|
||||
sportParticipationCodes.Add(Sax.SportParticipation.Interested, "INT", "Interested");
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Sport officiating.
|
||||
sportOfficiatingCodes.Add(Sax.SportParticipation.Professional, "PRO", "Professional");
|
||||
sportOfficiatingCodes.Add(Sax.SportParticipation.Regular, "REG", "Regular");
|
||||
sportOfficiatingCodes.Add(Sax.SportParticipation.Occasional, "OCC", "Occasional");
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Region types.
|
||||
regionTypeCodes.Add(Sax.RegionType.Continent, "CONT", "Continent");
|
||||
|
||||
@@ -38,6 +38,10 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
{
|
||||
case Sax.CodeType.YesNo:
|
||||
return new List<TypeCodeDesc>(yesNoCodes);
|
||||
case Sax.CodeType.SportParticipation:
|
||||
return new List<TypeCodeDesc>(sportParticipationCodes);
|
||||
case Sax.CodeType.SportOfficiating:
|
||||
return new List<TypeCodeDesc>(sportOfficiatingCodes);
|
||||
case Sax.CodeType.RegionType:
|
||||
return new List<TypeCodeDesc>(regionTypeCodes);
|
||||
case Sax.CodeType.UserRole:
|
||||
|
||||
@@ -28,6 +28,12 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
// Sport.
|
||||
SportId,
|
||||
Sport_Name,
|
||||
SportParticipation,
|
||||
SportParticipation_Code,
|
||||
SportParticipation_Desc,
|
||||
SportOfficiating,
|
||||
SportOfficiating_Code,
|
||||
SportOfficiating_Desc,
|
||||
// Associated data.
|
||||
// Common.
|
||||
Notes,
|
||||
@@ -45,6 +51,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
{
|
||||
public SysId UserAccountId { get; set; }
|
||||
public SysId SportId { get; set; }
|
||||
public Sax.SportParticipation Participation { get; set; }
|
||||
public Sax.SportOfficiating Officiating { get; set; }
|
||||
public String UserSportData { get; set; }
|
||||
}
|
||||
|
||||
@@ -70,6 +78,16 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.SportId; }
|
||||
set { CheckChanged(data.SportId, value); data.SportId = value; }
|
||||
}
|
||||
public Sax.SportParticipation Participation
|
||||
{
|
||||
get { return data.Participation; }
|
||||
set { CheckChanged((int)data.Participation, (int)value); data.Participation = value; }
|
||||
}
|
||||
public Sax.SportOfficiating Officiating
|
||||
{
|
||||
get { return data.Officiating; }
|
||||
set { CheckChanged((int)data.Officiating, (int)value); data.Officiating = value; }
|
||||
}
|
||||
public String UserSportData
|
||||
{
|
||||
get { return data.UserSportData; }
|
||||
@@ -79,6 +97,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
internal void PopulateFrom(Data data)
|
||||
{
|
||||
UserAccountId = data.UserAccountId;
|
||||
Participation = data.Participation;
|
||||
Officiating = data.Officiating;
|
||||
SportId = data.SportId;
|
||||
UserSportData = data.UserSportData;
|
||||
base.PopulateFrom(data);
|
||||
@@ -97,6 +117,8 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
{
|
||||
// Identifies the field that has invalid data.
|
||||
public ValidValue UserAccountId { get; set; } = ValidValue.Valid;
|
||||
public ValidValue Participation { get; set; } = ValidValue.Valid;
|
||||
public ValidValue Officiating { get; set; } = ValidValue.Valid;
|
||||
public ValidValue SportId { get; set; } = ValidValue.Valid;
|
||||
public ValidValue UserSportData { get; set; } = ValidValue.Valid;
|
||||
}
|
||||
@@ -165,6 +187,16 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.SportId; }
|
||||
protected set { data.SportId = value; }
|
||||
}
|
||||
public Sax.SportParticipation Participation
|
||||
{
|
||||
get { return data.Participation; }
|
||||
set { data.Participation = value; }
|
||||
}
|
||||
public Sax.SportOfficiating Officiating
|
||||
{
|
||||
get { return data.Officiating; }
|
||||
set { data.Officiating = value; }
|
||||
}
|
||||
public String UserSportData
|
||||
{
|
||||
get { return data.UserSportData; }
|
||||
|
||||
@@ -179,7 +179,7 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
case SaxUserRole.Column.UserRole_Desc:
|
||||
{
|
||||
String userRoleCode = values.GetValue(column.DataName).ToString();
|
||||
value = new DataValue(UserRoles.GetDescForCode(userRoleCode));
|
||||
value = new DataValue(UserRoleCodes.GetDescForCode(userRoleCode));
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
@@ -204,6 +204,28 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
DataValue value = new DataValue();
|
||||
switch ((SaxUserSport.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
// Sport Participation.
|
||||
case SaxUserSport.Column.SportParticipation_Code:
|
||||
case SaxUserSport.Column.SportParticipation_Desc:
|
||||
Sax.SportParticipation sportParticipation = (Sax.SportParticipation)values.GetLong(column.DataName);
|
||||
if (column.Id == (int)SaxUserSport.Column.SportParticipation_Code)
|
||||
value = new DataValue(SportParticipationCodes.GetCodeForType(sportParticipation));
|
||||
else
|
||||
value = new DataValue(SportParticipationCodes.GetDescForType(sportParticipation));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Sport Officiating.
|
||||
case SaxUserSport.Column.SportOfficiating_Code:
|
||||
case SaxUserSport.Column.SportOfficiating_Desc:
|
||||
Sax.SportOfficiating sportOfficiating = (Sax.SportOfficiating)values.GetLong(column.DataName);
|
||||
if (column.Id == (int)SaxUserSport.Column.SportOfficiating_Code)
|
||||
value = new DataValue(SportOfficiatingCodes.GetCodeForType(sportOfficiating));
|
||||
else
|
||||
value = new DataValue(SportOfficiatingCodes.GetDescForType(sportOfficiating));
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SaxUserSport.Column.Notes:
|
||||
|
||||
@@ -133,12 +133,12 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
// Data item type.
|
||||
case SaxActivityIndex.Column.ItemType_Code:
|
||||
{
|
||||
value = new DataValue(DataItemTypes.GetCodeForType(values.GetLong(column.DataName)));
|
||||
value = new DataValue(DataItemTypeCodes.GetCodeForType(values.GetLong(column.DataName)));
|
||||
}
|
||||
break;
|
||||
case SaxActivityIndex.Column.ItemType_Desc:
|
||||
{
|
||||
value = new DataValue(DataItemTypes.GetDescForType(values.GetLong(column.DataName)));
|
||||
value = new DataValue(DataItemTypeCodes.GetDescForType(values.GetLong(column.DataName)));
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
@@ -196,7 +196,7 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
case SaxOrganisationOpportunity.Column.OpportunityType_Desc:
|
||||
{
|
||||
String code = values.GetValue(column.DataName).ToString();
|
||||
value = new DataValue(OpportunityTypes.GetDescForCode(code, code));
|
||||
value = new DataValue(OpportunityTypeCodes.GetDescForCode(code, code));
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
@@ -150,12 +150,12 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
// Data item type.
|
||||
case SaxItemSport.Column.ItemType_Code:
|
||||
{
|
||||
value = new DataValue(DataItemTypes.GetCodeForType(values.GetLong(column.DataName)));
|
||||
value = new DataValue(DataItemTypeCodes.GetCodeForType(values.GetLong(column.DataName)));
|
||||
}
|
||||
break;
|
||||
case SaxItemSport.Column.ItemType_Desc:
|
||||
{
|
||||
value = new DataValue(DataItemTypes.GetDescForType(values.GetLong(column.DataName)));
|
||||
value = new DataValue(DataItemTypeCodes.GetDescForType(values.GetLong(column.DataName)));
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
public ISacsDatabase CoreDatabase { get { return Internals.CoreDatabase; } }
|
||||
public IDatabaseInfo CoreDbInfo { get { return Internals.CreateCoreDbInfo(); } }
|
||||
// Business components.
|
||||
protected SaxInternals Internals
|
||||
protected SaxInternals Internals
|
||||
{
|
||||
get
|
||||
{
|
||||
@@ -66,13 +66,15 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
public SaxActivityMgr ActivityMgr { get { return Internals.ActivityMgr; } }
|
||||
public SaxItemDataMgr ItemDataMgr { get { return Internals.ItemDataMgr; } }
|
||||
// Application codes.
|
||||
public List<TypeCodeDesc> RegionTypes { get { return Internals.RegionTypes; } }
|
||||
public List<TypeCodeDesc> UserRoles { get { return Internals.UserRoles; } }
|
||||
public List<TypeCodeDesc> OrganisationTypes { get { return Internals.OrganisationTypes; } }
|
||||
public List<TypeCodeDesc> OrganisationCategories { get { return Internals.OrganisationCategories; } }
|
||||
public List<TypeCodeDesc> OrganisationRoles { get { return Internals.OrganisationRoles; } }
|
||||
public List<TypeCodeDesc> OpportunityTypes { get { return Internals.OpportunityTypes; } }
|
||||
public List<TypeCodeDesc> DataItemTypes { get { return Internals.DataItemTypes; } }
|
||||
public List<TypeCodeDesc> SportParticipationCodes { get { return Internals.SportParticipationCodes; } }
|
||||
public List<TypeCodeDesc> SportOfficiatingCodes { get { return Internals.SportOfficiatingCodes; } }
|
||||
public List<TypeCodeDesc> RegionTypeCodes { get { return Internals.RegionTypeCodes; } }
|
||||
public List<TypeCodeDesc> UserRoleCodes { get { return Internals.UserRoleCodes; } }
|
||||
public List<TypeCodeDesc> OrganisationTypeCodes { get { return Internals.OrganisationTypeCodes; } }
|
||||
public List<TypeCodeDesc> OrganisationCategoryCodes { get { return Internals.OrganisationCategoryCodes; } }
|
||||
public List<TypeCodeDesc> OrganisationRoleCodes { get { return Internals.OrganisationRoleCodes; } }
|
||||
public List<TypeCodeDesc> OpportunityTypeCodes { get { return Internals.OpportunityTypeCodes; } }
|
||||
public List<TypeCodeDesc> DataItemTypeCodes { get { return Internals.DataItemTypeCodes; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Tue 25-May-2021 19:36:10
|
||||
// Code generated by Sarand Database Utilities Wed 2-Jun-2021 15:39:57
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Tue 25-May-2021 19:36:10
|
||||
// Code generated by Sarand Database Utilities Wed 2-Jun-2021 15:39:57
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Tue 25-May-2021 19:36:10
|
||||
// Code generated by Sarand Database Utilities Wed 2-Jun-2021 15:39:57
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Tue 25-May-2021 19:36:10
|
||||
// Code generated by Sarand Database Utilities Wed 2-Jun-2021 15:39:57
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Tue 25-May-2021 19:36:10
|
||||
// Code generated by Sarand Database Utilities Wed 2-Jun-2021 15:39:57
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Tue 25-May-2021 19:36:10
|
||||
// Code generated by Sarand Database Utilities Wed 2-Jun-2021 15:39:57
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Tue 25-May-2021 19:36:10
|
||||
// Code generated by Sarand Database Utilities Wed 2-Jun-2021 15:39:57
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Tue 25-May-2021 19:36:10
|
||||
// Code generated by Sarand Database Utilities Wed 2-Jun-2021 15:39:57
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Tue 25-May-2021 19:36:10
|
||||
// Code generated by Sarand Database Utilities Wed 2-Jun-2021 15:39:57
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Tue 25-May-2021 19:36:10
|
||||
// Code generated by Sarand Database Utilities Wed 2-Jun-2021 15:39:57
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Tue 25-May-2021 19:36:10
|
||||
// Code generated by Sarand Database Utilities Wed 2-Jun-2021 15:39:57
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
@@ -22,6 +22,8 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
public ColumnDataInt32 _Id { get; } = new ColumnDataInt32("Id", true);
|
||||
public ColumnDataInt32 _UserAccountId { get; } = new ColumnDataInt32("UserAccountId");
|
||||
public ColumnDataInt32 _SportId { get; } = new ColumnDataInt32("SportId");
|
||||
public ColumnDataInt16 _Participation { get; } = new ColumnDataInt16("Participation");
|
||||
public ColumnDataInt16 _Officiating { get; } = new ColumnDataInt16("Officiating");
|
||||
public ColumnDataString _UserSportData { get; } = new ColumnDataString("UserSportData");
|
||||
public ColumnDataString _Notes { get; } = new ColumnDataString("Notes");
|
||||
public ColumnDataInt16 _Flags { get; } = new ColumnDataInt16("Flags");
|
||||
@@ -41,6 +43,8 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
"Id",
|
||||
"UserAccountId",
|
||||
"SportId",
|
||||
"Participation",
|
||||
"Officiating",
|
||||
"UserSportData",
|
||||
"Notes",
|
||||
"Flags",
|
||||
@@ -86,6 +90,8 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
public Int32 _Id { get { return Cols._Id.Value; } set { Cols._Id.Value = value; } }
|
||||
public Int32 _UserAccountId { get { return Cols._UserAccountId.Value; } set { Cols._UserAccountId.Value = value; } }
|
||||
public Int32 _SportId { get { return Cols._SportId.Value; } set { Cols._SportId.Value = value; } }
|
||||
public Int16 _Participation { get { return Cols._Participation.Value; } set { Cols._Participation.Value = value; } }
|
||||
public Int16 _Officiating { get { return Cols._Officiating.Value; } set { Cols._Officiating.Value = value; } }
|
||||
public String _UserSportData { get { return Cols._UserSportData.Value; } set { Cols._UserSportData.Value = value; } }
|
||||
public String _Notes { get { return Cols._Notes.Value; } set { Cols._Notes.Value = value; } }
|
||||
public Int16 _Flags { get { return Cols._Flags.Value; } set { Cols._Flags.Value = value; } }
|
||||
@@ -120,6 +126,8 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
_Id = GetFieldInt32(dbDataReader, "Id", _Id);
|
||||
_UserAccountId = GetFieldInt32(dbDataReader, "UserAccountId", _UserAccountId);
|
||||
_SportId = GetFieldInt32(dbDataReader, "SportId", _SportId);
|
||||
_Participation = GetFieldInt16(dbDataReader, "Participation", _Participation);
|
||||
_Officiating = GetFieldInt16(dbDataReader, "Officiating", _Officiating);
|
||||
_UserSportData = GetFieldString(dbDataReader, "UserSportData", _UserSportData);
|
||||
_Notes = GetFieldString(dbDataReader, "Notes", _Notes);
|
||||
_Flags = GetFieldInt16(dbDataReader, "Flags", _Flags);
|
||||
@@ -153,6 +161,8 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
dbCommand.Parameters.Clear();
|
||||
if (columnNames.ContainsCI("UserAccountId")) AddCommandParameter(dbCommand, "@UserAccountId", _UserAccountId);
|
||||
if (columnNames.ContainsCI("SportId")) AddCommandParameter(dbCommand, "@SportId", _SportId);
|
||||
if (columnNames.ContainsCI("Participation")) AddCommandParameter(dbCommand, "@Participation", _Participation);
|
||||
if (columnNames.ContainsCI("Officiating")) AddCommandParameter(dbCommand, "@Officiating", _Officiating);
|
||||
if (columnNames.ContainsCI("UserSportData")) AddCommandParameter(dbCommand, "@UserSportData", _UserSportData);
|
||||
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
|
||||
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
|
||||
@@ -201,6 +211,8 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
dbCommand.Parameters.Clear();
|
||||
if (columnNames.ContainsCI("UserAccountId")) AddCommandParameter(dbCommand, "@UserAccountId", _UserAccountId);
|
||||
if (columnNames.ContainsCI("SportId")) AddCommandParameter(dbCommand, "@SportId", _SportId);
|
||||
if (columnNames.ContainsCI("Participation")) AddCommandParameter(dbCommand, "@Participation", _Participation);
|
||||
if (columnNames.ContainsCI("Officiating")) AddCommandParameter(dbCommand, "@Officiating", _Officiating);
|
||||
if (columnNames.ContainsCI("UserSportData")) AddCommandParameter(dbCommand, "@UserSportData", _UserSportData);
|
||||
if (columnNames.ContainsCI("Notes")) AddCommandParameter(dbCommand, "@Notes", _Notes);
|
||||
if (columnNames.ContainsCI("Flags")) AddCommandParameter(dbCommand, "@Flags", _Flags);
|
||||
|
||||
@@ -206,8 +206,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
dbOrganisation._Name = organisation.Name;
|
||||
dbOrganisation._PhoneMain = organisation.PhoneMain;
|
||||
dbOrganisation._PhoneAlt = organisation.PhoneAlt;
|
||||
dbOrganisation._OrganisationType = OrganisationTypes.GetCodeForType(organisation.OrganisationType);
|
||||
dbOrganisation._OrganisationCategory = OrganisationCategories.GetCodeForType(organisation.OrganisationCategory);
|
||||
dbOrganisation._OrganisationType = OrganisationTypeCodes.GetCodeForType(organisation.OrganisationType);
|
||||
dbOrganisation._OrganisationCategory = OrganisationCategoryCodes.GetCodeForType(organisation.OrganisationCategory);
|
||||
dbOrganisation._PhoneMain = organisation.PhoneMain;
|
||||
dbOrganisation._PhoneAlt = organisation.PhoneAlt;
|
||||
dbOrganisation._SportIdPrimary = SysId.ToInt(organisation.SportIdPrimary);
|
||||
@@ -232,8 +232,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
organisation.Name = dbOrganisation._Name;
|
||||
organisation.PhoneMain = dbOrganisation._PhoneMain;
|
||||
organisation.PhoneAlt = dbOrganisation._PhoneAlt;
|
||||
organisation.OrganisationType = (Sax.OrganisationType)OrganisationTypes.GetTypeForCode(dbOrganisation._OrganisationType);
|
||||
organisation.OrganisationCategory = (Sax.OrganisationCategory)OrganisationCategories.GetTypeForCode(dbOrganisation._OrganisationCategory);
|
||||
organisation.OrganisationType = (Sax.OrganisationType)OrganisationTypeCodes.GetTypeForCode(dbOrganisation._OrganisationType);
|
||||
organisation.OrganisationCategory = (Sax.OrganisationCategory)OrganisationCategoryCodes.GetTypeForCode(dbOrganisation._OrganisationCategory);
|
||||
organisation.PhoneMain = dbOrganisation._PhoneMain;
|
||||
organisation.PhoneAlt = dbOrganisation._PhoneAlt;
|
||||
organisation.SportIdPrimary = new SysId(dbOrganisation._SportIdPrimary);
|
||||
|
||||
@@ -475,7 +475,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
roleQuery.Filters.Clear();
|
||||
roleQuery.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_UserAccountId, aliasUserRole) + "=" + SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Id, aliasUserAccount));
|
||||
roleQuery.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_UserRoleCode, aliasUserRole) + "='" + UserRoles.GetCodeForType(userRole) + "'");
|
||||
roleQuery.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_UserRoleCode, aliasUserRole) + "='" + UserRoleCodes.GetCodeForType(userRole) + "'");
|
||||
filter.Add("Exists(" + roleQuery.BuildQuery() + ")");
|
||||
}
|
||||
}
|
||||
@@ -679,7 +679,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
queryUserRole.Tables.Add(SaxDbDfn_Core.GetTableName(SaxDbDfn_Core.TableIdx.UserRole), aliasUserRole);
|
||||
queryUserRole.Columns.Add("Count(*)");
|
||||
queryUserRole.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_UserAccountId, aliasUserRole) + "=" + SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_Id, aliasUserAccount));
|
||||
queryUserRole.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_UserRoleCode, aliasUserRole) + "='" + UserRoles.GetCodeForType(Sax.UserRole.SystemAdmin) + "'");
|
||||
queryUserRole.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_UserRoleCode, aliasUserRole) + "='" + UserRoleCodes.GetCodeForType(Sax.UserRole.SystemAdmin) + "'");
|
||||
queryUserRole.Filters.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_Status, aliasUserRole) + "='" + SacsSystem.GetStatusCode(SaStatus.Active) + "'");
|
||||
query.Columns.Add("(" + queryUserRole.BuildQuery() + ")", colUserAccount_SystemAdminRole);
|
||||
}
|
||||
|
||||
@@ -415,7 +415,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
List<String> organisationRoleCodes = new List<string>();
|
||||
foreach (Sax.OrganisationRole organisationRole in prm.OrganisationRoles)
|
||||
{
|
||||
String organisationRoleCode = OrganisationRoles.GetCodeForType(organisationRole).TrimAll();
|
||||
String organisationRoleCode = OrganisationRoleCodes.GetCodeForType(organisationRole).TrimAll();
|
||||
if (!StringUtil.IsEmpty(organisationRoleCode))
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserOrganisation_OrganisationRoleCodes, aliasUserOrganisation) + " LIKE '%" + DbQuery.FormatForLike(organisationRoleCode) + "%'");
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
private SaxUserRole_Dbas CreateUserRole(UserRole_Db dbUserRole)
|
||||
{
|
||||
ClearErrorState();
|
||||
SaxUserRole_Dbas userRole = new SaxUserRole_Dbas(CoreDatabase, new SysId(dbUserRole._Id), new SysId(dbUserRole._UserAccountId), (Sax.UserRole)UserRoles.GetTypeForCode(dbUserRole._UserRoleCode), (ushort)dbUserRole._Flags);
|
||||
SaxUserRole_Dbas userRole = new SaxUserRole_Dbas(CoreDatabase, new SysId(dbUserRole._Id), new SysId(dbUserRole._UserAccountId), (Sax.UserRole)UserRoleCodes.GetTypeForCode(dbUserRole._UserRoleCode), (ushort)dbUserRole._Flags);
|
||||
PopulateFrom(dbUserRole, userRole);
|
||||
return userRole;
|
||||
}
|
||||
@@ -205,7 +205,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
{
|
||||
dbUserRole._Id = SysId.ToInt(userRole.Id);
|
||||
dbUserRole._UserAccountId = SysId.ToInt(userRole.UserAccountId);
|
||||
dbUserRole._UserRoleCode = UserRoles.GetCodeForType(userRole.UserRole);
|
||||
dbUserRole._UserRoleCode = UserRoleCodes.GetCodeForType(userRole.UserRole);
|
||||
// Common.
|
||||
dbUserRole._Notes = userRole.Notes;
|
||||
dbUserRole._Status = SacsSystem.GetStatusCode(userRole.Status);
|
||||
@@ -355,8 +355,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_UserAccountId, aliasUserRole) + " IN (" + userAccountIdsIncluded + ")");
|
||||
|
||||
// User roles.
|
||||
List<TypeCodeDesc> userRoles = UserRoles;
|
||||
String userRoleCodes = prm.UserRolesIncluded.Select(item => UserRoles.GetCodeForType(item)).ToList().Concat(",", "'", "'", true, true);
|
||||
List<TypeCodeDesc> userRoles = UserRoleCodes;
|
||||
String userRoleCodes = prm.UserRolesIncluded.Select(item => UserRoleCodes.GetCodeForType(item)).ToList().Concat(",", "'", "'", true, true);
|
||||
if (!userRoleCodes.IsEmpty())
|
||||
filter.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserRole_UserRoleCode, aliasUserRole) + " IN (" + userRoleCodes + ")");
|
||||
|
||||
|
||||
@@ -206,6 +206,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
dbUserSport._Id = SysId.ToInt(userSport.Id);
|
||||
dbUserSport._UserAccountId = SysId.ToInt(userSport.UserAccountId);
|
||||
dbUserSport._SportId = SysId.ToInt(userSport.SportId);
|
||||
dbUserSport._Participation = (short)userSport.Participation;
|
||||
dbUserSport._Officiating = (short)userSport.Officiating;
|
||||
dbUserSport._UserSportData = userSport.UserSportData;
|
||||
// Common.
|
||||
dbUserSport._Notes = userSport.Notes;
|
||||
@@ -226,6 +228,8 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
//userSport.Id = new SysId(dbUserSport._Id);
|
||||
//userSport.UserAccountId = new SysId(dbUserSport._UserAccountId);
|
||||
//userSport.SportId = new SysId(dbUserSport._SportId);
|
||||
userSport.Participation = (Sax.SportParticipation)dbUserSport._Participation;
|
||||
userSport.Officiating = (Sax.SportOfficiating)dbUserSport._Participation;
|
||||
userSport.UserSportData = dbUserSport._UserSportData;
|
||||
// Common.
|
||||
userSport.Notes = dbUserSport._Notes;
|
||||
@@ -308,6 +312,28 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
columnDfn.ReadOnly = true;
|
||||
break;
|
||||
|
||||
// Participation.
|
||||
case SaxUserSport.Column.SportParticipation:
|
||||
SetUserSportColDfn(columnDfn, "Participation", 80, SaxDbDfn_Core.ColumnIdx.UserSport_Participation, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
break;
|
||||
case SaxUserSport.Column.SportParticipation_Code:
|
||||
SetUserSportColDfn(columnDfn, "Participation", 80, SaxDbDfn_Core.ColumnIdx.UserSport_Participation, ColumnAlignment.Center, DataValue.DataType.String);
|
||||
break;
|
||||
case SaxUserSport.Column.SportParticipation_Desc:
|
||||
SetUserSportColDfn(columnDfn, "Participation", 120, SaxDbDfn_Core.ColumnIdx.UserSport_Participation, ColumnAlignment.Center, DataValue.DataType.String);
|
||||
break;
|
||||
|
||||
// Officiating.
|
||||
case SaxUserSport.Column.SportOfficiating:
|
||||
SetUserSportColDfn(columnDfn, "Officiating", 80, SaxDbDfn_Core.ColumnIdx.UserSport_Officiating, ColumnAlignment.Center, DataValue.DataType.Long);
|
||||
break;
|
||||
case SaxUserSport.Column.SportOfficiating_Code:
|
||||
SetUserSportColDfn(columnDfn, "Officiating", 80, SaxDbDfn_Core.ColumnIdx.UserSport_Officiating, ColumnAlignment.Center, DataValue.DataType.String);
|
||||
break;
|
||||
case SaxUserSport.Column.SportOfficiating_Desc:
|
||||
SetUserSportColDfn(columnDfn, "Officiating", 120, SaxDbDfn_Core.ColumnIdx.UserSport_Officiating, ColumnAlignment.Center, DataValue.DataType.String);
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Derived properties.
|
||||
|
||||
@@ -487,6 +513,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
bool hasSportCols = (columns.HasId(SaxUserSport.Column.Sport_Name));
|
||||
if (columns.HasId(SaxUserSport.Column.SportId) || hasSportCols)
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserSport_SportId, aliasUserSport));
|
||||
if (columns.HasId(SaxUserSport.Column.SportParticipation) || columns.HasId(SaxUserSport.Column.SportParticipation_Code) || columns.HasId(SaxUserSport.Column.SportParticipation_Desc))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserSport_Participation, aliasUserSport));
|
||||
if (columns.HasId(SaxUserSport.Column.SportOfficiating) || columns.HasId(SaxUserSport.Column.SportOfficiating_Code) || columns.HasId(SaxUserSport.Column.SportOfficiating_Desc))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserSport_Officiating, aliasUserSport));
|
||||
// Common properties.
|
||||
if (columns.HasId(SaxUserSport.Column.Notes))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserSport_Notes, aliasUserSport));
|
||||
|
||||
@@ -207,7 +207,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
dbOrganisationOpportunity._OrganisationId = SysId.ToInt(organisationOpportunity.OrganisationId);
|
||||
dbOrganisationOpportunity._SportIdPrimary = SysId.ToInt(organisationOpportunity.SportIdPrimary);
|
||||
dbOrganisationOpportunity._RegionIdPrimary = SysId.ToInt(organisationOpportunity.RegionIdPrimary);
|
||||
dbOrganisationOpportunity._OpportunityTypeCode = OpportunityTypes.GetCodeForType(organisationOpportunity.OpportunityType);
|
||||
dbOrganisationOpportunity._OpportunityTypeCode = OpportunityTypeCodes.GetCodeForType(organisationOpportunity.OpportunityType);
|
||||
dbOrganisationOpportunity._Position = organisationOpportunity.Position;
|
||||
dbOrganisationOpportunity._Outline = organisationOpportunity.Outline;
|
||||
dbOrganisationOpportunity._OpportunityData = organisationOpportunity.OpportunityData;
|
||||
@@ -232,7 +232,7 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
//organisationOpportunity.OrganisationId = new SysId(dbOrganisationOpportunity._OrganisationId);
|
||||
organisationOpportunity.SportIdPrimary = new SysId(dbOrganisationOpportunity._SportIdPrimary);
|
||||
organisationOpportunity.RegionIdPrimary = new SysId(dbOrganisationOpportunity._RegionIdPrimary);
|
||||
organisationOpportunity.OpportunityType = (Sax.OpportunityType)OpportunityTypes.GetTypeForCode(dbOrganisationOpportunity._OpportunityTypeCode);
|
||||
organisationOpportunity.OpportunityType = (Sax.OpportunityType)OpportunityTypeCodes.GetTypeForCode(dbOrganisationOpportunity._OpportunityTypeCode);
|
||||
organisationOpportunity.Position = dbOrganisationOpportunity._Position;
|
||||
organisationOpportunity.Outline = dbOrganisationOpportunity._Outline;
|
||||
organisationOpportunity.OpportunityData = dbOrganisationOpportunity._OpportunityData;
|
||||
|
||||
@@ -256,7 +256,7 @@
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>1</Pages>
|
||||
<UniqueValues>9</UniqueValues>
|
||||
<UniqueValues>10</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
@@ -1768,7 +1768,7 @@
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>1</Pages>
|
||||
<UniqueValues>2</UniqueValues>
|
||||
<UniqueValues>3</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
@@ -3697,6 +3697,40 @@
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserSport</Table>
|
||||
<Pos>4</Pos>
|
||||
<Name>Participation</Name>
|
||||
<DataType>SmallInt</DataType>
|
||||
<DataTypeName />
|
||||
<DataTypeNative>5</DataTypeNative>
|
||||
<DataTypeNameNative>smallint</DataTypeNameNative>
|
||||
<IsIdentity>false</IsIdentity>
|
||||
<Size>5</Size>
|
||||
<BufferLen>2</BufferLen>
|
||||
<DecimalDigits>0</DecimalDigits>
|
||||
<Nullable>Nullable</Nullable>
|
||||
<IsNullable>true</IsNullable>
|
||||
<Remarks />
|
||||
</DbDfnColumn>
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserSport</Table>
|
||||
<Pos>5</Pos>
|
||||
<Name>Officiating</Name>
|
||||
<DataType>SmallInt</DataType>
|
||||
<DataTypeName />
|
||||
<DataTypeNative>5</DataTypeNative>
|
||||
<DataTypeNameNative>smallint</DataTypeNameNative>
|
||||
<IsIdentity>false</IsIdentity>
|
||||
<Size>5</Size>
|
||||
<BufferLen>2</BufferLen>
|
||||
<DecimalDigits>0</DecimalDigits>
|
||||
<Nullable>Nullable</Nullable>
|
||||
<IsNullable>true</IsNullable>
|
||||
<Remarks />
|
||||
</DbDfnColumn>
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserSport</Table>
|
||||
<Pos>6</Pos>
|
||||
<Name>UserSportData</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3713,7 +3747,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserSport</Table>
|
||||
<Pos>5</Pos>
|
||||
<Pos>7</Pos>
|
||||
<Name>Notes</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3730,7 +3764,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserSport</Table>
|
||||
<Pos>6</Pos>
|
||||
<Pos>8</Pos>
|
||||
<Name>Flags</Name>
|
||||
<DataType>SmallInt</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3747,7 +3781,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserSport</Table>
|
||||
<Pos>7</Pos>
|
||||
<Pos>9</Pos>
|
||||
<Name>Status</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3764,7 +3798,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserSport</Table>
|
||||
<Pos>8</Pos>
|
||||
<Pos>10</Pos>
|
||||
<Name>CreateOn</Name>
|
||||
<DataType>DateTime</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3781,7 +3815,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserSport</Table>
|
||||
<Pos>9</Pos>
|
||||
<Pos>11</Pos>
|
||||
<Name>CreateBy</Name>
|
||||
<DataType>Int</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3798,7 +3832,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserSport</Table>
|
||||
<Pos>10</Pos>
|
||||
<Pos>12</Pos>
|
||||
<Name>CreateHost</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3815,7 +3849,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserSport</Table>
|
||||
<Pos>11</Pos>
|
||||
<Pos>13</Pos>
|
||||
<Name>UpdateOn</Name>
|
||||
<DataType>DateTime</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3832,7 +3866,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserSport</Table>
|
||||
<Pos>12</Pos>
|
||||
<Pos>14</Pos>
|
||||
<Name>UpdateBy</Name>
|
||||
<DataType>Int</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3849,7 +3883,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserSport</Table>
|
||||
<Pos>13</Pos>
|
||||
<Pos>15</Pos>
|
||||
<Name>UpdateHost</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
|
||||
Reference in New Issue
Block a user