105 lines
3.1 KiB
C#
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;
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
}
|
|
|
|
//=======================================================================
|
|
}
|