using System; using System.Linq; using System.Collections.Generic; using Microsoft.AspNet.Http; using Yavsc.ViewModels.Account; namespace Yavsc.Helpers { public static class HttpContextExtensions { public static IEnumerable GetExternalProviders(this HttpContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } return from description in context.Authentication.GetAuthenticationSchemes() where !string.IsNullOrEmpty(description.DisplayName) select ( new YaAuthenticationDescription { DisplayName = description.DisplayName, AuthenticationScheme = description.AuthenticationScheme, Items = description.Items });; } public static bool IsProviderSupported(this HttpContext context, string provider) { if (context == null) { throw new ArgumentNullException(nameof(context)); } return (from description in context.GetExternalProviders() where string.Equals(description.AuthenticationScheme, provider, StringComparison.OrdinalIgnoreCase) select description).Any(); } } }