예제 #1
0
        public override void ConfigureTaskImplementation(AsyncTaskSequence sequence)
        {
            foreach (var tagName in TagNames)
            {
                var itTargets = (from it in TagManager.Value.Chains
                                 join t in TagNames on it.Tag.Name equals t
                                 select it).ToList();

                foreach (var target in itTargets)
                {
                    sequence.Add(new Task(() =>
                    {
                        TagManager.Value.Chains.Remove(target);
                    }));
                }

                var tTargets = (from t in TagManager.Value.Tags
                                join i in TagNames on t.Name equals i
                                select t).ToList();

                foreach (var target in tTargets)
                {
                    sequence.Add(new Task(() =>
                    {
                        TagManager.Value.Tags.Remove(target);
                    }));
                }

                sequence.Add(new Task(() => ImageTagFacade.DeleteByTagName(tagName)));
                sequence.Add(new Task(() => TagFacade.DeleteByTagName(tagName)));
            }
        }
예제 #2
0
        public static List <Task> GenerateRemoveTagTasks(ITagManager tagManager, string[] tagNames)
        {
            List <Task> tasks = new List <Task>();

            foreach (var tagName in tagNames)
            {
                var itTargets = (from it in tagManager.Chains
                                 join t in tagNames on it.Tag.Name equals t
                                 select it).ToList();

                foreach (var target in itTargets)
                {
                    tasks.Add(new Task(() =>
                    {
                        tagManager.Chains.Remove(target);
                    }));
                }

                var tTargets = (from t in tagManager.Tags
                                join i in tagNames on t.Name equals i
                                select t).ToList();

                foreach (var target in tTargets)
                {
                    tasks.Add(new Task(() =>
                    {
                        tagManager.Tags.Remove(target);
                    }));
                }

                tasks.Add(new Task(() => ImageTagFacade.DeleteByTagName(tagName)));
                tasks.Add(new Task(() => TagFacade.DeleteByTagName(tagName)));
            }

            return(tasks);
        }