using System; using System.Linq; using System.Net.Mail; namespace Wino.Core.UWP.Services { public static class ThumbnailService { private static string[] knownCompanies = new string[] { "microsoft.com", "apple.com", "google.com", "steampowered.com", "airbnb.com", "youtube.com", "uber.com" }; public static bool IsKnown(string mailHost) => !string.IsNullOrEmpty(mailHost) && knownCompanies.Contains(mailHost); public static string GetHost(string address) { if (string.IsNullOrEmpty(address)) return string.Empty; if (address.Contains('@')) { var splitted = address.Split('@'); if (splitted.Length >= 2 && !string.IsNullOrEmpty(splitted[1])) { try { return new MailAddress(address).Host; } catch (Exception) { // TODO: Exceptions are ignored for now. } } } return string.Empty; } public static Tuple CheckIsKnown(string host) { // Check known hosts. // Apply company logo if available. try { var last = host.Split('.'); if (last.Length > 2) host = $"{last[last.Length - 2]}.{last[last.Length - 1]}"; } catch (Exception) { return new Tuple(false, host); } return new Tuple(IsKnown(host), host); } public static string GetKnownHostImage(string host) => $"ms-appx:///Assets/Thumbnails/{host}.png"; } }