예제 #1
0
        public async Task <MylistItemRemovedEventArgs> RemoveItem(IEnumerable <PlaylistItemToken> items)
        {
            List <IVideoContent> successed = new();
            List <IVideoContent> failed    = new();

            foreach (var item in items)
            {
                var(_, _, video) = item;
                var result = await _loginUserMylistProvider.RemoveMylistItem(MylistId, video.VideoId);

                if (result == ContentManageResult.Success)
                {
                    successed.Add(video);
                }
                else
                {
                    failed.Add(video);
                }
            }

            var args = new MylistItemRemovedEventArgs()
            {
                MylistId       = MylistId,
                SuccessedItems = successed,
                FailedItems    = failed
            };

            MylistItemRemoved?.Invoke(this, args);

            CollectionChanged?.Invoke(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, successed));

            return(args);
        }
예제 #2
0
        public async Task <MylistItemRemovedEventArgs> RemoveItem(IEnumerable <string> items)
        {
            List <string> successed = new List <string>();
            List <string> failed    = new List <string>();

            foreach (var videoId in items)
            {
                var result = await _loginUserMylistProvider.RemoveMylistItem(Id, videoId);

                if (result == ContentManageResult.Success)
                {
                    successed.Add(videoId);
                }
                else
                {
                    failed.Add(videoId);
                }
            }

            var args = new MylistItemRemovedEventArgs()
            {
                MylistId       = Id,
                SuccessedItems = successed,
                FailedItems    = failed
            };

            MylistItemRemoved?.Invoke(this, args);

            return(args);
        }