public ActionResult BookTagEdit(int id) { BookTagsModel model = new BookTagsModel(); model.ID = id; model.TagCollection = db.Tbl_Tag; model.Tags = db.Tbl_BookTag.Where(a => a.BT_BookID == id).Select(a => a.Tbl_Tag.Tag_ID.ToString()).ToArray(); return(View(model)); }
public ActionResult BookTagEdit(BookTagsModel model) { var oldtags = db.Tbl_BookTag.Where(a => a.Tbl_Book.Book_ID == model.ID).ToList(); List <Tbl_Tag> newtags = new List <Tbl_Tag>(); var _book = db.Tbl_Book.Where(a => a.Book_ID == model.ID).SingleOrDefault(); foreach (var item in model.Tags) { int id = 0; if (Int32.TryParse(item, out id)) { newtags.Add(db.Tbl_Tag.Where(a => a.Tag_ID == id).SingleOrDefault()); } } foreach (var item in oldtags) { if (!newtags.Exists(a => a.Tag_ID == item.Tbl_Tag.Tag_ID)) { db.Tbl_BookTag.Remove(item); } } foreach (var item in model.Tags) { Tbl_BookTag _booktag = new Tbl_BookTag(); int id = 0; if (Int32.TryParse(item, out id)) { Tbl_Tag tag = db.Tbl_Tag.Where(a => a.Tag_ID == id).SingleOrDefault(); if (tag != null) { if (!oldtags.Exists(a => a.Tbl_Tag.Tag_ID == id)) { _booktag.Tbl_Tag = tag; _booktag.Tbl_Book = _book; } } else { Tbl_Tag _tag = new Tbl_Tag(); _tag.Tag_Name = item; db.Tbl_Tag.Add(_tag); _booktag.Tbl_Tag = _tag; _booktag.Tbl_Book = _book; } } else { Tbl_Tag _tag = new Tbl_Tag(); _tag.Tag_Name = item; db.Tbl_Tag.Add(_tag); _booktag.Tbl_Tag = _tag; _booktag.Tbl_Book = _book; } db.Tbl_BookTag.Add(_booktag); } if (Convert.ToBoolean(db.SaveChanges() > 0)) { return(RedirectToAction("BookShow", "Book", new { id = _book.Book_ID })); } else { return(RedirectToAction("BookShow", "Book", new { id = _book.Book_ID })); } }