private void TagBook(ITagManager tagMng) { foreach (var tagName in TagNames) { var tag = TagFacade.FindByTagName(tagName); Debug.Assert(tag != null); var newBookTag = new BookTagViewModel(_book, tag); BookTagFacade.Insert(newBookTag); tagMng.BookTagChains.Add(newBookTag); } }
public override void ConfigureTaskImplementation(AsyncTaskSequence sequence) { var bookTags = new IntermediateTableDao().FindAll().ToList(); foreach (var chain in bookTags) { sequence.Add(() => { var newEntity = new BookTagViewModel(chain.BookID, chain.TagID); if (!BookTagFacade.Exists(newEntity)) { BookTagFacade.Insert(newEntity); } }); } }
public override void ConfigureTaskImplementation(AsyncTaskSequence sequence) { sequence.Add(new Task(() => { if (TagFacade.Exists(TagName)) { _tag = TagFacade.FindByTagName(TagName); } else { _tag = new TagViewModel(Guid.NewGuid(), TagName); TagFacade.Insert(_tag); } })); sequence.Add(new Task(() => { _images = new List <ImageViewModel>(); })); foreach (var entry in Entries) { var book = entry as BookViewModel; if (book != null) { _pages = PageFacade.FindByBookId(book.ID); for (int i = 0; i < _pages.Count(); ++i) { var p = _pages.ElementAt(i); sequence.Add(new Task(() => { GetPropertyIfImageIsNull(ref p); _images.Add(p.Image); })); } sequence.Add(new Task(() => { var newEntity = new BookTagViewModel(book, _tag); if (!BookTagFacade.Exists(newEntity)) { BookTagFacade.Insert(newEntity); } })); continue; } var page = entry as PageViewModel; if (page != null) { sequence.Add(new Task(() => { GetPropertyIfImageIsNull(ref page); _images.Add(page.Image); })); sequence.Add(new Task(() => { var newEntity = new BookTagViewModel(page.BookID, _tag.ID); if (!BookTagFacade.Exists(newEntity)) { BookTagFacade.Insert(newEntity); } })); continue; } var image = entry as ImageViewModel; if (image != null) { sequence.Add(new Task(() => { _images.Add(image); })); sequence.Add(new Task(() => { var tempPage = PageFacade.FindByImageId(image.ID); var newEntity = new BookTagViewModel(tempPage.BookID, _tag.ID); if (!BookTagFacade.Exists(newEntity)) { BookTagFacade.Insert(newEntity); } })); continue; } } sequence.Add(new Task(() => { ImageTagFacade.BatchInsert(_tag, _images); })); sequence.Add(new Task(() => { var chains = from x in _images where TagManager.Value.Chains.Count(c => c.ImageID == x.ID && c.TagID == _tag.ID) == 0 select new ImageTagViewModel(x.ID, _tag); foreach (var chain in chains) { TagManager.Value.Chains.Add(chain); } })); sequence.Add(new Task(() => { if (!TagManager.Value.Tags.Contains(_tag)) { TagManager.Value.Tags.Add(_tag); } })); sequence.Add(new Task(() => TagManager.Value.SelectedEntityTags = TagManager.Value.GetCommonTags())); sequence.Add(new Task(() => TagManager.Value.ObserveSelectedEntityTags())); }