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))); } }
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); }