TraktPlugin.GUI.GUICommon.GetActivityListItemTitle C# (CSharp) Méthode

GetActivityListItemTitle() static private méthode

static private GetActivityListItemTitle ( TraktPlugin.TraktAPI.DataStructures.TraktActivity activity, ActivityView view = ActivityView.community ) : string
activity TraktPlugin.TraktAPI.DataStructures.TraktActivity
view ActivityView
Résultat string
        internal static string GetActivityListItemTitle(TraktActivity.Activity activity, ActivityView view = ActivityView.community)
        {
            if (activity == null)
                return null;

            string itemName = GetActivityItemName(activity);
            if (string.IsNullOrEmpty(itemName))
                return null;

            string userName = activity.User == null ? "" : activity.User.Username;
            string title = string.Empty;

            if (string.IsNullOrEmpty(activity.Action) || string.IsNullOrEmpty(activity.Type))
                return null;

            var action = (ActivityAction)Enum.Parse(typeof(ActivityAction), activity.Action);
            var type = (ActivityType)Enum.Parse(typeof(ActivityType), activity.Type);

            switch (action)
            {
                case ActivityAction.watching:
                    title = string.Format(Translation.ActivityWatching, userName, itemName);
                    break;

                case ActivityAction.scrobble:
                    if (activity.Plays() > 1)
                    {
                        title = string.Format(Translation.ActivityWatchedWithPlays, userName, itemName, activity.Plays());
                    }
                    else
                    {
                        title = string.Format(Translation.ActivityWatched, userName, itemName);
                    }
                    break;

                case ActivityAction.checkin:
                    title = string.Format(Translation.ActivityCheckedIn, userName, itemName);
                    break;

                case ActivityAction.seen:
                    if (type == ActivityType.episode && activity.Episodes.Count > 1)
                    {
                        title = string.Format(Translation.ActivitySeenEpisodes, userName, activity.Episodes.Count, itemName);
                    }
                    else
                    {
                        title = string.Format(Translation.ActivitySeen, userName, itemName);
                    }
                    break;

                case ActivityAction.collection:
                    if (type == ActivityType.episode && activity.Episodes.Count > 1)
                    {
                        title = string.Format(Translation.ActivityCollectedEpisodes, userName, activity.Episodes.Count, itemName);
                    }
                    else
                    {
                        title = string.Format(Translation.ActivityCollected, userName, itemName);
                    }
                    break;

                case ActivityAction.rating:
                    title = string.Format(Translation.ActivityRatingAdvanced, userName, itemName, activity.Rating);
                    break;

                case ActivityAction.watchlist:
                    if (view != ActivityView.me)
                    {
                        title = string.Format(Translation.ActivityWatchlist, userName, itemName);
                    }
                    else
                    {
                        title = string.Format(Translation.ActivityYourWatchlist, userName, itemName);
                    }
                    break;

                case ActivityAction.review:
                    title = string.Format(Translation.ActivityReview, userName, itemName);
                    break;

                case ActivityAction.shout:
                    title = string.Format(Translation.ActivityShouts, userName, itemName);
                    break;

                case ActivityAction.pause:
                    title = string.Format(Translation.ActivityPaused, userName, itemName, Math.Round(activity.Progress, 0));
                    break;

                case ActivityAction.created: // created list
                    title = string.Format(Translation.ActivityCreatedList, userName, itemName);
                    break;

                case ActivityAction.updated: // updated list
                    if (activity.List.ItemCount == 0)
                    {
                        title = string.Format(Translation.ActivityUpdatedList, userName, itemName);
                    }
                    else if (activity.List.ItemCount == 1)
                    {
                        title = string.Format(Translation.ActivityUpdatedListWithItemCountSingular, userName, itemName, 1);
                    }
                    else
                    {
                        title = string.Format(Translation.ActivityUpdatedListWithItemCount, userName, itemName, activity.List.ItemCount);
                    }
                    break;

                case ActivityAction.item_added: // added item to list
                    title = string.Format(Translation.ActivityAddToList, userName, itemName, activity.List.Name);
                    break;

                case ActivityAction.like:
                    if (type == ActivityType.comment)
                    {
                        title = string.Format(Translation.ActivityLikedComment, userName, activity.Shout.User.Username, itemName);
                    }
                    else if (type == ActivityType.list)
                    {
                        title = string.Format(Translation.ActivityLikedList, userName, itemName);
                    }
                    break;
            }

            // remove user name from your own feed, its not needed - you know who you are
            if ((ActivityView)TraktSettings.ActivityStreamView == ActivityView.me && title.StartsWith(TraktSettings.Username))
                title = title.Replace(TraktSettings.Username + " ", string.Empty);

            return title;
        }