v1.2.11.0

This commit is contained in:
2023-07-06 18:36:52 +01:00
parent a4da299248
commit fbac433f63
19 changed files with 526 additions and 109 deletions
+4 -1
View File
@@ -18,7 +18,7 @@ namespace Saxonite.Net.Standard.Base.App
//-------------------------------------------------------------------
public static class Version
{
private static String version { get; } = "1.2.10.6";
private static String version { get; } = "1.2.11.0";
// Retrieve version.
public static String GetFullVersion () { return version; }
public static String GetAppVersion ()
@@ -40,9 +40,12 @@ namespace Saxonite.Net.Standard.Base.App
//-------------------------------------------------------------------
// Version history.
//-------------------------------------------------------------------
// 1.2.11 6-Jul-2023
// - Organisation associations.
// 1.2.10 11-Oct-2022
// - Online organisations display issue fixed.
// - User Sport 'Preparing' options.
// - User reports.
// 1.2.9 12-Oct-2022
// - Online Sports Experience update bug resolved.
// - Sports Experience Awards.
+24 -1
View File
@@ -310,6 +310,13 @@ namespace Saxonite.Net.Standard.Base.App
}
//-------------------------------------------------------------------
// Associations.
/// <summary>
/// <u><b>Association type.</b></u>
/// <br>- Affiliate - parent-child relationship.</br>
/// <br>- Partner - equal sided relationship.</br>
/// </summary>
public enum AssociationType
{
Unknown = 0,
@@ -320,6 +327,20 @@ namespace Saxonite.Net.Standard.Base.App
Partner = 20,
}
/// <summary>
/// Association type option.
/// <br>- Encompasses association type and 'direction' from the perspective of one of the organisations.</br>
/// <br>- Affiliate relationship is either from the parent or to the child.</br>
/// <br>- Partner relationships are directionless.</br>
/// </summary>
public enum AssociationTypeOption
{
Unknown = 0,
AffiliateParent,
AffiliateChild,
Partner,
}
//-------------------------------------------------------------------
public enum AddressType
{
@@ -358,6 +379,8 @@ namespace Saxonite.Net.Standard.Base.App
Twitter = 310,
Facebook = 320,
Instagram = 330,
YouTube = 340,
Twitch = 350,
}
//-------------------------------------------------------------------
@@ -407,7 +430,7 @@ namespace Saxonite.Net.Standard.Base.App
{
Unknown = 0,
/* Do not change the values or codes - tied to database. */
Enhancement= 10,
Enhancement = 10,
Information = 20,
Bug = 30,
}
@@ -272,6 +272,8 @@ namespace Saxonite.Net.Standard.Base.App
contactMethodCodes.Add(Sax.ContactMethod.Twitter, Sax.ContactMethod.Twitter.ToString(), "Twitter");
contactMethodCodes.Add(Sax.ContactMethod.Facebook, Sax.ContactMethod.Facebook.ToString(), "Facebook");
contactMethodCodes.Add(Sax.ContactMethod.Instagram, Sax.ContactMethod.Instagram.ToString(), "Instagram");
contactMethodCodes.Add(Sax.ContactMethod.YouTube, Sax.ContactMethod.YouTube.ToString(), "YouTube");
contactMethodCodes.Add(Sax.ContactMethod.Twitch, Sax.ContactMethod.Twitch.ToString(), "Twitch");
//---------------------------------------------------------------
// Event types.
@@ -1,9 +1,15 @@
using Sarand.Net.Standard.Base.Bus;
using Org.BouncyCastle.Utilities;
using Sarand.Net.Standard.Base.Bus;
using Sarand.Net.Standard.Base.Core;
using Sarand.Net.Standard.Base.Utils;
using Saxonite.Net.Standard.Base.App;
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using static Sarand.Net.Standard.Base.Bus.ItemId;
using static Sarand.Net.Standard.Base.ItemOptions.SaItemOptionDfn;
using static Saxonite.Net.Standard.Base.App.Sax;
namespace Saxonite.Net.Standard.Base.Bus
{
@@ -30,6 +36,13 @@ namespace Saxonite.Net.Standard.Base.Bus
ItemTypeTo_Desc,
ItemIdTo,
ItemTo_Caption,
// Specific item properties.
OrganisationFrom_Name,
OrganisationFrom_SportIdPrimary,
OrganisationFrom_RegionIdPrimary,
OrganisationTo_Name,
OrganisationTo_SportIdPrimary,
OrganisationTo_RegionIdPrimary,
// Association type.
AssociationType,
AssociationType_Code,
@@ -45,6 +58,40 @@ namespace Saxonite.Net.Standard.Base.Bus
UpdateOn_Date,
}
//-------------------------------------------------------------------
public class TypeOptionData
{
public TypeOptionData(Sax.AssociationTypeOption typeOption, String caption)
{
TypeOption = typeOption;
Caption = StringUtil.OnBlank(caption);
}
public TypeOptionData(Sax.AssociationType associationType, bool reversed, String caption) :
this(GetAssociationTypeOption(associationType, reversed), caption)
{
}
// Properties.
public AssociationTypeOption TypeOption { get; }
public String Caption { get; }
// Comparison.
public override bool Equals(object obj)
{
if (obj == null) return false;
return Equals(obj as TypeOptionData);
}
public bool Equals(TypeOptionData value)
{
if (value == null) return false;
if (this.TypeOption != value.TypeOption) return false;
if (!this.Caption.EqualsCI(value.Caption)) return false;
return true;
}
public override int GetHashCode()
{
return HashCode.Combine(TypeOption, Caption);
}
}
//-------------------------------------------------------------------
/// <summary>Properties other than common.</summary>
public class DataProperties
@@ -172,6 +219,19 @@ namespace Saxonite.Net.Standard.Base.Bus
}
return itemTypes;
}
/// <summary>Determin type option from type and parent/child direction.</summary>
/// <param name="associationType"></param>
/// <param name="reversed"></param>
/// <returns></returns>
public static AssociationTypeOption GetAssociationTypeOption(Sax.AssociationType associationType, bool reversed)
{
switch (associationType)
{
case Sax.AssociationType.Affiliate: return reversed ? AssociationTypeOption.AffiliateChild : AssociationTypeOption.AffiliateParent;
case Sax.AssociationType.Partner: return AssociationTypeOption.Partner;
}
return AssociationTypeOption.Unknown;
}
//-------------------------------------------------------------------
// Properties.
@@ -191,17 +251,17 @@ namespace Saxonite.Net.Standard.Base.Bus
public ItemId ItemIdFrom
{
get { return data.ItemIdFrom; }
protected set { data.ItemIdFrom = value; }
set { data.ItemIdFrom = value; }
}
public ItemId ItemIdTo
{
get { return data.ItemIdTo; }
protected set { data.ItemIdTo = value; }
set { data.ItemIdTo = value; }
}
public Sax.AssociationType AssociationType
{
get { return data.AssociationType; }
protected set { data.AssociationType = value; }
set { data.AssociationType = value; }
}
//-------------------------------------------------------------------
@@ -210,6 +210,8 @@ namespace Saxonite.Net.Standard.Base.Bus
Sax.ContactMethod.Twitter,
Sax.ContactMethod.Facebook,
Sax.ContactMethod.Instagram,
Sax.ContactMethod.YouTube,
Sax.ContactMethod.Twitch,
};
public static List<Sax.ContactMethod> ValidContactMethods { get { return new List<Sax.ContactMethod>(validContactMethods); } }
@@ -78,6 +78,16 @@ namespace Saxonite.Net.Standard.Base.Helpers
// Instagram.
return SacsDataValidationHelper.IsValidInstagramUrl(value);
}
else if (method == Sax.ContactMethod.YouTube)
{
// YouTube.
return SacsDataValidationHelper.IsValidYouTubeUrl(value);
}
else if (method == Sax.ContactMethod.Twitch)
{
// Twitch.
return SacsDataValidationHelper.IsValidTwitchUrl(value);
}
else
{
// Generic URL.