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.Location: case Sax.ContactMethod.LinkedIn: case Sax.ContactMethod.Twitter: case Sax.ContactMethod.Facebook: case Sax.ContactMethod.Instagram: return Sax.ContactMethodType.WebUrl; } return Sax.ContactMethodType.Unknown; } //------------------------------------------------------------------- /// Validate Contact Method value. 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.Location) { // Location URL. return SacsDataValidationHelper.IsValidLocationUrl(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; } //------------------------------------------------------------------- } //======================================================================= }