Files
Saxonite/SaxoniteStandardBase/Base/Helpers/SaxContactMethodHelper.cs
T
2023-10-16 16:22:45 +01:00

105 lines
3.1 KiB
C#

using Sarand.Net.Standard.Base.Helpers;
using Saxonite.Net.Standard.Base.App;
using System;
using System.Collections.Generic;
using System.Text;
namespace Saxonite.Net.Standard.Base.Helpers
{
//=======================================================================
public static class SaxContactMethodHelper
{
//-------------------------------------------------------------------
// Utilities.
//-------------------------------------------------------------------
public static Sax.ContactMethodType GetContactMethodType(Sax.ContactMethod contactMethod)
{
switch (contactMethod)
{
case Sax.ContactMethod.PhoneMain:
case Sax.ContactMethod.PhoneMobile:
case Sax.ContactMethod.PhoneHome:
case Sax.ContactMethod.PhoneOffice:
return Sax.ContactMethodType.Phone;
case Sax.ContactMethod.Email:
return Sax.ContactMethodType.Email;
case Sax.ContactMethod.Website:
case Sax.ContactMethod.Wikipedia:
case Sax.ContactMethod.LinkedIn:
case Sax.ContactMethod.Twitter:
case Sax.ContactMethod.Facebook:
case Sax.ContactMethod.Instagram:
return Sax.ContactMethodType.WebUrl;
}
return Sax.ContactMethodType.Unknown;
}
//-------------------------------------------------------------------
/// <summary>Validate Contact Method value.</summary>
public static bool IsValidContactMethodValue(Sax.ContactMethod method, String value)
{
Sax.ContactMethodType contactMethodType = GetContactMethodType(method);
// Method specific value validation.
if (contactMethodType == Sax.ContactMethodType.Phone)
{
// Phone number.
return SacsDataValidationHelper.IsValidPhone(value);
}
else if (contactMethodType == Sax.ContactMethodType.Email)
{
// Email address.
return SacsDataValidationHelper.IsValidEmailAddress(value);
}
else if (contactMethodType == Sax.ContactMethodType.WebUrl)
{
if (method == Sax.ContactMethod.Wikipedia)
{
// Wikipedia.
return SacsDataValidationHelper.IsValidWikipediaUrl(value);
}
else if (method == Sax.ContactMethod.LinkedIn)
{
// LinkedIn.
return SacsDataValidationHelper.IsValidLinkedInUrl(value);
}
else if (method == Sax.ContactMethod.Twitter)
{
// X (was Twitter).
return SacsDataValidationHelper.IsValidTwitterUrl(value);
}
else if (method == Sax.ContactMethod.Facebook)
{
// Facebook.
return SacsDataValidationHelper.IsValidFacebookUrl(value);
}
else if (method == Sax.ContactMethod.Instagram)
{
// 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.
return SacsDataValidationHelper.IsValidUrl(value);
}
}
return true;
}
//-------------------------------------------------------------------
}
//=======================================================================
}