public static void addBook(SACH book, List <string> matheloai, List <string> TACGIA, string maNXB) { book.NGAY_BAN = System.DateTime.Now; using (var db = new booksEntities()) { foreach (string mtl in matheloai) { THE_LOAI tl = db.THE_LOAI.Where(theloai => theloai.MA_THE_LOAI == mtl).Select(theloai => theloai).FirstOrDefault(); tl.SACH.Add(book); } NHA_XUAT_BAN nxb = db.NHA_XUAT_BAN.Where(nxban => nxban.MA_NXB == maNXB).Select(nxban => nxban).FirstOrDefault(); nxb.SACH.Add(book); foreach (string tacgia in TACGIA) { TAC_GIA tg = db.TAC_GIA.Where(au => au.TEN_TAC_GIA.Contains(tacgia.Trim())).Select(tgia => tgia).FirstOrDefault(); if (tg == null) { addAuthor(tacgia.Trim()); tg = db.TAC_GIA.Where(au => au.TEN_TAC_GIA.Contains(tacgia.Trim())).Select(tgia => tgia).FirstOrDefault(); } tg.SACH.Add(book); } book.DANH_GIA_TOT = book.TONG_DANH_GIA = 0; db.SACH.Add(book); db.SaveChanges(); } }
public ActionResult SaveUpdateBook(SACH sach, List <THE_LOAI> tl, List <TAC_GIA> tg, NHA_XUAT_BAN nxb, string TACGIA, string THELOAI) { if ("" != THELOAI) { if (tl == null) { tl = new List <THE_LOAI>(); } THE_LOAI cate = new THE_LOAI(); cate.MA_THE_LOAI = THELOAI; tl.Add(cate); } if ("" != TACGIA) { if (tg == null) { tg = new List <TAC_GIA>(); } TAC_GIA author = new TAC_GIA(); author.TEN_TAC_GIA = TACGIA; tg.Add(author); } try { if (Request.Files.Count > 0) { var file = Request.Files[0]; if (file != null && file.ContentLength > 0) { var fileName = Path.GetFileName(file.FileName); var path = Path.Combine(Server.MapPath("~/img/Books"), fileName); file.SaveAs(path); sach.ANH = "/img/Books/" + fileName; } } BookDetails book = new BookDetails(sach, tg, tl, nxb); BookContext.UpdateBook(book); } catch (Exception ex) { return(Content("<script>alert(" + ex.Message + ");</script>")); } return(RedirectToAction("Index")); }
public static void UpdateBook(BookDetails bookdetails) { if (bookdetails == null) { return; } using (var db = new booksEntities()) { for (int index = 0; index < bookdetails.tg.Count; index++) { TAC_GIA tacgia = bookdetails.tg[index]; bookdetails.tg[index] = db.TAC_GIA.Where(x => x.TEN_TAC_GIA == tacgia.TEN_TAC_GIA).FirstOrDefault(); if (bookdetails.tg[index] == null) { addAuthor(tacgia.TEN_TAC_GIA.Trim()); bookdetails.tg[index] = db.TAC_GIA.Where(au => au.TEN_TAC_GIA.Contains(tacgia.TEN_TAC_GIA.Trim())).Select(tgia => tgia).FirstOrDefault(); } } for (int index = 0; index < bookdetails.tl.Count; index++) { THE_LOAI theloai = bookdetails.tl[index]; theloai = db.THE_LOAI.Where(x => x.MA_THE_LOAI == theloai.MA_THE_LOAI).FirstOrDefault(); bookdetails.tl[index] = theloai; } string manxb = bookdetails.nxb.MA_NXB; bookdetails.nxb = db.NHA_XUAT_BAN.Where(x => x.MA_NXB == manxb).FirstOrDefault(); var query = db.SACH.Where(x => x.MA_SACH == bookdetails.sach.MA_SACH).Select(x => x).FirstOrDefault(); var bookAuthor = db.SACH.Include("TAC_GIA"); var bookCate = db.SACH.Include("THE_LOAI"); if (query != null) { query.TEN_SACH = bookdetails.sach.TEN_SACH; query.NOI_DUNG = bookdetails.sach.NOI_DUNG; query.GIA = bookdetails.sach.GIA; if (bookdetails.sach.ANH != null) { query.ANH = bookdetails.sach.ANH; } if (query.TAC_GIA != bookdetails.tg) { foreach (TAC_GIA au in query.TAC_GIA) { au.SACH.Remove(query); } foreach (TAC_GIA au in bookdetails.tg) { au.SACH.Add(query); } } if (query.THE_LOAI != bookdetails.tl) { foreach (THE_LOAI cate in query.THE_LOAI) { cate.SACH.Remove(query); } foreach (THE_LOAI cate in bookdetails.tl) { cate.SACH.Add(query); } } db.SaveChanges(); } } }