private static void FormatExternalLinksForEdit(ref ProfileViewModel vm) { foreach (ExternalLinkProvider provider in Enum.GetValues(typeof(ExternalLinkProvider))) { ExternalLinkBaseViewModel existingProvider = vm.ExternalLinks.FirstOrDefault(x => x.Provider == provider); ExternalLinkInfoAttribute uiInfo = provider.GetAttributeOfType <ExternalLinkInfoAttribute>(); if (existingProvider == null) { ExternalLinkBaseViewModel placeHolder = new ExternalLinkBaseViewModel { EntityId = vm.Id, Type = uiInfo.Type, Provider = provider, Order = uiInfo.Order, Display = uiInfo.Display, IconClass = uiInfo.Class, IsStore = uiInfo.IsStore }; vm.ExternalLinks.Add(placeHolder); } else { existingProvider.Display = uiInfo.Display; existingProvider.IconClass = uiInfo.Class; existingProvider.Order = uiInfo.Order; } } vm.ExternalLinks = vm.ExternalLinks.OrderBy(x => x.Order).ToList(); }
private void FormatExternalLinks(GameViewModel vm) { ProfileViewModel authorProfile = GetUserProfileWithCache(vm.UserId); ExternalLinkBaseViewModel itchProfile = authorProfile.ExternalLinks.FirstOrDefault(x => x.Provider == ExternalLinkProvider.ItchIo); foreach (ExternalLinkBaseViewModel item in vm.ExternalLinks) { ExternalLinkInfoAttribute uiInfo = item.Provider.GetAttributeOfType <ExternalLinkInfoAttribute>(); item.Display = uiInfo.Display; item.IconClass = uiInfo.Class; item.ColorClass = uiInfo.ColorClass; item.IsStore = uiInfo.IsStore; item.Order = uiInfo.Order; switch (item.Provider) { case ExternalLinkProvider.Website: item.Value = UrlFormatter.Website(item.Value); break; case ExternalLinkProvider.Facebook: item.Value = UrlFormatter.Facebook(item.Value); break; case ExternalLinkProvider.Twitter: item.Value = UrlFormatter.Twitter(item.Value); break; case ExternalLinkProvider.Instagram: item.Value = UrlFormatter.Instagram(item.Value); break; case ExternalLinkProvider.Youtube: item.Value = UrlFormatter.Youtube(item.Value); break; case ExternalLinkProvider.XboxLive: item.Value = UrlFormatter.XboxLiveGame(item.Value); break; case ExternalLinkProvider.PlaystationStore: item.Value = UrlFormatter.PlayStationStoreGame(item.Value); break; case ExternalLinkProvider.Steam: item.Value = UrlFormatter.SteamGame(item.Value); break; case ExternalLinkProvider.GameJolt: item.Value = UrlFormatter.GameJoltGame(item.Value); break; case ExternalLinkProvider.ItchIo: item.Value = UrlFormatter.ItchIoGame(itchProfile?.Value, item.Value); break; case ExternalLinkProvider.GamedevNet: item.Value = UrlFormatter.GamedevNetGame(item.Value); break; case ExternalLinkProvider.IndieDb: item.Value = UrlFormatter.IndieDbGame(item.Value); break; case ExternalLinkProvider.UnityConnect: item.Value = UrlFormatter.UnityConnectGame(item.Value); break; case ExternalLinkProvider.GooglePlayStore: item.Value = UrlFormatter.GooglePlayStoreGame(item.Value); break; case ExternalLinkProvider.AppleAppStore: item.Value = UrlFormatter.AppleAppStoreGame(item.Value); break; case ExternalLinkProvider.IndiExpo: item.Value = UrlFormatter.IndiExpoGame(item.Value); break; case ExternalLinkProvider.Discord: item.Value = UrlFormatter.DiscordGame(item.Value); break; } } }
private void FormatExternalLinks(ProfileViewModel vm) { foreach (ExternalLinkBaseViewModel item in vm.ExternalLinks) { ExternalLinkInfoAttribute uiInfo = item.Provider.GetAttributeOfType <ExternalLinkInfoAttribute>(); item.Display = uiInfo.Display; item.IconClass = uiInfo.Class; item.ColorClass = uiInfo.ColorClass; item.Order = uiInfo.Order; switch (item.Provider) { case ExternalLinkProvider.Website: item.Value = UrlFormatter.Website(item.Value); break; case ExternalLinkProvider.Facebook: item.Value = UrlFormatter.Facebook(item.Value); break; case ExternalLinkProvider.Twitter: item.Value = UrlFormatter.Twitter(item.Value); break; case ExternalLinkProvider.Instagram: item.Value = UrlFormatter.Instagram(item.Value); break; case ExternalLinkProvider.Youtube: item.Value = UrlFormatter.Youtube(item.Value); break; case ExternalLinkProvider.XboxLive: item.Value = UrlFormatter.XboxLiveProfile(item.Value); break; case ExternalLinkProvider.PlaystationStore: item.Value = UrlFormatter.PlayStationStoreProfile(item.Value); break; case ExternalLinkProvider.Steam: item.Value = UrlFormatter.SteamGame(item.Value); break; case ExternalLinkProvider.GameJolt: item.Value = UrlFormatter.GameJoltProfile(item.Value); break; case ExternalLinkProvider.ItchIo: item.Value = UrlFormatter.ItchIoProfile(item.Value); break; case ExternalLinkProvider.GamedevNet: item.Value = UrlFormatter.GamedevNetProfile(item.Value); break; case ExternalLinkProvider.IndieDb: item.Value = UrlFormatter.IndieDbPofile(item.Value); break; case ExternalLinkProvider.UnityConnect: item.Value = UrlFormatter.UnityConnectProfile(item.Value); break; case ExternalLinkProvider.GooglePlayStore: item.Value = UrlFormatter.GooglePlayStoreProfile(item.Value); break; case ExternalLinkProvider.AppleAppStore: item.Value = UrlFormatter.AppleAppStoreProfile(item.Value); break; case ExternalLinkProvider.IndiExpo: item.Value = UrlFormatter.IndiExpoProfile(item.Value); break; case ExternalLinkProvider.Artstation: item.Value = UrlFormatter.ArtstationProfile(item.Value); break; case ExternalLinkProvider.DeviantArt: item.Value = UrlFormatter.DeviantArtProfile(item.Value); break; case ExternalLinkProvider.DevTo: item.Value = UrlFormatter.DevToProfile(item.Value); break; case ExternalLinkProvider.GitHub: item.Value = UrlFormatter.GitHubProfile(item.Value); break; case ExternalLinkProvider.HackerRank: item.Value = UrlFormatter.HackerRankProfile(item.Value); break; case ExternalLinkProvider.LinkedIn: item.Value = UrlFormatter.LinkedInProfile(item.Value); break; case ExternalLinkProvider.Patreon: item.Value = UrlFormatter.PatreonProfile(item.Value); break; case ExternalLinkProvider.Medium: item.Value = UrlFormatter.MediumProfile(item.Value); break; case ExternalLinkProvider.Discord: item.Value = UrlFormatter.DiscordProfile(item.Value); break; } } }