コード例 #1
0
        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();
        }
コード例 #2
0
        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;
                }
            }
        }
コード例 #3
0
        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;
                }
            }
        }