v1.1.4.1
This commit is contained in:
@@ -137,6 +137,7 @@ namespace Saxonite.Net.Core.Web.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
private class CodeCache
|
||||
{
|
||||
public List<TypeCodeDesc> genderCodes;
|
||||
public List<TypeCodeDesc> sportParticipationCodes;
|
||||
public List<TypeCodeDesc> sportOfficiatingCodes;
|
||||
public List<TypeCodeDesc> regionTypeCodes;
|
||||
@@ -155,6 +156,16 @@ namespace Saxonite.Net.Core.Web.Base.App
|
||||
return SacsSystem.GetStatusDesc(status);
|
||||
}
|
||||
|
||||
// Gender.
|
||||
public String GetGenderCaption(Sax.Gender gender)
|
||||
{
|
||||
if ((int)gender < 1) return "";
|
||||
if (codes.genderCodes == null)
|
||||
codes.genderCodes = SaxSystem.GetCodesOfType(Sax.CodeType.Gender);
|
||||
// ToDo Opportunity Type localisation.
|
||||
return codes.genderCodes.GetDescForType(gender);
|
||||
}
|
||||
|
||||
// Sport Participation.
|
||||
public String GetSportParticipationTypeCaption(Sax.SportParticipation participation)
|
||||
{
|
||||
|
||||
@@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Mvc.Razor;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Microsoft.Net.Http.Headers;
|
||||
using Sarand.Net.Standard.Base.App;
|
||||
using Sarand.Net.Standard.Base.Core;
|
||||
@@ -160,6 +161,10 @@ namespace Saxonite.Net.Core.Web.Base.App
|
||||
//config.app.UseAuthorization();
|
||||
config.app.UseAntiforgeryTokens();
|
||||
|
||||
// Localisation.
|
||||
IOptions<RequestLocalizationOptions> localizationOptions = config.app.ApplicationServices.GetService<IOptions<RequestLocalizationOptions>>();
|
||||
config.app.UseRequestLocalization(localizationOptions.Value);
|
||||
|
||||
config.app.UseEndpoints(endpoints =>
|
||||
{
|
||||
endpoints.MapControllerRoute(
|
||||
|
||||
@@ -23,6 +23,7 @@ using Saxonite.Net.Standard.Base.Mgr;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
@@ -70,7 +71,23 @@ namespace Saxonite.Net.Core.Web.Base.Controllers
|
||||
/// <para>Some actions such as scoring a password's complexity don't need to.</para>
|
||||
/// </summary>
|
||||
public virtual bool StoreSessionData { get; protected set; } = true;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Culture.
|
||||
private CultureInfo sessionCulture;
|
||||
private CultureInfo RequestCulture { get { return Request.HttpContext.Features.Get<IRequestCultureFeature>().RequestCulture.Culture ?? CultureInfo.InvariantCulture; } }
|
||||
public CultureInfo SessionCulture
|
||||
{
|
||||
get
|
||||
{
|
||||
if (sessionCulture == null)
|
||||
{
|
||||
sessionCulture = RequestCulture;
|
||||
// ToDo Adjust culture if needed.
|
||||
}
|
||||
return sessionCulture;
|
||||
}
|
||||
}
|
||||
private string LanguageIso2
|
||||
{
|
||||
get
|
||||
@@ -79,6 +96,8 @@ namespace Saxonite.Net.Core.Web.Base.Controllers
|
||||
return feature.RequestCulture.UICulture.TwoLetterISOLanguageName.ToLower();
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Business components.
|
||||
public SaxInternals Internals { get { if (internals == null) internals = new SaxInternals(SessionContext); return internals; } }
|
||||
// Consoles.
|
||||
@@ -191,6 +210,7 @@ namespace Saxonite.Net.Core.Web.Base.Controllers
|
||||
if (model == null) return;
|
||||
|
||||
// Session data.
|
||||
model.Controller = this;
|
||||
model.SessionData = SessionData;
|
||||
|
||||
// Redirect locations.
|
||||
|
||||
@@ -6,12 +6,14 @@ using Sarand.Net.Standard.Base.Dbas;
|
||||
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.Standard.Base.App;
|
||||
using Saxonite.Net.Standard.Base.Bus;
|
||||
using Saxonite.Net.Standard.Base.Consoles;
|
||||
using Saxonite.Net.Standard.Base.Mgr;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
|
||||
namespace Saxonite.Net.Core.Web.Base.Models
|
||||
{
|
||||
@@ -38,11 +40,15 @@ namespace Saxonite.Net.Core.Web.Base.Models
|
||||
protected SaxAppConfig AppConfig { get { return App.AppConfig; } }
|
||||
protected SaxSystem_Web System { get { return App.System_Web; } }
|
||||
public String SessionCookieName { get { return App.SessionCookieName; } }
|
||||
public SaxLocaliser Localiser { get; }
|
||||
public bool DebugMode { get { return SaxSystem.DebugMode; } }
|
||||
// Session properties.
|
||||
public SaxSessionData SessionData { get; set; }
|
||||
public SaxSessionContext SessionContext { get { return SessionData?.SessionContext ?? App.SessionContext; } }
|
||||
public DbUpdateInfo DbUpdateInfo { get { return SessionData?.DbUpdateInfo ?? new DbUpdateInfo(null, "", SaxSystem.ComputerName); } }
|
||||
public bool DebugMode { get { return SaxSystem.DebugMode; } }
|
||||
public SaxLocaliser Localiser { get; }
|
||||
// Request properties.
|
||||
public SaxController_Base Controller { get; set; }
|
||||
public CultureInfo SessionCulture { get { return Controller?.SessionCulture ?? CultureInfo.InvariantCulture; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Page configuration.
|
||||
@@ -190,11 +196,11 @@ namespace Saxonite.Net.Core.Web.Base.Models
|
||||
}
|
||||
public String FormatDateForForm(DateTime value)
|
||||
{
|
||||
return DateUtil.Format(value, "dd-MMM-yyyy");
|
||||
return DateUtil.Format(value, "dd-MMM-yyyy", SessionCulture);
|
||||
}
|
||||
public DateTime ParseDateFromForm(String value)
|
||||
{
|
||||
return DateUtil.ParseExact(value, "dd-MMM-yyyy");
|
||||
return DateUtil.ParseExact(value, "dd-MMM-yyyy", SessionCulture);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
var $items = $('.sax-panel-item-list', $results).fadeOut(200).empty();
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||
}
|
||||
sax.ajaxDbSchema = sax.ajaxDbSchema || { url: sax.url.base + 'System/Ajax/ValidateDatabaseSchema', formId: 'frmNavigate', callbackFn: sax.handleDbSchemaResponse, noWaitIcon: true };
|
||||
sax.doAjaxRequest(sax.ajaxDbSchema, delay || 50);
|
||||
sax.ajax.dbSchema = sax.ajax.dbSchema || { url: sax.url.base + 'System/Ajax/ValidateDatabaseSchema', formId: 'frmNavigate', callbackFn: sax.handleDbSchemaResponse, noWaitIcon: true };
|
||||
sax.doAjaxRequest(sax.ajax.dbSchema, delay || 50);
|
||||
sax.awaitingRefreshResponse = true;
|
||||
}
|
||||
sax.handleDbSchemaResponse = function (response)
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
var $items = $('.sax-panel-item-list', $results).fadeOut(200).empty();
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||
}
|
||||
sax.ajaxRefreshResults = sax.ajaxRefreshResults || { url: sax.url.base + 'Organisation/Ajax/GetMemberList', formId: 'frmMemberFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajaxRefreshResults, delay || 50);
|
||||
sax.ajax.refreshResults = sax.ajax.refreshResults || { url: sax.url.base + 'Organisation/Ajax/GetMemberList', formId: 'frmMemberFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajax.refreshResults, delay || 50);
|
||||
sax.awaitingRefreshResponse = true;
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
@@ -90,8 +90,8 @@
|
||||
if (!response || !response.success || !response.user) return;
|
||||
$mbrName.val(response.user.displayName);
|
||||
}
|
||||
sax.ajaxUserByEmail = sax.ajaxUserByEmail || { url: sax.url.base + 'User/Ajax/GetUserByEmail', formId: 'frmUserEmail', callbackFn: fn };
|
||||
sax.doAjaxRequest(sax.ajaxUserByEmail, 100);
|
||||
sax.ajax.userByEmail = sax.ajax.userByEmail || { url: sax.url.base + 'User/Ajax/GetUserByEmail', formId: 'frmUserEmail', callbackFn: fn };
|
||||
sax.doAjaxRequest(sax.ajax.userByEmail, 100);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
@@ -146,8 +146,8 @@
|
||||
sax.updateItem = function (id)
|
||||
{
|
||||
$('.UserOrganisationId', sax.$frm.memberId).val(id);
|
||||
sax.ajaxUpdateItem = sax.ajaxUpdateItem || { url: sax.url.base + 'Organisation/Ajax/GetMember', formId: 'frmMemberId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajaxUpdateItem, 50);
|
||||
sax.ajax.updateItem = sax.ajax.updateItem || { url: sax.url.base + 'Organisation/Ajax/GetMember', formId: 'frmMemberId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajax.updateItem, 50);
|
||||
}
|
||||
sax.onUpdateItem = function (response)
|
||||
{
|
||||
@@ -175,8 +175,8 @@
|
||||
//--------------------------------------------------------------
|
||||
sax.storeItem = function ()
|
||||
{
|
||||
sax.ajaxStoreItem = sax.ajaxStoreItem || { url: sax.url.base + 'Organisation/Ajax/StoreMember', formId: 'frmMember', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajaxStoreItem, 50);
|
||||
sax.ajax.storeItem = sax.ajax.storeItem || { url: sax.url.base + 'Organisation/Ajax/StoreMember', formId: 'frmMember', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajax.storeItem, 50);
|
||||
}
|
||||
sax.onStoreItem = function (response)
|
||||
{
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
var $items = $('.sax-panel-item-list', $results).fadeOut(200).empty();
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||
}
|
||||
sax.ajaxRefreshResults = sax.ajaxRefreshResults || { url: sax.url.base + 'Region/Ajax/GetList', formId: 'frmRegionFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajaxRefreshResults, delay || 50);
|
||||
sax.ajax.refreshResults = sax.ajax.refreshResults || { url: sax.url.base + 'Region/Ajax/GetList', formId: 'frmRegionFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajax.refreshResults, delay || 50);
|
||||
sax.awaitingRefreshResponse = true;
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
@@ -110,8 +110,8 @@
|
||||
sax.updateItem = function (id)
|
||||
{
|
||||
$('.RegionId', sax.$frm.regionId).val(id);
|
||||
sax.ajaxUpdateItem = sax.ajaxUpdateItem || { url: sax.url.base + 'Region/Ajax/GetItem', formId: 'frmRegionId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajaxUpdateItem, 50);
|
||||
sax.ajax.updateItem = sax.ajax.updateItem || { url: sax.url.base + 'Region/Ajax/GetItem', formId: 'frmRegionId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajax.updateItem, 50);
|
||||
}
|
||||
sax.onUpdateItem = function (response)
|
||||
{
|
||||
@@ -139,8 +139,8 @@
|
||||
//--------------------------------------------------------------
|
||||
sax.storeItem = function ()
|
||||
{
|
||||
sax.ajaxStoreItem = sax.ajaxStoreItem || { url: sax.url.base + 'Region/Ajax/StoreItem', formId: 'frmRegion', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajaxStoreItem, 50);
|
||||
sax.ajax.storeItem = sax.ajax.storeItem || { url: sax.url.base + 'Region/Ajax/StoreItem', formId: 'frmRegion', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajax.storeItem, 50);
|
||||
}
|
||||
sax.onStoreItem = function (response)
|
||||
{
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
sax.doSignin = function ()
|
||||
{
|
||||
sax.clearControlErrors();
|
||||
sax.ajaxSignin = sax.ajaxSignin || { url: sax.url.base + 'Security/Ajax/Signin', formId: 'frmSignIn', callbackFn: sax.onSignin };
|
||||
sax.doAjaxRequest(sax.ajaxSignin, 50);
|
||||
sax.ajax.signin = sax.ajax.signin || { url: sax.url.base + 'Security/Ajax/Signin', formId: 'frmSignIn', callbackFn: sax.onSignin };
|
||||
sax.doAjaxRequest(sax.ajax.signin, 50);
|
||||
}
|
||||
sax.onSignin = function (response)
|
||||
{
|
||||
@@ -24,8 +24,8 @@
|
||||
//--------------------------------------------------------------
|
||||
sax.doScorePassword = function ()
|
||||
{
|
||||
sax.ajaxScorePassword = sax.ajaxScorePassword || { url: sax.url.base + 'Security/Ajax/ScorePassword', formId: 'frmChangePassword', callbackFn: sax.onScorePassword, noWaitIcon: true };
|
||||
sax.doAjaxRequest(sax.ajaxScorePassword, 250);
|
||||
sax.ajax.scorePassword = sax.ajax.scorePassword || { url: sax.url.base + 'Security/Ajax/ScorePassword', formId: 'frmChangePassword', callbackFn: sax.onScorePassword, noWaitIcon: true };
|
||||
sax.doAjaxRequest(sax.ajax.scorePassword, 250);
|
||||
}
|
||||
sax.onScorePassword = function (response)
|
||||
{
|
||||
@@ -37,8 +37,8 @@
|
||||
sax.doChangePassword = function ()
|
||||
{
|
||||
sax.clearControlErrors();
|
||||
sax.ajaxChangePassword = sax.ajaxChangePassword || { url: sax.url.base + 'Security/Ajax/StorePassword', formId: 'frmChangePassword', callbackFn: sax.onChangePassword };
|
||||
sax.doAjaxRequest(sax.ajaxChangePassword, 50);
|
||||
sax.ajax.changePassword = sax.ajax.changePassword || { url: sax.url.base + 'Security/Ajax/StorePassword', formId: 'frmChangePassword', callbackFn: sax.onChangePassword };
|
||||
sax.doAjaxRequest(sax.ajax.changePassword, 50);
|
||||
}
|
||||
sax.onChangePassword = function (response)
|
||||
{
|
||||
@@ -53,8 +53,8 @@
|
||||
sax.doRequestPassword = function ()
|
||||
{
|
||||
sax.clearControlErrors();
|
||||
sax.ajaxRequestPassword = sax.ajaxRequestPassword || { url: sax.url.base + 'Security/Ajax/RequestNewPassword', formId: 'frmRequestPassword', callbackFn: sax.onRequestPassword };
|
||||
sax.doAjaxRequest(sax.ajaxRequestPassword, 50);
|
||||
sax.ajax.requestPassword = sax.ajax.requestPassword || { url: sax.url.base + 'Security/Ajax/RequestNewPassword', formId: 'frmRequestPassword', callbackFn: sax.onRequestPassword };
|
||||
sax.doAjaxRequest(sax.ajax.requestPassword, 50);
|
||||
}
|
||||
sax.onRequestPassword = function (response)
|
||||
{
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
var $items = $('.sax-panel-item-list', $results).fadeOut(200).empty();
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||
}
|
||||
sax.ajaxRefreshResults = sax.ajaxRefreshResults || { url: sax.url.base + 'Sport/Ajax/GetList', formId: 'frmSportFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajaxRefreshResults, delay || 50);
|
||||
sax.ajax.refreshResults = sax.ajax.refreshResults || { url: sax.url.base + 'Sport/Ajax/GetList', formId: 'frmSportFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajax.refreshResults, delay || 50);
|
||||
sax.awaitingRefreshResponse = true;
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
@@ -78,8 +78,8 @@
|
||||
sax.updateItem = function (id)
|
||||
{
|
||||
$('.SportId', sax.$frm.sportId).val(id);
|
||||
sax.ajaxUpdateItem = sax.ajaxUpdateItem || { url: sax.url.base + 'Sport/Ajax/GetItem', formId: 'frmSportId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajaxUpdateItem, 50);
|
||||
sax.ajax.updateItem = sax.ajax.updateItem || { url: sax.url.base + 'Sport/Ajax/GetItem', formId: 'frmSportId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajax.updateItem, 50);
|
||||
}
|
||||
sax.onUpdateItem = function (response)
|
||||
{
|
||||
@@ -103,8 +103,8 @@
|
||||
//--------------------------------------------------------------
|
||||
sax.storeItem = function ()
|
||||
{
|
||||
sax.ajaxStoreItem = sax.ajaxStoreItem || { url: sax.url.base + 'Sport/Ajax/StoreItem', formId: 'frmSport', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajaxStoreItem, 50);
|
||||
sax.ajax.storeItem = sax.ajax.storeItem || { url: sax.url.base + 'Sport/Ajax/StoreItem', formId: 'frmSport', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajax.storeItem, 50);
|
||||
}
|
||||
sax.onStoreItem = function (response)
|
||||
{
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
var $items = $('.sax-panel-item-list', $results).fadeOut(200).empty();
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||
}
|
||||
sax.ajaxRefreshResults = sax.ajaxRefreshResults || { url: sax.url.base + 'System/Ajax/GetDatabaseTables', formId: 'frmDatabaseFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajaxRefreshResults, delay || 50);
|
||||
sax.ajax.refreshResults = sax.ajax.refreshResults || { url: sax.url.base + 'System/Ajax/GetDatabaseTables', formId: 'frmDatabaseFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajax.refreshResults, delay || 50);
|
||||
sax.awaitingRefreshResponse = true;
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
@@ -60,8 +60,8 @@
|
||||
sax.viewItem = function (id)
|
||||
{
|
||||
$('.DatabaseTableName', sax.$frm.dbTableName).val(id);
|
||||
sax.ajaxUpdateItem = sax.ajaxUpdateItem || { url: sax.url.base + 'System/Ajax/GetDatabaseTable', formId: 'frmDatabaseTableName', callbackFn: sax.onViewItem };
|
||||
sax.doAjaxRequest(sax.ajaxUpdateItem, 50);
|
||||
sax.ajax.updateItem = sax.ajax.updateItem || { url: sax.url.base + 'System/Ajax/GetDatabaseTable', formId: 'frmDatabaseTableName', callbackFn: sax.onViewItem };
|
||||
sax.doAjaxRequest(sax.ajax.updateItem, 50);
|
||||
}
|
||||
sax.onViewItem = function (response)
|
||||
{
|
||||
|
||||
@@ -258,6 +258,12 @@
|
||||
<data name="label.created" xml:space="preserve">
|
||||
<value>Created</value>
|
||||
</data>
|
||||
<data name="label.date.of.birth" xml:space="preserve">
|
||||
<value>Date of birth</value>
|
||||
</data>
|
||||
<data name="label.day" xml:space="preserve">
|
||||
<value>Day</value>
|
||||
</data>
|
||||
<data name="label.delete" xml:space="preserve">
|
||||
<value>Delete</value>
|
||||
</data>
|
||||
@@ -282,6 +288,9 @@
|
||||
<data name="label.forgotten.password" xml:space="preserve">
|
||||
<value>Forgotten password?</value>
|
||||
</data>
|
||||
<data name="label.gender" xml:space="preserve">
|
||||
<value>Gender</value>
|
||||
</data>
|
||||
<data name="label.good" xml:space="preserve">
|
||||
<value>Good</value>
|
||||
</data>
|
||||
@@ -306,12 +315,18 @@
|
||||
<data name="label.members" xml:space="preserve">
|
||||
<value>Members</value>
|
||||
</data>
|
||||
<data name="label.month" xml:space="preserve">
|
||||
<value>Month</value>
|
||||
</data>
|
||||
<data name="label.name" xml:space="preserve">
|
||||
<value>Name</value>
|
||||
</data>
|
||||
<data name="label.no" xml:space="preserve">
|
||||
<value>No</value>
|
||||
</data>
|
||||
<data name="label.not.specified" xml:space="preserve">
|
||||
<value>Not specified</value>
|
||||
</data>
|
||||
<data name="label.officiating" xml:space="preserve">
|
||||
<value>Officiating</value>
|
||||
</data>
|
||||
@@ -441,6 +456,9 @@
|
||||
<data name="label.very.good" xml:space="preserve">
|
||||
<value>Very Good</value>
|
||||
</data>
|
||||
<data name="label.year" xml:space="preserve">
|
||||
<value>Year</value>
|
||||
</data>
|
||||
<data name="label.yes" xml:space="preserve">
|
||||
<value>Yes</value>
|
||||
</data>
|
||||
|
||||
@@ -35,6 +35,11 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
public String Title { get; set; }
|
||||
public String FirstName { get; set; }
|
||||
public String LastName { get; set; }
|
||||
public byte Gender { get; set; }
|
||||
public String GenderCaption{ get; set; }
|
||||
public byte DobDay { get; set; }
|
||||
public byte DobMonth{ get; set; }
|
||||
public short DobYear{ get; set; }
|
||||
// Regions.
|
||||
public int RegionIdCountry { get; set; }
|
||||
public String RegionCaptionCountry { get; set; }
|
||||
@@ -49,6 +54,12 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
data.Title = userAccount.Title;
|
||||
data.FirstName = userAccount.FirstName;
|
||||
data.LastName = userAccount.LastName;
|
||||
data.Gender = (byte)userAccount.Gender;
|
||||
data.GenderCaption = Localiser.GetGenderCaption(userAccount.Gender);
|
||||
data.DobDay= (byte)userAccount.DateOfBirthDay;
|
||||
data.DobMonth = (byte)userAccount.DateOfBirthMonth;
|
||||
data.DobYear = (short)userAccount.DateOfBirthYear;
|
||||
// Regions.
|
||||
data.RegionIdCountry = SysId.ToInt(userAccount.RegionIdCountry);
|
||||
data.RegionIdProvince = SysId.ToInt(userAccount.RegionIdProvince);
|
||||
using (SaxRegion regionCountry = Internals.GetRegion(userAccount.RegionIdCountry))
|
||||
@@ -77,6 +88,9 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
public AjaxResponse_AccountContactData(SaxModel_Online model) : base(model) { }
|
||||
// Contact details.
|
||||
public ContactResponseData Contact { get; set; }
|
||||
// Reference data.
|
||||
public List<CodeDesc> Genders { get; } = new List<CodeDesc>();
|
||||
public List<CodeDesc> Months { get; } = new List<CodeDesc>();
|
||||
}
|
||||
// Ajax request.
|
||||
[HttpPost]
|
||||
@@ -92,6 +106,15 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
if (!ValidUserSession) return GetAjaxResult_InvalidSession(responseData);
|
||||
RefreshModel(model);
|
||||
|
||||
// Reference data - Genders.
|
||||
responseData.Genders.Add("", Localiser["label.not.specified"]);
|
||||
foreach (TypeCodeDesc gender in Internals.GenderCodes)
|
||||
responseData.Genders.Add(gender.Type.ToString(), Localiser.GetGenderCaption((Sax.Gender)gender.Type));
|
||||
|
||||
// Reference data - Months.
|
||||
for (int month= 1; month <= 12; month++)
|
||||
responseData.Months.Add(month.ToString(), DateUtil.Format(new DateTime(DateTime.Today.Year, month, 1), "MMMM", SessionCulture));
|
||||
|
||||
// Retrieve user details.
|
||||
SaxUserAccount userAccount = AccountMgr.GetUserAccountById(SessionData.User.UserAccountId);
|
||||
if (userAccount == null)
|
||||
@@ -101,7 +124,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
}
|
||||
|
||||
// Logically delete any previous 'Uploaded' Avatar image.
|
||||
ItemId userItemId = GetUserItemId(SessionData.User.UserAccountId);
|
||||
ItemId userItemId = userAccount.GetItemId();
|
||||
SaxItemImage itemImageAvatarUploaded = ItemDataMgr.GetItemImage(userItemId, Sax.ImageType.AvatarUpload, SaxItemImage.StatusCat.ActiveOnly);
|
||||
if (itemImageAvatarUploaded != null)
|
||||
{
|
||||
@@ -257,6 +280,27 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
userAccount.FirstName = model.AccountFirstName;
|
||||
if (model.AccountLastName != null)
|
||||
userAccount.LastName = model.AccountLastName;
|
||||
if (model.AccountGender != null)
|
||||
userAccount.Gender = model.GetAccountGender();
|
||||
// Date of birth.
|
||||
if (model.AccountDobYear != null)
|
||||
userAccount.DateOfBirthYear = StringUtil.ToShort(model.AccountDobYear);
|
||||
if (userAccount.DateOfBirthYear > 0)
|
||||
{
|
||||
if (model.AccountDobMonth != null)
|
||||
userAccount.DateOfBirthMonth = (byte)StringUtil.ToShort(model.AccountDobMonth);
|
||||
if (userAccount.DateOfBirthMonth > 0)
|
||||
{
|
||||
if (model.AccountDobDay != null)
|
||||
userAccount.DateOfBirthDay = (byte)StringUtil.ToShort(model.AccountDobDay);
|
||||
}
|
||||
else userAccount.DateOfBirthDay = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
userAccount.DateOfBirthMonth = 0;
|
||||
userAccount.DateOfBirthDay= 0;
|
||||
}
|
||||
// Regions.
|
||||
if (model.AccountRegionIdCountry != null)
|
||||
userAccount.RegionIdCountry = model.AccountRegionIdCountry.ToSysId();
|
||||
@@ -279,7 +323,7 @@ namespace Saxonite.Net.Core.Web.Online.Controllers
|
||||
RefreshSessionProfileContact(userAccount);
|
||||
|
||||
// Check for uploaded profile image.
|
||||
ItemId userItemId = GetUserItemId(SessionData.User.UserAccountId);
|
||||
ItemId userItemId = userAccount.GetItemId();
|
||||
SaxItemImage itemImageAvatarUploaded = ItemDataMgr.GetItemImage(userItemId, Sax.ImageType.AvatarUpload, SaxItemImage.StatusCat.ActiveOnly);
|
||||
if (itemImageAvatarUploaded != null)
|
||||
{
|
||||
|
||||
@@ -33,6 +33,14 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
||||
public String AccountTitle { get; set; }
|
||||
public String AccountFirstName { get; set; }
|
||||
public String AccountLastName { get; set; }
|
||||
public String AccountGender { get; set; }
|
||||
public Sax.Gender GetAccountGender()
|
||||
{
|
||||
return (Sax.Gender)StringUtil.ToShort(AccountGender);
|
||||
}
|
||||
public String AccountDobDay { get; set; }
|
||||
public String AccountDobMonth{ get; set; }
|
||||
public String AccountDobYear{ get; set; }
|
||||
// Regions.
|
||||
public String AccountRegionIdCountry { get; set; }
|
||||
public String AccountRegionCaptionCountry { get; }
|
||||
@@ -60,8 +68,10 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Validate users's contact details.
|
||||
public bool ValidateContactDetails(SaxController_Base.AjaxResponse_Data responseData)
|
||||
{
|
||||
//---------------------------------------------------------------
|
||||
// Title.
|
||||
if (AccountTitle != null)
|
||||
{
|
||||
@@ -92,6 +102,31 @@ namespace Saxonite.Net.Core.Web.Online.Models
|
||||
responseData.SetControlError(nameof(AccountLastName), Localiser["msg.validation.maximum.length", GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName)]);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Date of birth.
|
||||
if (AccountDobYear != null)
|
||||
{
|
||||
responseData.SetControlValue(nameof(AccountDobYear), AccountDobYear);
|
||||
short dobYear = StringUtil.ToShort(AccountDobYear);
|
||||
if (!StringUtil.IsNumeric(AccountDobYear) || dobYear > DateTime.Today.Year)
|
||||
responseData.SetControlError(nameof(AccountDobYear), Localiser["msg.validation.invalid.value"]);
|
||||
}
|
||||
if (AccountDobMonth != null)
|
||||
{
|
||||
responseData.SetControlValue(nameof(AccountDobMonth), AccountDobMonth);
|
||||
short dobMonth = StringUtil.ToShort(AccountDobMonth);
|
||||
if (!StringUtil.IsEmpty(AccountDobMonth) && (!StringUtil.IsNumeric(AccountDobMonth) || dobMonth < 0 || dobMonth > 12))
|
||||
responseData.SetControlError(nameof(AccountDobMonth), Localiser["msg.validation.invalid.value"]);
|
||||
}
|
||||
if (AccountDobDay != null)
|
||||
{
|
||||
responseData.SetControlValue(nameof(AccountDobDay), AccountDobDay);
|
||||
short dobDay = StringUtil.ToShort(AccountDobDay);
|
||||
if (!StringUtil.IsEmpty(AccountDobDay) && (!StringUtil.IsNumeric(AccountDobDay) || dobDay < 0 || dobDay > 31))
|
||||
responseData.SetControlError(nameof(AccountDobDay), Localiser["msg.validation.invalid.value"]);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Country Region.
|
||||
if (AccountRegionIdCountry != null && SysId.IsValid(AccountRegionIdCountry.ToSysId()))
|
||||
{
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
<div class="sax-header">
|
||||
<div class="row">
|
||||
<div class="col"><div class="sax-caption">@Localiser["account.caption.profile.contact"]</div></div>
|
||||
<div class="col sax-action sax-edit"><div class="sax-caption">@Localiser["account.caption.profile.contact"]</div></div>
|
||||
<div class="fixed">
|
||||
@* Burger menu *@
|
||||
<ul class="nav navbar-nav navbar-light navbar-right sax-burger">
|
||||
@@ -86,7 +86,7 @@
|
||||
@* User email *@
|
||||
<div class="sax-form-control AccountEmailAddress">
|
||||
<div class="sax-label">
|
||||
<label for="ifAccountEmailAddress"><span><span class="required">*</span> @Localiser["label.email"]</span></label>
|
||||
<label for="ifAccountEmailAddress"><span>@Localiser["label.email"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
@Html.TextBoxFor(model => model.AccountEmailAddress, new { @id = "ifAccountEmailAddress", @class = "AccountEmailAddress sax-input", @readonly = "readonly", @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress) })
|
||||
@@ -100,7 +100,7 @@
|
||||
@* User first Title *@
|
||||
<div class="sax-form-control AccountTitle pr8">
|
||||
<div class="sax-label">
|
||||
<label for="cbAccountTitle"><span><span class="required"></span> @Localiser["label.title"]</span></label>
|
||||
<label for="cbAccountTitle"><span>@Localiser["label.title"]</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
@Html.DropDownListFor(model => model.AccountTitle, Model.TitlesForSelect, Localiser["label.select"], new { @id = "cbAccountTitle", @class = "AccountTitle sax-select" })
|
||||
@@ -113,7 +113,7 @@
|
||||
@* User first name *@
|
||||
<div class="sax-form-control AccountFirstName pr8">
|
||||
<div class="sax-label">
|
||||
<label for="ifAccountFirstName"><span><span class="required">*</span> @Localiser["label.first.name"]</span></label>
|
||||
<label for="ifAccountFirstName"><span>@Localiser["label.first.name"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
@Html.TextBoxFor(model => model.AccountFirstName, new { @id = "ifAccountFirstName", @class = "AccountFirstName sax-input", @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName) })
|
||||
@@ -126,7 +126,7 @@
|
||||
@* User last name *@
|
||||
<div class="sax-form-control AccountLastName">
|
||||
<div class="sax-label">
|
||||
<label for="ifAccountLastName"><span><span class="required">*</span> @Localiser["label.last.name"]</span></label>
|
||||
<label for="ifAccountLastName"><span>@Localiser["label.last.name"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
@Html.TextBoxFor(model => model.AccountLastName, new { @id = "ifAccountLastName", @class = "AccountLastName sax-input", @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName) })
|
||||
@@ -137,11 +137,91 @@
|
||||
|
||||
</div>
|
||||
|
||||
@* Gender *@
|
||||
<div class="sax-form-control AccountGender">
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
<div class="sax-label">
|
||||
<label for="cbAccountGender"><span>@Localiser["label.gender"]</span></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-8">
|
||||
<div class="sax-control">
|
||||
<select name="AccountGender" id="cbAccountGender" class="AccountGender sax-select"></select>
|
||||
</div>
|
||||
<div class="sax-message"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@* Date of birth *@
|
||||
<div class="row">
|
||||
|
||||
<div class="col-sm-4">
|
||||
<div class="sax-form-control AccountDob">
|
||||
<div class="sax-label">
|
||||
<label for="ifAccountRegionIdCountry"><span>@Localiser["label.date.of.birth"]</span></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-8">
|
||||
<div class="row">
|
||||
|
||||
@* DOB Day *@
|
||||
<div class="col-4">
|
||||
<div class="sax-form-control AccountDobDay pr8">
|
||||
<div class="sax-label">
|
||||
<label for="cbAccountDobDay"><span>@Localiser["label.day"]</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
<select name="AccountDobDay" id="cbAccountDobDay" class="AccountDobDay sax-select" onchange="sax.refreshDob();"></select>
|
||||
</div>
|
||||
<div class="sax-message"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@* DOB Month *@
|
||||
<div class="col-4">
|
||||
<div class="sax-form-control AccountDobMonth pr8">
|
||||
<div class="sax-label">
|
||||
<label for="cbAccountDobMonth"><span>@Localiser["label.month"]</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
<select name="AccountDobMonth" id="cbAccountDobMonth" class="AccountDobMonth sax-select" onchange="sax.refreshDob();"></select>
|
||||
</div>
|
||||
<div class="sax-message"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@* DOB Year *@
|
||||
<div class="col-4">
|
||||
<div class="sax-form-control AccountDobYear">
|
||||
<div class="sax-label">
|
||||
<label for="cbAccountDobYear"><span>@Localiser["label.year"]</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
<select name="AccountDobYear" id="cbAccountDobYear" class="AccountDobYear sax-select" onchange="sax.refreshDob();"></select>
|
||||
</div>
|
||||
<div class="sax-message"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@* Country Region *@
|
||||
<div class="sax-form-control AccountRegionIdCountry">
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
<div class="sax-label">
|
||||
<label for="ifAccountRegionIdCountry"><span><span class="required">*</span> @Localiser["label.country"]</span></label>
|
||||
<label for="ifAccountRegionIdCountry"><span>@Localiser["label.country"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-8">
|
||||
<div class="sax-control row">
|
||||
@Html.HiddenFor(model => model.AccountRegionIdCountry, new { @id = "ifAccountRegionIdCountry", @class = "AccountRegionIdCountry" })
|
||||
<div class="col"><input type="text" id="ifAccountRegionCaptionCountry" class="AccountRegionCaptionCountry sax-input" readonly="readonly" onDblClick="sax.selectRegionCountry()" /></div>
|
||||
@@ -149,6 +229,8 @@
|
||||
</div>
|
||||
<div class="sax-message"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@* Account image *@
|
||||
<div class="sax-form-control AccountContactImage">
|
||||
@@ -206,6 +288,8 @@
|
||||
}
|
||||
</div>
|
||||
|
||||
<div class="spacer2"></div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
@* Sport *@
|
||||
<div class="sax-form-control ProfileSportId">
|
||||
<div class="sax-label">
|
||||
<label for="ifProfileSport"><span><span class="required">*</span> @Localiser["label.sport"]</span></label>
|
||||
<label for="ifProfileSport"><span>@Localiser["label.sport"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control row">
|
||||
<input type="hidden" id="ifProfileSportId" class="ProfileSportId" name="ProfileSportId" />
|
||||
@@ -89,7 +89,7 @@
|
||||
@* 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>
|
||||
<label for="cbProfileSportParticipation"><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" })
|
||||
@@ -100,7 +100,7 @@
|
||||
@* 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>
|
||||
<label for="cbProfileSportOfficiating"><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" })
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
@* Contact Email Address *@
|
||||
<div class="sax-form-control ContactEmailAddress">
|
||||
<div class="sax-label">
|
||||
<label for="ifContactEmailAddress"><span><span class="required">*</span> @Localiser["label.email"]</span></label>
|
||||
<label for="ifContactEmailAddress"><span>@Localiser["label.email"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
<input type="text" id="ifContactEmailAddress" name="ContactEmailAddress" class="ContactEmailAddress sax-input" autocomplete="off" maxlength="@Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress)" />
|
||||
@@ -44,7 +44,7 @@
|
||||
@* Contact First Name *@
|
||||
<div class="sax-form-control ContactFirstName pr4">
|
||||
<div class="sax-label">
|
||||
<label for="cbContactFirstName"><span><span class="required">*</span> @Localiser["label.first.name"]</span></label>
|
||||
<label for="cbContactFirstName"><span>@Localiser["label.first.name"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
<input type="text" id="ifContactFirstName" name="ContactFirstName" class="ContactFirstName sax-input" autocomplete="off" maxlength="@Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName)" />
|
||||
@@ -59,7 +59,7 @@
|
||||
@* Contact Last Name *@
|
||||
<div class="sax-form-control ContactLastName pr4">
|
||||
<div class="sax-label">
|
||||
<label for="cbContactLastName"><span><span class="required">*</span> @Localiser["label.last.name"]</span></label>
|
||||
<label for="cbContactLastName"><span>@Localiser["label.last.name"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
<input type="text" id="ifContactLastName" name="ContactLastName" class="ContactLastName sax-input" autocomplete="off" maxlength="@Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName)" />
|
||||
@@ -82,7 +82,7 @@
|
||||
@* Organisation name *@
|
||||
<div class="sax-form-control OrganisationName">
|
||||
<div class="sax-label">
|
||||
<label for="ifOrganisationName"><span><span class="required">*</span> @Localiser["label.name"]</span></label>
|
||||
<label for="ifOrganisationName"><span>@Localiser["label.name"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
<input type="text" id="ifOrganisationName" name="OrganisationName" class="OrganisationName sax-input" autocomplete="off" maxlength="@Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.Organisation_Name)" />
|
||||
@@ -97,7 +97,7 @@
|
||||
@* Organisation category *@
|
||||
<div class="sax-form-control OrganisationCategory pr4">
|
||||
<div class="sax-label">
|
||||
<label for="cbOrganisationCategory"><span><span class="required">*</span> @Localiser["label.category"]</span></label>
|
||||
<label for="cbOrganisationCategory"><span>@Localiser["label.category"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
@Html.DropDownList("", Model.OrganisationCategoriesForSelect, Localiser["label.select"], new { @id = "cbOrganisationCategory", @name = "OrganisationCategory", @class = "OrganisationCategory sax-select" })
|
||||
@@ -112,7 +112,7 @@
|
||||
@* Organisation type *@
|
||||
<div class="sax-form-control OrganisationType">
|
||||
<div class="sax-label">
|
||||
<label for="cbOrganisationType"><span><span class="required">*</span> @Localiser["label.type"]</span></label>
|
||||
<label for="cbOrganisationType"><span>@Localiser["label.type"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
@Html.DropDownList("", Model.OrganisationTypesForSelect, Localiser["label.select"], new { @id = "cbOrganisationType", @name = "OrganisationType", @class = "OrganisationType sax-select" })
|
||||
@@ -127,7 +127,7 @@
|
||||
@* Organisation sport *@
|
||||
<div class="sax-form-control OrganisationSportId">
|
||||
<div class="sax-label">
|
||||
<label for="ifOrganisationSportCaption"><span><span class="required">*</span> @Localiser["label.sport"]</span></label>
|
||||
<label for="ifOrganisationSportCaption"><span>@Localiser["label.sport"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control row">
|
||||
<input type="hidden" id="ifOrganisationSportId" name="OrganisationSportId" OrganisationSportId"" class="OrganisationSportId" />
|
||||
@@ -140,7 +140,7 @@
|
||||
@* Organisation country *@
|
||||
<div class="sax-form-control OrganisationRegionIdCountry">
|
||||
<div class="sax-label">
|
||||
<label for="ifOrganisationRegionCaption"><span><span class="required">*</span> @Localiser["label.country"]</span></label>
|
||||
<label for="ifOrganisationRegionCaption"><span>@Localiser["label.country"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control row">
|
||||
<input type="hidden" id="ifOrganisationRegionIdCountry" name="OrganisationRegionIdCountry" OrganisationRegionIdCountry"" class="OrganisationRegionIdCountry" />
|
||||
@@ -153,7 +153,7 @@
|
||||
@* Organisation address - Line 1 *@
|
||||
<div class="sax-form-control OrganisationAddressLine1">
|
||||
<div class="sax-caption">
|
||||
<label for="ifOrganisationAddressLine1"><span><span class="required">*</span> @Localiser["label.organisation.address"]</span></label>
|
||||
<label for="ifOrganisationAddressLine1"><span>@Localiser["label.organisation.address"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control row">
|
||||
<div class="col"><input type="text" id="ifOrganisationAddressLine1" name="OrganisationAddressLine1" class="OrganisationAddressLine1 sax-input" autocomplete="off" maxlength="@Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.ItemAddress_Line1)" /> </div>
|
||||
@@ -180,7 +180,7 @@
|
||||
@* Organisation address - Town *@
|
||||
<div class="sax-form-control OrganisationAddressTown">
|
||||
<div class="sax-label">
|
||||
<label for="ifOrganisationAddressTown"><span><span class="required">*</span> @Localiser["label.town"]</span></label>
|
||||
<label for="ifOrganisationAddressTown"><span>@Localiser["label.town"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control row">
|
||||
<div class="col"><input type="text" id="ifOrganisationAddressTown" name="OrganisationAddressTown" class="OrganisationAddressTown sax-input" autocomplete="off" maxlength="@Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.ItemAddress_Town)" /> </div>
|
||||
@@ -191,7 +191,7 @@
|
||||
@* Organisation address - Province *@
|
||||
<div class="sax-form-control OrganisationAddressProvince">
|
||||
<div class="sax-label">
|
||||
<label for="ifOrganisationAddressProvince"><span><span class="required">*</span> @Localiser["label.province"]</span></label>
|
||||
<label for="ifOrganisationAddressProvince"><span>@Localiser["label.province"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control row">
|
||||
<div class="col"><input type="text" id="ifOrganisationAddressProvince" name="OrganisationAddressProvince" class="OrganisationAddressProvince sax-input" autocomplete="off" maxlength="@Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.ItemAddress_Province)" /> </div>
|
||||
@@ -202,7 +202,7 @@
|
||||
@* Organisation address - PostalCode *@
|
||||
<div class="sax-form-control OrganisationAddressPostalCode">
|
||||
<div class="sax-label">
|
||||
<label for="ifOrganisationAddressPostalCode"><span><span class="required">*</span> @Localiser["label.postalCode"]</span></label>
|
||||
<label for="ifOrganisationAddressPostalCode"><span>@Localiser["label.postalCode"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control row">
|
||||
<div class="col"><input type="text" id="ifOrganisationAddressPostalCode" name="OrganisationAddressPostalCode" class="OrganisationAddressPostalCode sax-input" autocomplete="off" maxlength="@Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.ItemAddress_PostalCode)" /> </div>
|
||||
@@ -214,7 +214,7 @@
|
||||
@*
|
||||
<div class="sax-form-control OrganisationPhoneMain">
|
||||
<div class="sax-label">
|
||||
<label for="ifOrganisationPhoneMain"><span><span class="required">*</span> @Localiser["label.phone"]</span></label>
|
||||
<label for="ifOrganisationPhoneMain"><span>@Localiser["label.phone"]</span></label>
|
||||
</div>
|
||||
<div class="sax-control row">
|
||||
<div class="col"><input type="text" id="ifOrganisationPhoneMain" name="OrganisationPhoneMain" class="OrganisationPhoneMain sax-input" autocomplete="off" maxlength="@Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.Item_PhoneMain)" /> </div>
|
||||
|
||||
@@ -47,18 +47,21 @@ else
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@* Activities *@
|
||||
@* Results panel *@
|
||||
<div class="sax-panel-results">
|
||||
<div class="sax-panel-messages"></div>
|
||||
<div class="sax-panel-item-list"></div>
|
||||
|
||||
@* Item templates *@
|
||||
<div class="sax-panel-item-template">
|
||||
@* Activity template *@
|
||||
<div class="sax-panel-item Activity">
|
||||
<div class="sax-header row">
|
||||
<div class="col">
|
||||
<div class="sax-caption">
|
||||
<div class="row">
|
||||
<div class="col"><div class="sax-action ActivityCaption"></div></div>
|
||||
<div class="col right"><div class="sax-action ActivityOrganisation"></div></div>
|
||||
<div class="col center"><div class="sax-action ActivityOrganisation"></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
@* Member Email Address *@
|
||||
<div class="sax-form-control MemberEmailAddress">
|
||||
<div class="sax-label">
|
||||
<label for="ifMemberEmailAddress"><span><span class="required">*</span> @Localiser["label.email"]</span></label>
|
||||
<label for="ifMemberEmailAddress"><span>@Localiser["label.email"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
<input type="text" name="MemberEmailAddress" class="MemberEmailAddress sax-input" autocomplete="off" readonly="readonly" maxlength="@(Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress))" />
|
||||
@@ -53,7 +53,7 @@
|
||||
@* User Title *@
|
||||
<div class="sax-form-control MemberTitle">
|
||||
<div class="sax-label">
|
||||
<label for="cbMemberTitle"><span><span class="required">*</span> @Localiser["label.title"]</span></label>
|
||||
<label for="cbMemberTitle"><span>@Localiser["label.title"]</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
<select id="cbMemberTitle" name="MemberTitle" class="MemberTitle sax-input"></select>
|
||||
@@ -66,7 +66,7 @@
|
||||
@* User First Name *@
|
||||
<div class="sax-form-control MemberFirstName">
|
||||
<div class="sax-label">
|
||||
<label for="ifMemberFirstName"><span><span class="required">*</span> @Localiser["label.first.name"]</span></label>
|
||||
<label for="ifMemberFirstName"><span>@Localiser["label.first.name"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
<input type="text" id="ifMemberFirstName" name="MemberFirstName" class="MemberFirstName sax-input" autocomplete="off" maxlength="@(Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_FirstName))" />
|
||||
@@ -79,7 +79,7 @@
|
||||
@* User Last Name *@
|
||||
<div class="sax-form-control MemberLastName">
|
||||
<div class="sax-label">
|
||||
<label for="ifMemberLastName"><span><span class="required">*</span> @Localiser["label.last.name"]</span></label>
|
||||
<label for="ifMemberLastName"><span>@Localiser["label.last.name"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
<input type="text" id="ifMemberLastName" name="MemberLastName" class="MemberLastName sax-input" autocomplete="off" maxlength="@(Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_LastName))" />
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
@* Opportunity type *@
|
||||
<div class="sax-form-control OpportunityTypeCode">
|
||||
<div class="sax-label">
|
||||
<label for="cbOpportunityType"><span><span class="required">*</span> @Localiser["label.type"]</span></label>
|
||||
<label for="cbOpportunityType"><span>@Localiser["label.type"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
<select id="cbOpportunityType" class="OpportunityType sax-select" name="OpportunityTypeCode"></select>
|
||||
@@ -36,7 +36,7 @@
|
||||
@* Opportunity position *@
|
||||
<div class="sax-form-control OpportunityPosition">
|
||||
<div class="sax-label">
|
||||
<label for="ifOpportunityPosition"><span><span class="required">*</span> @Localiser["label.position"]</span></label>
|
||||
<label for="ifOpportunityPosition"><span>@Localiser["label.position"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
@Html.TextBoxFor(model => model.OpportunityPosition, new { @id = "ifOpportunityPosition", @class = "OpportunityPosition sax-input", @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationOpportunity_Position) })
|
||||
@@ -47,7 +47,7 @@
|
||||
@* Opportunity outline *@
|
||||
<div class="sax-form-control OpportunityOutline">
|
||||
<div class="sax-label">
|
||||
<label for="ifOpportunityOutline"><span><span class="required">*</span> @Localiser["label.outline"]</span></label>
|
||||
<label for="ifOpportunityOutline"><span>@Localiser["label.outline"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
@Html.TextAreaFor(model => model.OpportunityOutline, new { @id = "ifOpportunityOutline", @class = "OpportunityOutline sax-input", @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.OrganisationOpportunity_Outline) })
|
||||
@@ -58,7 +58,7 @@
|
||||
@* Sport *@
|
||||
<div class="sax-form-control OpportunitySportId">
|
||||
<div class="sax-label">
|
||||
<label for="ifOpportunitySportCaption"><span><span class="required">*</span> @Localiser["label.sport"]</span></label>
|
||||
<label for="ifOpportunitySportCaption"><span>@Localiser["label.sport"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control row">
|
||||
@Html.HiddenFor(model => model.OpportunitySportId, new { @id = "ifOpportunitySportId", @class = "OpportunitySportId" })
|
||||
@@ -71,7 +71,7 @@
|
||||
@* Region *@
|
||||
<div class="sax-form-control OpportunityRegionId">
|
||||
<div class="sax-label">
|
||||
<label for="ifOpportunityRegionCaption"><span><span class="required">*</span> @Localiser["label.region"]</span></label>
|
||||
<label for="ifOpportunityRegionCaption"><span>@Localiser["label.region"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control row">
|
||||
@Html.HiddenFor(model => model.OpportunityRegionId, new { @id = "ifOpportunityRegionId", @class = "OpportunityRegionId" })
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
/* Current password - required when setting password within user session. */
|
||||
<div class="spacer4"></div>
|
||||
<div class="sax-form-control PasswordCurrent">
|
||||
<div class="sax-label"><label for="ifPasswordCurrent"><span><span class="required">*</span> @Localiser["label.password.current"]</span></label></div>
|
||||
<div class="sax-label"><label for="ifPasswordCurrent"><span>@Localiser["label.password.current"]</span><span class="required"> *</span></label></div>
|
||||
<div class="sax-control">
|
||||
@Html.PasswordFor(model => model.PasswordCurrent, new { @id = "ifPasswordCurrent", @class = "sax-input", @maxlength = Model.PasswordMaxLength })
|
||||
</div>
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
<div class="spacer4"></div>
|
||||
<div class="sax-form-control Password">
|
||||
<div class="sax-label"><label for="ifPassword"><span><span class="required">*</span> @Localiser["label.password"]</span></label></div>
|
||||
<div class="sax-label"><label for="ifPassword"><span>@Localiser["label.password"]</span><span class="required"> *</span></label></div>
|
||||
<div class="sax-control">
|
||||
@Html.PasswordFor(model => model.Password, new { @id = "ifPassword", @class = "sax-input", @maxlength = Model.PasswordMaxLength })
|
||||
</div>
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
<div class="spacer4"></div>
|
||||
<div class="sax-form-control PasswordConfirm">
|
||||
<div class="sax-label"><label for="ifPasswordConfirm"><span><span class="required">*</span> @Localiser["label.password.confirm"]</span></label></div>
|
||||
<div class="sax-label"><label for="ifPasswordConfirm"><span>@Localiser["label.password.confirm"]</span><span class="required"> *</span></label></div>
|
||||
<div class="sax-control">
|
||||
@Html.PasswordFor(model => model.PasswordConfirm, new { @id = "ifPasswordConfirm", @class = "sax-input", @maxlength = Model.PasswordMaxLength })
|
||||
</div>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<div class="spacer4"></div>
|
||||
<div class="sax-form-control EmailAddress">
|
||||
<div class="sax-label">
|
||||
<label for="ifEmailAddress"><span><span class="required">*</span> @Localiser["label.email.address"]</span></label>
|
||||
<label for="ifEmailAddress"><span>@Localiser["label.email.address"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
@Html.TextBoxFor(model => model.EmailAddress, new { @id = "ifEmailAddress", @class = "sax-input lower", @maxlength = "128" })
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<div class="spacer4"></div>
|
||||
<div class="sax-form-control EmailAddress">
|
||||
<div class="sax-label">
|
||||
<label for="ifEmailAddress"><span><span class="required">*</span> @Localiser["label.email.address"]</span></label>
|
||||
<label for="ifEmailAddress"><span>@Localiser["label.email.address"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
<div class="sax-control">
|
||||
@Html.TextBoxFor(model => model.EmailAddress, new { @id = "ifEmailAddress", @class = "sax-input lower", @maxlength = @Model.GetControlMaxLength(SaxDbDfn_Core.ColumnIdx.UserAccount_EmailAddress) })
|
||||
@@ -31,7 +31,7 @@
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="sax-label">
|
||||
<label for="ifPassword"><span><span class="required">*</span> @Localiser["label.password"]</span></label>
|
||||
<label for="ifPassword"><span>@Localiser["label.password"]</span><span class="required"> *</span></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
{
|
||||
"use strict";
|
||||
sax.classFileDrag = 'sax-file-drag';
|
||||
let $pnl = sax.$pnl, $dlg = sax.$dlg, $frm = sax.$frm;
|
||||
sax.profile = { contact: {}, sports: {}, organisations: {} };
|
||||
|
||||
//--------------------------------------------------------------
|
||||
@@ -39,7 +40,7 @@
|
||||
}
|
||||
sax.onRefreshProfileContactInfo = function (response)
|
||||
{
|
||||
//sax.debug('onRefreshProfileContactInfo', response);
|
||||
sax.debug('onRefreshProfileContactInfo', response);
|
||||
if (!response || !response.success || !response.contact) return;
|
||||
$('.sax-panel-section').show();
|
||||
var $section = $('.sax-panel-section.ProfileContact');
|
||||
@@ -56,6 +57,8 @@
|
||||
{
|
||||
//sax.debug('onRefreshProfileContactForm', response);
|
||||
if (!response || !response.success) return;
|
||||
sax.data.genders = response.genders;
|
||||
sax.data.months = response.months;
|
||||
$('.sax-panel-section').hide();
|
||||
var $section = $('.sax-panel-section.ProfileContact').show();
|
||||
$('.sax-message', $section).stop(true, false).fadeOut(200).empty();
|
||||
@@ -63,6 +66,16 @@
|
||||
sax.refreshSelect($section, 'AccountTitle', response.contact.title);
|
||||
sax.refreshInput($section, 'AccountFirstName', response.contact.firstName);
|
||||
sax.refreshInput($section, 'AccountLastName', response.contact.lastName);
|
||||
let $selGender = $('#cbAccountGender');
|
||||
if (response.genders && response.genders.length)
|
||||
sax.populateSelectCodeDesc($('#cbAccountGender'), response.genders);
|
||||
sax.refreshSelect($section, 'AccountGender', response.contact.gender || '');
|
||||
sax.refreshDob();
|
||||
sax.refreshSelect($section, 'AccountDobYear', response.contact.dobYear);
|
||||
sax.refreshDob();
|
||||
sax.refreshSelect($section, 'AccountDobMonth', response.contact.dobMonth);
|
||||
sax.refreshDob();
|
||||
sax.refreshSelect($section, 'AccountDobDay', response.contact.dobDay);
|
||||
sax.refreshInput($section, 'AccountRegionIdCountry', response.contact.regionIdCountry);
|
||||
sax.refreshInput($section, 'AccountRegionCaptionCountry', response.contact.regionCaptionCountry);
|
||||
sax.refreshInput($section, 'AccountRegionIdProvince', response.contact.regionIdProvince);
|
||||
@@ -84,6 +97,45 @@
|
||||
sax.refreshProfileContactInfo();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.refreshDob = function ()
|
||||
{
|
||||
//sax.debug('refreshDob', $('#cbAccountDobYear').val(), $('#cbAccountDobMonth').val(), $('#cbAccountDobDay').val());
|
||||
let now = new Date();
|
||||
let $selDobYear = $('#cbAccountDobYear');
|
||||
if (!$('option', $selDobYear).length)
|
||||
{
|
||||
$selDobYear.append($('<option>'));
|
||||
for (let y = now.getFullYear(); y >= now.getFullYear() - 110 - now.getFullYear() % 10; y--)
|
||||
$selDobYear.append($('<option>').prop('value', y).text(y));
|
||||
}
|
||||
let yearVal = $selDobYear.val();
|
||||
let $selDobMonth = $('#cbAccountDobMonth');
|
||||
if (!$('option', $selDobMonth).length)
|
||||
{
|
||||
$selDobMonth.append($('<option>'));
|
||||
for (let m = 1; m <= sax.data.months.length; m++)
|
||||
$selDobMonth.append($('<option>').prop('value', m).text(sax.data.months[m - 1].desc));
|
||||
}
|
||||
if (!yearVal)
|
||||
$selDobMonth.val('');
|
||||
$selDobMonth.prop('disabled', !yearVal);
|
||||
let monthVal = $selDobMonth.val();
|
||||
let $selDobDay = $('#cbAccountDobDay');
|
||||
let dayVal = $selDobDay.val();
|
||||
$selDobDay.empty();
|
||||
if (!!yearVal && !!monthVal)
|
||||
{
|
||||
$selDobDay.append($('<option>'));
|
||||
for (let dt = new Date(yearVal, monthVal - 1, 1); dt.getMonth() == monthVal - 1; dt.setDate(dt.getDate() + 1))
|
||||
$selDobDay.append($('<option>').prop('value', dt.getDate()).text(dt.getDate()));
|
||||
$selDobDay.val(dayVal);
|
||||
}
|
||||
if (!monthVal)
|
||||
$selDobDay.val('');
|
||||
$selDobDay.prop('disabled', !monthVal);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
sax.selectRegionCountry = function ()
|
||||
{
|
||||
@@ -132,19 +184,19 @@
|
||||
$('img.ContactImageUploadProgress', context).hide();
|
||||
if (response.success)
|
||||
{
|
||||
sax.$dlg.selectContactImage.dialog('close');
|
||||
$dlg.selectContactImage.dialog('close');
|
||||
$('img.AccountContact', $section).prop('src', 'Image/Account/Contact/Profile?' + (new Date()).getTime());
|
||||
}
|
||||
}
|
||||
sax.selectContactImage = function ()
|
||||
{
|
||||
let $dlg = sax.$dlg.selectContactImage.dialog('option', { title: sax.dlg.title.imageUpload });
|
||||
let $dlg = $dlg.selectContactImage.dialog('option', { title: sax.dlg.title.imageUpload });
|
||||
$('#ifContactImage', $dlg).val('');
|
||||
sax.openDialog($dlg, 560, 240);
|
||||
}
|
||||
sax.uploadContactImage = function ()
|
||||
{
|
||||
let $dlg = sax.$dlg.selectContactImage;
|
||||
let $dlg = $dlg.selectContactImage;
|
||||
let $fileCtrl = $('#ifContactImage', $dlg);
|
||||
if (!$fileCtrl.length || !$fileCtrl[0].files.length)
|
||||
return sax.doAlert(sax.dlg.title.imageUpload, sax.msg.uploadFileSelect);
|
||||
@@ -200,7 +252,7 @@
|
||||
sax.addProfileSport = function ()
|
||||
{
|
||||
//sax.debug('addProfileSport');
|
||||
let $dlg = sax.$dlg.profileSport;
|
||||
let $dlg = $dlg.profileSport;
|
||||
$('.UserSportId,.ProfileSportExists,#ifProfileSportId,input.sax-input,select.sax-select', $dlg).val('');
|
||||
$('.SelectSport', $dlg).show();
|
||||
$dlg.dialog('option', 'title', sax.dlg.title.addUserSport);
|
||||
@@ -216,7 +268,7 @@
|
||||
sax.doUpdateProfileSport = function (response)
|
||||
{
|
||||
//sax.debug('doUpdateProfileSport', response);
|
||||
let $dlg = sax.$dlg.profileSport;
|
||||
let $dlg = $dlg.profileSport;
|
||||
let item = response.sport;
|
||||
$('.UserSportId', $dlg).val(item.id);
|
||||
$('.ProfileSportExists', $dlg).val(1);
|
||||
@@ -250,7 +302,7 @@
|
||||
{
|
||||
sax.refreshControlValues(response.controlValues);
|
||||
if (!response || !response.success) return;
|
||||
sax.$dlg.profileSport.dialog('close');
|
||||
$dlg.profileSport.dialog('close');
|
||||
sax.refreshProfileSportsInfo();
|
||||
}
|
||||
|
||||
@@ -353,11 +405,11 @@
|
||||
var opt = sax.dlgOpts();
|
||||
opt.buttons[sax.dlg.btn.ok] = function () { sax.storeProfileSport(); };
|
||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
||||
sax.$dlg.profileSport = $('#dlgProfileSport').dialog(opt);
|
||||
$dlg.profileSport = $('#dlgProfileSport').dialog(opt);
|
||||
var opt = sax.dlgOpts();
|
||||
opt.buttons[sax.dlg.btn.ok] = function () { sax.uploadContactImage(); };
|
||||
opt.buttons[sax.dlg.btn.cancel] = function () { $(this).dialog('close'); };
|
||||
sax.$dlg.selectContactImage = $('#dlgSelectContactImage').dialog(opt);
|
||||
$dlg.selectContactImage = $('#dlgSelectContactImage').dialog(opt);
|
||||
|
||||
setTimeout(sax.refreshProfile, 200);
|
||||
});
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
var $items = $('.sax-panel-item-list', $pnl.results).fadeOut(200).empty();
|
||||
var $msgs = $('.sax-panel-messages', $pnl.results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||
}
|
||||
sax.ajaxRefreshResults = sax.ajaxRefreshResults || { url: sax.url.base + 'Article/Ajax/GetList', formId: 'frmArticleFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajaxRefreshResults, delay || 50);
|
||||
sax.ajax.refreshResults = sax.ajax.refreshResults || { url: sax.url.base + 'Article/Ajax/GetList', formId: 'frmArticleFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajax.refreshResults, delay || 50);
|
||||
sax.awaitingRefreshResponse = true;
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
@@ -321,8 +321,8 @@
|
||||
sax.updateItem = function (id)
|
||||
{
|
||||
$('.ArticleId', $frm.articleId).val(id);
|
||||
sax.ajaxUpdateItem = sax.ajaxUpdateItem || { url: sax.url.base + 'Article/Ajax/GetItem', formId: 'frmArticleId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajaxUpdateItem, 50);
|
||||
sax.ajax.updateItem = sax.ajax.updateItem || { url: sax.url.base + 'Article/Ajax/GetItem', formId: 'frmArticleId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajax.updateItem, 50);
|
||||
}
|
||||
sax.onUpdateItem = function (response)
|
||||
{
|
||||
@@ -383,8 +383,8 @@
|
||||
//--------------------------------------------------------------
|
||||
sax.storeItem = function ()
|
||||
{
|
||||
sax.ajaxStoreItem = sax.ajaxStoreItem || { url: sax.url.base + 'Article/Ajax/StoreItem', formId: 'frmArticle', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajaxStoreItem, 50);
|
||||
sax.ajax.storeItem = sax.ajax.storeItem || { url: sax.url.base + 'Article/Ajax/StoreItem', formId: 'frmArticle', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajax.storeItem, 50);
|
||||
}
|
||||
sax.onStoreItem = function (response)
|
||||
{
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
var $items = $('.sax-panel-item-list', $results).fadeOut(200).empty();
|
||||
var $msgs = $('.sax-panel-messages', $results).hide().empty().append($('<div class="sax-message">' + sax.msg.dataQuerying + '</div>')).fadeIn(200);
|
||||
}
|
||||
sax.ajaxRefreshResults = sax.ajaxRefreshResults || { url: sax.url.base + 'Organisation/Ajax/GetOpportunityList', formId: 'frmOpportunityFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajaxRefreshResults, delay || 50);
|
||||
sax.ajax.refreshResults = sax.ajax.refreshResults || { url: sax.url.base + 'Organisation/Ajax/GetOpportunityList', formId: 'frmOpportunityFilter', callbackFn: sax.doRefreshResults };
|
||||
sax.doAjaxRequest(sax.ajax.refreshResults, delay || 50);
|
||||
sax.awaitingRefreshResponse = true;
|
||||
}
|
||||
sax.doRefreshResults = function (response)
|
||||
@@ -88,8 +88,8 @@
|
||||
sax.data.memberOrganisations = response.organisations;
|
||||
if (fnCallback) fnCallback();
|
||||
}
|
||||
sax.ajaxUserOrgs = sax.ajaxUserOrgs || { url: sax.url.base + 'Organisation/Ajax/GetMemberOrganisationList', formId: 'frmNavigate', callbackFn: handleMemberOrganisationsResponse };
|
||||
sax.doAjaxRequest(sax.ajaxUserOrgs);
|
||||
sax.ajax.userOrgs = sax.ajax.userOrgs || { url: sax.url.base + 'Organisation/Ajax/GetMemberOrganisationList', formId: 'frmNavigate', callbackFn: handleMemberOrganisationsResponse };
|
||||
sax.doAjaxRequest(sax.ajax.userOrgs);
|
||||
}
|
||||
sax.showSelectOrganisation = function ()
|
||||
{
|
||||
@@ -149,8 +149,8 @@
|
||||
{
|
||||
if (!sax.data.userCanManageOpportunities) return;
|
||||
$('.OpportunityId', sax.$frm.opportunityId).val(id);
|
||||
sax.ajaxUpdateItem = sax.ajaxUpdateItem || { url: sax.url.base + 'Organisation/Ajax/GetOpportunity', formId: 'frmOpportunityId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajaxUpdateItem, 50);
|
||||
sax.ajax.updateItem = sax.ajax.updateItem || { url: sax.url.base + 'Organisation/Ajax/GetOpportunity', formId: 'frmOpportunityId', callbackFn: sax.onUpdateItem };
|
||||
sax.doAjaxRequest(sax.ajax.updateItem, 50);
|
||||
}
|
||||
sax.onUpdateItem = function (response)
|
||||
{
|
||||
@@ -181,8 +181,8 @@
|
||||
//--------------------------------------------------------------
|
||||
sax.storeItem = function ()
|
||||
{
|
||||
sax.ajaxStoreItem = sax.ajaxStoreItem || { url: sax.url.base + 'Organisation/Ajax/StoreOpportunity', formId: 'frmOpportunity', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajaxStoreItem, 50);
|
||||
sax.ajax.storeItem = sax.ajax.storeItem || { url: sax.url.base + 'Organisation/Ajax/StoreOpportunity', formId: 'frmOpportunity', callbackFn: sax.onStoreItem };
|
||||
sax.doAjaxRequest(sax.ajax.storeItem, 50);
|
||||
}
|
||||
sax.onStoreItem = function (response)
|
||||
{
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
sax.doSignin = function ()
|
||||
{
|
||||
sax.clearControlErrors();
|
||||
sax.ajaxSignin = sax.ajaxSignin || { url: sax.url.base + 'Security/Ajax/Signin', formId: 'frmSignIn', callbackFn: sax.onSignin };
|
||||
sax.doAjaxRequest(sax.ajaxSignin, 50);
|
||||
sax.ajax.signin = sax.ajax.signin || { url: sax.url.base + 'Security/Ajax/Signin', formId: 'frmSignIn', callbackFn: sax.onSignin };
|
||||
sax.doAjaxRequest(sax.ajax.signin, 50);
|
||||
}
|
||||
sax.onSignin = function (response)
|
||||
{
|
||||
@@ -23,8 +23,8 @@
|
||||
//--------------------------------------------------------------
|
||||
sax.doScorePassword = function ()
|
||||
{
|
||||
sax.ajaxScorePassword = sax.ajaxScorePassword || { url: sax.url.base + 'Security/Ajax/ScorePassword', formId: 'frmChangePassword', callbackFn: sax.onScorePassword, noWaitIcon: true };
|
||||
sax.doAjaxRequest(sax.ajaxScorePassword, 250);
|
||||
sax.ajax.scorePassword = sax.ajax.scorePassword || { url: sax.url.base + 'Security/Ajax/ScorePassword', formId: 'frmChangePassword', callbackFn: sax.onScorePassword, noWaitIcon: true };
|
||||
sax.doAjaxRequest(sax.ajax.scorePassword, 250);
|
||||
}
|
||||
sax.onScorePassword = function (response)
|
||||
{
|
||||
@@ -36,8 +36,8 @@
|
||||
sax.doChangePassword = function ()
|
||||
{
|
||||
sax.clearControlErrors();
|
||||
sax.ajaxChangePassword = sax.ajaxChangePassword || { url: sax.url.base + 'Security/Ajax/StorePassword', formId: 'frmChangePassword', callbackFn: sax.onChangePassword };
|
||||
sax.doAjaxRequest(sax.ajaxChangePassword, 50);
|
||||
sax.ajax.changePassword = sax.ajax.changePassword || { url: sax.url.base + 'Security/Ajax/StorePassword', formId: 'frmChangePassword', callbackFn: sax.onChangePassword };
|
||||
sax.doAjaxRequest(sax.ajax.changePassword, 50);
|
||||
}
|
||||
sax.onChangePassword = function (response)
|
||||
{
|
||||
@@ -52,8 +52,8 @@
|
||||
sax.doRequestPassword = function ()
|
||||
{
|
||||
sax.clearControlErrors();
|
||||
sax.ajaxRequestPassword = sax.ajaxRequestPassword || { url: sax.url.base + 'Security/Ajax/RequestNewPassword', formId: 'frmRequestPassword', callbackFn: sax.onRequestPassword };
|
||||
sax.doAjaxRequest(sax.ajaxRequestPassword, 50);
|
||||
sax.ajax.requestPassword = sax.ajax.requestPassword || { url: sax.url.base + 'Security/Ajax/RequestNewPassword', formId: 'frmRequestPassword', callbackFn: sax.onRequestPassword };
|
||||
sax.doAjaxRequest(sax.ajax.requestPassword, 50);
|
||||
}
|
||||
sax.onRequestPassword = function (response)
|
||||
{
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
public static class Version
|
||||
{
|
||||
private static String version { get; } = "1.1.4.0";
|
||||
private static String version { get; } = "1.1.4.1";
|
||||
// Retrieve version.
|
||||
public static String GetFullVersion () { return version; }
|
||||
public static String GetAppVersion ()
|
||||
|
||||
@@ -89,6 +89,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
{
|
||||
YesNo,
|
||||
DataItemType,
|
||||
Gender,
|
||||
SportParticipation,
|
||||
SportOfficiating,
|
||||
RegionType,
|
||||
@@ -154,6 +155,19 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
ItemSport = 420,
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public enum Gender
|
||||
{
|
||||
Unknown = 0,
|
||||
/* Do not change the numeric values - tied to database. */
|
||||
Female = 1,
|
||||
Male = 2,
|
||||
TransFemale = 10,
|
||||
TransMale = 11,
|
||||
Nonconforming = 20,
|
||||
PreferNotToSay = 99,
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
public enum RegionType
|
||||
{
|
||||
|
||||
@@ -6,7 +6,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Base.App
|
||||
{
|
||||
@@ -212,7 +212,10 @@ namespace Saxonite.Base.App
|
||||
UserAccount_PhoneMain,
|
||||
UserAccount_PhoneMobile,
|
||||
UserAccount_PhoneAlt,
|
||||
UserAccount_DateOfBirth,
|
||||
UserAccount_Gender,
|
||||
UserAccount_DateOfBirthDay,
|
||||
UserAccount_DateOfBirthMonth,
|
||||
UserAccount_DateOfBirthYear,
|
||||
UserAccount_RegionIdCountry,
|
||||
UserAccount_RegionIdProvince,
|
||||
UserAccount_PasswordToken,
|
||||
@@ -306,7 +309,7 @@ namespace Saxonite.Base.App
|
||||
//-------------------------------------------------------------------
|
||||
// Data members.
|
||||
private static readonly int tableCount = 15;
|
||||
private static readonly int columnCount = 262;
|
||||
private static readonly int columnCount = 265;
|
||||
private static ulong maxTextLen = 0;
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
@@ -666,7 +669,10 @@ namespace Saxonite.Base.App
|
||||
new ColumnDfn(10,"PhoneMain",0,-9,false,50),
|
||||
new ColumnDfn(10,"PhoneMobile",0,-9,false,50),
|
||||
new ColumnDfn(10,"PhoneAlt",0,-9,false,50),
|
||||
new ColumnDfn(10,"DateOfBirth",9,93,false,16),
|
||||
new ColumnDfn(10,"Gender",2,-6,false,3),
|
||||
new ColumnDfn(10,"DateOfBirthDay",2,-6,false,3),
|
||||
new ColumnDfn(10,"DateOfBirthMonth",2,-6,false,3),
|
||||
new ColumnDfn(10,"DateOfBirthYear",3,5,false,5),
|
||||
new ColumnDfn(10,"RegionIdCountry",4,4,false,10),
|
||||
new ColumnDfn(10,"RegionIdProvince",4,4,false,10),
|
||||
new ColumnDfn(10,"PasswordToken",0,12,false,32),
|
||||
|
||||
@@ -88,6 +88,7 @@ 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> DataItemTypeCodes { get { return GetCodesOfType(Sax.CodeType.DataItemType); } }
|
||||
public List<TypeCodeDesc> GenderCodes { get { return GetCodesOfType(Sax.CodeType.Gender); } }
|
||||
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); } }
|
||||
|
||||
@@ -16,6 +16,7 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
// Code types.
|
||||
private static readonly List<TypeCodeDesc> yesNoCodes = new List<TypeCodeDesc>();
|
||||
private static readonly List<TypeCodeDesc> dataItemTypeCodes = new List<TypeCodeDesc>();
|
||||
private static readonly List<TypeCodeDesc> genderCodes = 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>();
|
||||
@@ -59,6 +60,15 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
dataItemTypeCodes.Add(Sax.DataItemType.ItemSport, "ItemSport", "Item Sport");
|
||||
dataItemTypeCodes.Add(Sax.DataItemType.ItemImage, "ItemImage", "Item Image");
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Gender.
|
||||
genderCodes.Add(Sax.Gender.Female, "Female", "Female");
|
||||
genderCodes.Add(Sax.Gender.Male, "Male", "Male");
|
||||
genderCodes.Add(Sax.Gender.TransFemale, "TransFemale", "TransFemale");
|
||||
genderCodes.Add(Sax.Gender.TransMale, "TransMale", "TransMale");
|
||||
genderCodes.Add(Sax.Gender.Nonconforming, "Nonconforming", "Nonconforming");
|
||||
genderCodes.Add(Sax.Gender.PreferNotToSay, "PreferNotToSay", "Prefer not to say");
|
||||
|
||||
//---------------------------------------------------------------
|
||||
// Sport participation.
|
||||
sportParticipationCodes.Add(Sax.SportParticipation.Professional, "PRO", "Professional");
|
||||
|
||||
@@ -40,6 +40,8 @@ namespace Saxonite.Net.Standard.Base.App
|
||||
return new List<TypeCodeDesc>(yesNoCodes);
|
||||
case Sax.CodeType.DataItemType:
|
||||
return new List<TypeCodeDesc>(dataItemTypeCodes);
|
||||
case Sax.CodeType.Gender:
|
||||
return new List<TypeCodeDesc>(genderCodes);
|
||||
case Sax.CodeType.SportParticipation:
|
||||
return new List<TypeCodeDesc>(sportParticipationCodes);
|
||||
case Sax.CodeType.SportOfficiating:
|
||||
|
||||
@@ -24,6 +24,9 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
LastName,
|
||||
PhoneMain,
|
||||
PhoneMobile,
|
||||
DateOfBirthDay,
|
||||
DateOfBirthMonth,
|
||||
DateOfBirthYear,
|
||||
DateOfBirth,
|
||||
// Regions.
|
||||
RegionIdCountry,
|
||||
@@ -64,7 +67,10 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
public String LastName { get; set; } = String.Empty;
|
||||
public String PhoneMain { get; set; } = String.Empty;
|
||||
public String PhoneMobile { get; set; } = String.Empty;
|
||||
public DateTime DateOfBirth { get; set; }
|
||||
public Sax.Gender Gender { get; set; }
|
||||
public byte DateOfBirthDay { get; set; }
|
||||
public byte DateOfBirthMonth { get; set; }
|
||||
public short DateOfBirthYear { get; set; }
|
||||
public SysId RegionIdCountry { get; set; }
|
||||
public SysId RegionIdProvince{ get; set; }
|
||||
// Security.
|
||||
@@ -125,10 +131,25 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.PhoneMobile; }
|
||||
set { CheckChanged(data.PhoneMobile, value); data.PhoneMobile = value; }
|
||||
}
|
||||
public DateTime DateOfBirth
|
||||
public Sax.Gender Gender
|
||||
{
|
||||
get { return data.DateOfBirth; }
|
||||
set { CheckChanged(data.DateOfBirth, value); data.DateOfBirth = value; }
|
||||
get { return data.Gender; }
|
||||
set { CheckChanged((int)data.Gender, (int)value); data.Gender = value; }
|
||||
}
|
||||
public byte DateOfBirthDay
|
||||
{
|
||||
get { return data.DateOfBirthDay; }
|
||||
set { CheckChanged(data.DateOfBirthDay, value); data.DateOfBirthDay = value; }
|
||||
}
|
||||
public byte DateOfBirthMonth
|
||||
{
|
||||
get { return data.DateOfBirthMonth; }
|
||||
set { CheckChanged(data.DateOfBirthMonth, value); data.DateOfBirthMonth = value; }
|
||||
}
|
||||
public short DateOfBirthYear
|
||||
{
|
||||
get { return data.DateOfBirthYear; }
|
||||
set { CheckChanged(data.DateOfBirthYear, value); data.DateOfBirthYear = value; }
|
||||
}
|
||||
public SysId RegionIdCountry
|
||||
{
|
||||
@@ -192,7 +213,10 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
LastName = data.LastName;
|
||||
PhoneMain = data.PhoneMain;
|
||||
PhoneMobile = data.PhoneMobile;
|
||||
DateOfBirth = data.DateOfBirth;
|
||||
Gender = data.Gender;
|
||||
DateOfBirthDay = data.DateOfBirthDay;
|
||||
DateOfBirthMonth = data.DateOfBirthMonth;
|
||||
DateOfBirthYear = data.DateOfBirthYear;
|
||||
RegionIdCountry = data.RegionIdCountry;
|
||||
RegionIdProvince = data.RegionIdProvince;
|
||||
// Security.
|
||||
@@ -226,7 +250,10 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
public ValidValue LastName { get; set; } = ValidValue.Valid;
|
||||
public ValidValue PhoneMain { get; set; } = ValidValue.Valid;
|
||||
public ValidValue PhoneMobile { get; set; } = ValidValue.Valid;
|
||||
public ValidValue DateOfBirth { get; set; } = ValidValue.Valid;
|
||||
public ValidValue Gender { get; set; } = ValidValue.Valid;
|
||||
public ValidValue DateOfBirthDay { get; set; } = ValidValue.Valid;
|
||||
public ValidValue DateOfBirthMonth { get; set; } = ValidValue.Valid;
|
||||
public ValidValue DateOfBirthYear { get; set; } = ValidValue.Valid;
|
||||
public ValidValue RegionIdCountry { get; set; } = ValidValue.Valid;
|
||||
public ValidValue RegionIdProvince { get; set; } = ValidValue.Valid;
|
||||
// Security.
|
||||
@@ -339,10 +366,25 @@ namespace Saxonite.Net.Standard.Base.Bus
|
||||
get { return data.PhoneMobile; }
|
||||
set { data.PhoneMobile = value; }
|
||||
}
|
||||
public DateTime DateOfBirth
|
||||
public Sax.Gender Gender
|
||||
{
|
||||
get { return data.DateOfBirth; }
|
||||
set { data.DateOfBirth = value; }
|
||||
get { return data.Gender; }
|
||||
set { data.Gender = value; }
|
||||
}
|
||||
public byte DateOfBirthDay
|
||||
{
|
||||
get { return data.DateOfBirthDay; }
|
||||
set { data.DateOfBirthDay = value; }
|
||||
}
|
||||
public byte DateOfBirthMonth
|
||||
{
|
||||
get { return data.DateOfBirthMonth; }
|
||||
set { data.DateOfBirthMonth = value; }
|
||||
}
|
||||
public short DateOfBirthYear
|
||||
{
|
||||
get { return data.DateOfBirthYear; }
|
||||
set { data.DateOfBirthYear = value; }
|
||||
}
|
||||
public SysId RegionIdCountry
|
||||
{
|
||||
|
||||
@@ -8,6 +8,7 @@ using Saxonite.Base.App;
|
||||
using Saxonite.Net.Standard.Base.Bus;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
@@ -130,11 +131,11 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
errField.PhoneMobile = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return false;
|
||||
}
|
||||
// Date of birth.
|
||||
if (errField.DateOfBirth != SacsHierarchyItem.ValidValue.Ignore && DateUtil.IsValid(data.DateOfBirth) && data.DateOfBirth.CompareTo(DateTime.Today) > 0)
|
||||
// Date of birth year.
|
||||
if (errField.DateOfBirthYear != SacsHierarchyItem.ValidValue.Ignore && data.DateOfBirthYear > DateTime.Today.Year)
|
||||
{
|
||||
errField.PhoneMobile = SacsHierarchyItem.ValidValue.Invalid;
|
||||
return SetErrorState("Date of birth must not be in the future");
|
||||
return SetErrorState("Date of birth year must not be in the future");
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------
|
||||
@@ -244,11 +245,34 @@ namespace Saxonite.Net.Standard.Base.Mgr
|
||||
/// Extract and format result set data value where specific handling is required.
|
||||
/// <para>Where response is an invalid data value, format value using column.FormatValue(values).</para>
|
||||
/// </summary>
|
||||
public virtual DataValue GetUserAccountDataValue(ColumnDfn column, NamedValue.Map values)
|
||||
public virtual DataValue GetUserAccountDataValue(ColumnDfn column, NamedValue.Map values, CultureInfo cultureInfo = null)
|
||||
{
|
||||
DataValue value = new DataValue();
|
||||
switch ((SaxUserAccount.Column)column.Id)
|
||||
{
|
||||
//-----------------------------------------------------------
|
||||
case SaxUserAccount.Column.DateOfBirth:
|
||||
{
|
||||
byte dobDay = (byte)values.GetValue(GetUserAccountColumnDfn(SaxUserAccount.Column.DateOfBirthDay).DataName).AsLong();
|
||||
byte dobMonth = (byte)values.GetValue(GetUserAccountColumnDfn(SaxUserAccount.Column.DateOfBirthMonth).DataName).AsLong();
|
||||
short dobYear = (short)values.GetValue(GetUserAccountColumnDfn(SaxUserAccount.Column.DateOfBirthYear).DataName).AsLong();
|
||||
List<String> dobParts = new List<string>();
|
||||
if (dobYear > 0)
|
||||
{
|
||||
if (dobMonth > 0)
|
||||
{
|
||||
if (dobDay > 0)
|
||||
dobParts.Add(dobDay.ToString());
|
||||
// Format date with month to extract name.
|
||||
DateTime monthDate = new DateTime(DateTime.Today.Year, dobMonth, 1);
|
||||
dobParts.Add(DateUtil.Format(monthDate, "MMM", cultureInfo));
|
||||
}
|
||||
dobParts.Add(dobYear.ToString());
|
||||
}
|
||||
value = new DataValue(dobParts.Concat("-"));
|
||||
}
|
||||
break;
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// Notes.
|
||||
case SaxUserAccount.Column.Notes:
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
@@ -28,7 +28,10 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
public ColumnDataString _PhoneMain { get; } = new ColumnDataString("PhoneMain");
|
||||
public ColumnDataString _PhoneMobile { get; } = new ColumnDataString("PhoneMobile");
|
||||
public ColumnDataString _PhoneAlt { get; } = new ColumnDataString("PhoneAlt");
|
||||
public ColumnDataDateTime _DateOfBirth { get; } = new ColumnDataDateTime("DateOfBirth");
|
||||
public ColumnDataByte _Gender { get; } = new ColumnDataByte("Gender");
|
||||
public ColumnDataByte _DateOfBirthDay { get; } = new ColumnDataByte("DateOfBirthDay");
|
||||
public ColumnDataByte _DateOfBirthMonth { get; } = new ColumnDataByte("DateOfBirthMonth");
|
||||
public ColumnDataInt16 _DateOfBirthYear { get; } = new ColumnDataInt16("DateOfBirthYear");
|
||||
public ColumnDataInt32 _RegionIdCountry { get; } = new ColumnDataInt32("RegionIdCountry");
|
||||
public ColumnDataInt32 _RegionIdProvince { get; } = new ColumnDataInt32("RegionIdProvince");
|
||||
public ColumnDataString _PasswordToken { get; } = new ColumnDataString("PasswordToken");
|
||||
@@ -62,7 +65,10 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
"PhoneMain",
|
||||
"PhoneMobile",
|
||||
"PhoneAlt",
|
||||
"DateOfBirth",
|
||||
"Gender",
|
||||
"DateOfBirthDay",
|
||||
"DateOfBirthMonth",
|
||||
"DateOfBirthYear",
|
||||
"RegionIdCountry",
|
||||
"RegionIdProvince",
|
||||
"PasswordToken",
|
||||
@@ -122,7 +128,10 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
public String _PhoneMain { get { return Cols._PhoneMain.Value; } set { Cols._PhoneMain.Value = value; } }
|
||||
public String _PhoneMobile { get { return Cols._PhoneMobile.Value; } set { Cols._PhoneMobile.Value = value; } }
|
||||
public String _PhoneAlt { get { return Cols._PhoneAlt.Value; } set { Cols._PhoneAlt.Value = value; } }
|
||||
public DateTime _DateOfBirth { get { return Cols._DateOfBirth.Value; } set { Cols._DateOfBirth.Value = value; } }
|
||||
public Byte _Gender { get { return Cols._Gender.Value; } set { Cols._Gender.Value = value; } }
|
||||
public Byte _DateOfBirthDay { get { return Cols._DateOfBirthDay.Value; } set { Cols._DateOfBirthDay.Value = value; } }
|
||||
public Byte _DateOfBirthMonth { get { return Cols._DateOfBirthMonth.Value; } set { Cols._DateOfBirthMonth.Value = value; } }
|
||||
public Int16 _DateOfBirthYear { get { return Cols._DateOfBirthYear.Value; } set { Cols._DateOfBirthYear.Value = value; } }
|
||||
public Int32 _RegionIdCountry { get { return Cols._RegionIdCountry.Value; } set { Cols._RegionIdCountry.Value = value; } }
|
||||
public Int32 _RegionIdProvince { get { return Cols._RegionIdProvince.Value; } set { Cols._RegionIdProvince.Value = value; } }
|
||||
public String _PasswordToken { get { return Cols._PasswordToken.Value; } set { Cols._PasswordToken.Value = value; } }
|
||||
@@ -171,7 +180,10 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
_PhoneMain = GetFieldString(dbDataReader, "PhoneMain", _PhoneMain);
|
||||
_PhoneMobile = GetFieldString(dbDataReader, "PhoneMobile", _PhoneMobile);
|
||||
_PhoneAlt = GetFieldString(dbDataReader, "PhoneAlt", _PhoneAlt);
|
||||
_DateOfBirth = GetFieldDateTime(dbDataReader, "DateOfBirth", _DateOfBirth);
|
||||
_Gender = GetFieldByte(dbDataReader, "Gender", _Gender);
|
||||
_DateOfBirthDay = GetFieldByte(dbDataReader, "DateOfBirthDay", _DateOfBirthDay);
|
||||
_DateOfBirthMonth = GetFieldByte(dbDataReader, "DateOfBirthMonth", _DateOfBirthMonth);
|
||||
_DateOfBirthYear = GetFieldInt16(dbDataReader, "DateOfBirthYear", _DateOfBirthYear);
|
||||
_RegionIdCountry = GetFieldInt32(dbDataReader, "RegionIdCountry", _RegionIdCountry);
|
||||
_RegionIdProvince = GetFieldInt32(dbDataReader, "RegionIdProvince", _RegionIdProvince);
|
||||
_PasswordToken = GetFieldString(dbDataReader, "PasswordToken", _PasswordToken);
|
||||
@@ -219,7 +231,10 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
if (columnNames.ContainsCI("PhoneMain")) AddCommandParameter(dbCommand, "@PhoneMain", _PhoneMain);
|
||||
if (columnNames.ContainsCI("PhoneMobile")) AddCommandParameter(dbCommand, "@PhoneMobile", _PhoneMobile);
|
||||
if (columnNames.ContainsCI("PhoneAlt")) AddCommandParameter(dbCommand, "@PhoneAlt", _PhoneAlt);
|
||||
if (columnNames.ContainsCI("DateOfBirth")) AddCommandParameter(dbCommand, "@DateOfBirth", _DateOfBirth);
|
||||
if (columnNames.ContainsCI("Gender")) AddCommandParameter(dbCommand, "@Gender", _Gender);
|
||||
if (columnNames.ContainsCI("DateOfBirthDay")) AddCommandParameter(dbCommand, "@DateOfBirthDay", _DateOfBirthDay);
|
||||
if (columnNames.ContainsCI("DateOfBirthMonth")) AddCommandParameter(dbCommand, "@DateOfBirthMonth", _DateOfBirthMonth);
|
||||
if (columnNames.ContainsCI("DateOfBirthYear")) AddCommandParameter(dbCommand, "@DateOfBirthYear", _DateOfBirthYear);
|
||||
if (columnNames.ContainsCI("RegionIdCountry")) AddCommandParameter(dbCommand, "@RegionIdCountry", _RegionIdCountry);
|
||||
if (columnNames.ContainsCI("RegionIdProvince")) AddCommandParameter(dbCommand, "@RegionIdProvince", _RegionIdProvince);
|
||||
if (columnNames.ContainsCI("PasswordToken")) AddCommandParameter(dbCommand, "@PasswordToken", _PasswordToken);
|
||||
@@ -282,7 +297,10 @@ namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
if (columnNames.ContainsCI("PhoneMain")) AddCommandParameter(dbCommand, "@PhoneMain", _PhoneMain);
|
||||
if (columnNames.ContainsCI("PhoneMobile")) AddCommandParameter(dbCommand, "@PhoneMobile", _PhoneMobile);
|
||||
if (columnNames.ContainsCI("PhoneAlt")) AddCommandParameter(dbCommand, "@PhoneAlt", _PhoneAlt);
|
||||
if (columnNames.ContainsCI("DateOfBirth")) AddCommandParameter(dbCommand, "@DateOfBirth", _DateOfBirth);
|
||||
if (columnNames.ContainsCI("Gender")) AddCommandParameter(dbCommand, "@Gender", _Gender);
|
||||
if (columnNames.ContainsCI("DateOfBirthDay")) AddCommandParameter(dbCommand, "@DateOfBirthDay", _DateOfBirthDay);
|
||||
if (columnNames.ContainsCI("DateOfBirthMonth")) AddCommandParameter(dbCommand, "@DateOfBirthMonth", _DateOfBirthMonth);
|
||||
if (columnNames.ContainsCI("DateOfBirthYear")) AddCommandParameter(dbCommand, "@DateOfBirthYear", _DateOfBirthYear);
|
||||
if (columnNames.ContainsCI("RegionIdCountry")) AddCommandParameter(dbCommand, "@RegionIdCountry", _RegionIdCountry);
|
||||
if (columnNames.ContainsCI("RegionIdProvince")) AddCommandParameter(dbCommand, "@RegionIdProvince", _RegionIdProvince);
|
||||
if (columnNames.ContainsCI("PasswordToken")) AddCommandParameter(dbCommand, "@PasswordToken", _PasswordToken);
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ using System.Data.Common;
|
||||
using System.Linq;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Code generated by Sarand Database Utilities Fri 6-Aug-2021 19:02:06
|
||||
// Code generated by Sarand Database Utilities Wed 11-Aug-2021 17:31:26
|
||||
//---------------------------------------------------------------------------
|
||||
namespace Saxonite.Net.Standard.Dbas.Internal
|
||||
{
|
||||
|
||||
@@ -218,7 +218,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
dbUserAccount._LastName = userAccount.LastName;
|
||||
dbUserAccount._PhoneMain = StringUtil.EmptyOnNull(userAccount.PhoneMain);
|
||||
dbUserAccount._PhoneMobile = StringUtil.EmptyOnNull(userAccount.PhoneMobile);
|
||||
dbUserAccount._DateOfBirth = userAccount.DateOfBirth;
|
||||
dbUserAccount._Gender = (byte)userAccount.Gender;
|
||||
dbUserAccount._DateOfBirthDay = userAccount.DateOfBirthDay;
|
||||
dbUserAccount._DateOfBirthMonth = userAccount.DateOfBirthMonth;
|
||||
dbUserAccount._DateOfBirthYear = userAccount.DateOfBirthYear;
|
||||
dbUserAccount._RegionIdCountry = SysId.ToInt(userAccount.RegionIdCountry);
|
||||
dbUserAccount._RegionIdProvince = SysId.ToInt(userAccount.RegionIdProvince);
|
||||
// Security
|
||||
@@ -254,7 +257,10 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
userAccount.LastName = dbUserAccount._LastName;
|
||||
userAccount.PhoneMain = dbUserAccount._PhoneMain;
|
||||
userAccount.PhoneMobile = dbUserAccount._PhoneMobile;
|
||||
userAccount.DateOfBirth = dbUserAccount._DateOfBirth;
|
||||
userAccount.Gender = (Sax.Gender)dbUserAccount._Gender;
|
||||
userAccount.DateOfBirthDay = dbUserAccount._DateOfBirthDay;
|
||||
userAccount.DateOfBirthMonth = dbUserAccount._DateOfBirthMonth;
|
||||
userAccount.DateOfBirthYear = dbUserAccount._DateOfBirthYear;
|
||||
userAccount.RegionIdCountry = new SysId(dbUserAccount._RegionIdCountry);
|
||||
userAccount.RegionIdProvince = new SysId(dbUserAccount._RegionIdProvince);
|
||||
// Security.
|
||||
@@ -332,8 +338,17 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
case SaxUserAccount.Column.PhoneMobile:
|
||||
SetUserAccountColDfn(columnDfn, "PhoneMobile", 100, SaxDbDfn_Core.ColumnIdx.UserAccount_PhoneMobile);
|
||||
break;
|
||||
case SaxUserAccount.Column.DateOfBirthDay:
|
||||
SetUserAccountColDfn(columnDfn, "DOB day", 80, SaxDbDfn_Core.ColumnIdx.UserAccount_DateOfBirthDay, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
break;
|
||||
case SaxUserAccount.Column.DateOfBirthMonth:
|
||||
SetUserAccountColDfn(columnDfn, "DOB month", 80, SaxDbDfn_Core.ColumnIdx.UserAccount_DateOfBirthMonth, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
break;
|
||||
case SaxUserAccount.Column.DateOfBirthYear:
|
||||
SetUserAccountColDfn(columnDfn, "DOB year", 80, SaxDbDfn_Core.ColumnIdx.UserAccount_DateOfBirthYear, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
break;
|
||||
case SaxUserAccount.Column.DateOfBirth:
|
||||
SetUserAccountColDfn(columnDfn, "DOB", 80, SaxDbDfn_Core.ColumnIdx.UserAccount_DateOfBirth, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
SetUserAccountColDfn(columnDfn, "DOB", 80, SaxDbDfn_Core.ColumnIdx.Unknown, ColumnAlignment.Center, DataValue.DataType.Date);
|
||||
break;
|
||||
|
||||
//-------------------------------------------------------
|
||||
@@ -627,8 +642,12 @@ namespace Saxonite.Net.Standard.Dbas.Mgr
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_PhoneMain, aliasUserAccount));
|
||||
if (columns.HasId(SaxUserAccount.Column.PhoneMobile))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_PhoneMobile, aliasUserAccount));
|
||||
if (columns.HasId(SaxUserAccount.Column.DateOfBirth))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_DateOfBirth, aliasUserAccount));
|
||||
if (columns.HasId(SaxUserAccount.Column.DateOfBirthDay) || columns.HasId(SaxUserAccount.Column.DateOfBirth))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_DateOfBirthDay, aliasUserAccount));
|
||||
if (columns.HasId(SaxUserAccount.Column.DateOfBirthMonth) || columns.HasId(SaxUserAccount.Column.DateOfBirth))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_DateOfBirthMonth, aliasUserAccount));
|
||||
if (columns.HasId(SaxUserAccount.Column.DateOfBirthYear) || columns.HasId(SaxUserAccount.Column.DateOfBirth))
|
||||
query.Columns.Add(SaxDbDfn_Core.GetColumnNameQual(SaxDbDfn_Core.ColumnIdx.UserAccount_DateOfBirthYear, aliasUserAccount));
|
||||
// Regions.
|
||||
bool hasCountryRegionCols = columns.HasId(SaxUserAccount.Column.RegionCountry_Name);
|
||||
if (columns.HasId(SaxUserAccount.Column.RegionIdCountry) || hasCountryRegionCols)
|
||||
|
||||
@@ -256,7 +256,7 @@
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>1</Pages>
|
||||
<UniqueValues>8</UniqueValues>
|
||||
<UniqueValues>9</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
@@ -395,8 +395,8 @@
|
||||
<Size>10</Size>
|
||||
<BufferLen>4</BufferLen>
|
||||
<DecimalDigits>0</DecimalDigits>
|
||||
<Nullable>Nullable</Nullable>
|
||||
<IsNullable>true</IsNullable>
|
||||
<Nullable>NoNulls</Nullable>
|
||||
<IsNullable>false</IsNullable>
|
||||
<Remarks />
|
||||
</DbDfnColumn>
|
||||
<DbDfnColumn>
|
||||
@@ -666,7 +666,7 @@
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>2</Pages>
|
||||
<UniqueValues>9</UniqueValues>
|
||||
<UniqueValues>11</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
@@ -1717,7 +1717,7 @@
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>1</Pages>
|
||||
<UniqueValues>9</UniqueValues>
|
||||
<UniqueValues>11</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
@@ -3697,14 +3697,14 @@
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>10</Pos>
|
||||
<Name>DateOfBirth</Name>
|
||||
<DataType>DateTime</DataType>
|
||||
<Name>Gender</Name>
|
||||
<DataType>TinyInt</DataType>
|
||||
<DataTypeName />
|
||||
<DataTypeNative>93</DataTypeNative>
|
||||
<DataTypeNameNative>smalldatetime</DataTypeNameNative>
|
||||
<DataTypeNative>-6</DataTypeNative>
|
||||
<DataTypeNameNative>tinyint</DataTypeNameNative>
|
||||
<IsIdentity>false</IsIdentity>
|
||||
<Size>16</Size>
|
||||
<BufferLen>16</BufferLen>
|
||||
<Size>3</Size>
|
||||
<BufferLen>1</BufferLen>
|
||||
<DecimalDigits>0</DecimalDigits>
|
||||
<Nullable>Nullable</Nullable>
|
||||
<IsNullable>true</IsNullable>
|
||||
@@ -3714,6 +3714,57 @@
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>11</Pos>
|
||||
<Name>DateOfBirthDay</Name>
|
||||
<DataType>TinyInt</DataType>
|
||||
<DataTypeName />
|
||||
<DataTypeNative>-6</DataTypeNative>
|
||||
<DataTypeNameNative>tinyint</DataTypeNameNative>
|
||||
<IsIdentity>false</IsIdentity>
|
||||
<Size>3</Size>
|
||||
<BufferLen>1</BufferLen>
|
||||
<DecimalDigits>0</DecimalDigits>
|
||||
<Nullable>Nullable</Nullable>
|
||||
<IsNullable>true</IsNullable>
|
||||
<Remarks />
|
||||
</DbDfnColumn>
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>12</Pos>
|
||||
<Name>DateOfBirthMonth</Name>
|
||||
<DataType>TinyInt</DataType>
|
||||
<DataTypeName />
|
||||
<DataTypeNative>-6</DataTypeNative>
|
||||
<DataTypeNameNative>tinyint</DataTypeNameNative>
|
||||
<IsIdentity>false</IsIdentity>
|
||||
<Size>3</Size>
|
||||
<BufferLen>1</BufferLen>
|
||||
<DecimalDigits>0</DecimalDigits>
|
||||
<Nullable>Nullable</Nullable>
|
||||
<IsNullable>true</IsNullable>
|
||||
<Remarks />
|
||||
</DbDfnColumn>
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>13</Pos>
|
||||
<Name>DateOfBirthYear</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>UserAccount</Table>
|
||||
<Pos>14</Pos>
|
||||
<Name>RegionIdCountry</Name>
|
||||
<DataType>Int</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3730,7 +3781,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>12</Pos>
|
||||
<Pos>15</Pos>
|
||||
<Name>RegionIdProvince</Name>
|
||||
<DataType>Int</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3747,7 +3798,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>13</Pos>
|
||||
<Pos>16</Pos>
|
||||
<Name>PasswordToken</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3764,7 +3815,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>14</Pos>
|
||||
<Pos>17</Pos>
|
||||
<Name>PasswordHashed</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3781,7 +3832,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>15</Pos>
|
||||
<Pos>18</Pos>
|
||||
<Name>PasswordHistory</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3798,7 +3849,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>16</Pos>
|
||||
<Pos>19</Pos>
|
||||
<Name>PasswordChangedAt</Name>
|
||||
<DataType>DateTime</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3815,7 +3866,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>17</Pos>
|
||||
<Pos>20</Pos>
|
||||
<Name>LastLoginAt</Name>
|
||||
<DataType>DateTime</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3832,7 +3883,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>18</Pos>
|
||||
<Pos>21</Pos>
|
||||
<Name>LastInvalidLoginAt</Name>
|
||||
<DataType>DateTime</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3849,7 +3900,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>19</Pos>
|
||||
<Pos>22</Pos>
|
||||
<Name>InvalidLoginCount</Name>
|
||||
<DataType>SmallInt</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3866,7 +3917,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>20</Pos>
|
||||
<Pos>23</Pos>
|
||||
<Name>Notes</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3883,7 +3934,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>21</Pos>
|
||||
<Pos>24</Pos>
|
||||
<Name>Flags</Name>
|
||||
<DataType>SmallInt</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3900,7 +3951,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>22</Pos>
|
||||
<Pos>25</Pos>
|
||||
<Name>Status</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3917,7 +3968,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>23</Pos>
|
||||
<Pos>26</Pos>
|
||||
<Name>CreateOn</Name>
|
||||
<DataType>DateTime</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3934,7 +3985,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>24</Pos>
|
||||
<Pos>27</Pos>
|
||||
<Name>CreateBy</Name>
|
||||
<DataType>Int</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3951,7 +4002,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>25</Pos>
|
||||
<Pos>28</Pos>
|
||||
<Name>CreateHost</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3968,7 +4019,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>26</Pos>
|
||||
<Pos>29</Pos>
|
||||
<Name>UpdateOn</Name>
|
||||
<DataType>DateTime</DataType>
|
||||
<DataTypeName />
|
||||
@@ -3985,7 +4036,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>27</Pos>
|
||||
<Pos>30</Pos>
|
||||
<Name>UpdateBy</Name>
|
||||
<DataType>Int</DataType>
|
||||
<DataTypeName />
|
||||
@@ -4002,7 +4053,7 @@
|
||||
<DbDfnColumn>
|
||||
<Schema>dbo</Schema>
|
||||
<Table>UserAccount</Table>
|
||||
<Pos>28</Pos>
|
||||
<Pos>31</Pos>
|
||||
<Name>UpdateHost</Name>
|
||||
<DataType>VarChar</DataType>
|
||||
<DataTypeName />
|
||||
@@ -4491,7 +4542,7 @@
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>1</Pages>
|
||||
<UniqueValues>11</UniqueValues>
|
||||
<UniqueValues>16</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
@@ -5658,7 +5709,7 @@
|
||||
<Clustered>false</Clustered>
|
||||
<Nullable>false</Nullable>
|
||||
<Pages>1</Pages>
|
||||
<UniqueValues>7</UniqueValues>
|
||||
<UniqueValues>9</UniqueValues>
|
||||
<HasColumns>false</HasColumns>
|
||||
<Columns>
|
||||
<DbDfnIndexColumn>
|
||||
|
||||
Reference in New Issue
Block a user