Chương 4: Mô tả chi tiết ứng dụng theo mô hình MVC return RedirectToAction"Movie"; } #endregion #region "THONG TIN VIDEO" // XEM THÔNG TIN VIDEO public ActionResult Detailsint id {
MÔ TẢ ĐỀ TÀI
SƠ ĐỒ CƠ SỞ DỮ LIỆU
Sơ đồ dữ liệu
Hình 2.1.1: Sơ đồ dữ liệu
MÀN HÌNH GIAO DIỆN
Sơ đồ liên kết các trang giao diện
Hình 3.1.2: Sơ đồ liên kết các trang giao diện
Trang HOME
Chương 3: Mô hình giao diện
Hình 3.2.6: Danh sách thể loại
Trang User
Chương 3: Mô hình giao diện
Hình 3.3.9: Trang thông tin người dùng
Trang Thông tin phim và xem phim
Hình 3.4.10: Trang chi tiết phim
Hình 3.4.11: Hiển thị các tập của phim
Chương 3: Mô hình giao diện
Trang Admin
Hình 3.6.14: Trang quản lý phim
Chương 3: Mô hình giao diện
Hình 3.6.17: Trang thêm tập phim
Hình 3.6.18: Trang quản lý thể loại
Hình 3.6.19: Trang thêm thể loại
Chương 3: Mô hình giao diện
Hình 3.6.20: Trang thêm tập phim
Trang quản lý Admin và User
Hình 3.7.22: Trang thêm mới người dùng
MÔ TẢ CHI TIẾT ỨNG DỤNG THEO MÔ HÌNH MVC
MODELS
3.8.2 using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace ThreeSome.Models public string FilmDes { get set; ; } public string FilmLink { get set; ; } public Nullable< int > EspisodeCount { get set; ; }
3.8.3 using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace ThreeSome.Models
{ public Film _film { get set; ; }
List fav_item = new List(); public IEnumerable FAV_ITEM
} public void AddNew(Film film)
{ var item = fav_item.FirstOrDefault(s => s._film.filmID == film.filmID); if (item == null)
{ fav_item.Add(new FavItem
} public void delete_fromlist(Film film)
{ var item = fav_item.FirstOrDefault(s => s._film.filmID == film.filmID); if (item != null)
VIEWS
3.10.1 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Data; using System.Web; using System.Web.Mvc; using ThreeSome.Models; using System.Data.Entity.Validation; namespace ThreeSome.Areas.ADMIN.Controllers
// GET: ADMIN/Movie public ActionResult Movie()
{ return View(db.Films.ToList());
Film film = new Film(); return View(film);
//TẠO MỚI PHIM public ActionResult Create(Film film)
{ string fileName = Path.GetFileNameWithoutExtension(film.IMGupload.FileName); string extension = Path.GetExtension(film.IMGupload.FileName); fileName = fileName + extension; film.filmIMG = "~/Content/Img/" + fileName; film.IMGupload.SaveAs(Path.Combine(Server.MapPath("~/Content/Img/"), fileName)); } db.Films.Add(film); db.SaveChanges(); return RedirectToAction("Create", "Video");
# i "XOA VIDEO" public ActionResult Delete( id, Film film)int
{ film = db.Films.Where(m => m.filmID == id).FirstOrDefault(); db.Films.Remove(film); db.SaveChanges();
Chương 4: Mô tả chi tiết ứng dụng theo mô hình MVC return RedirectToAction("Movie");
// XEM THÔNG TIN VIDEO public ActionResult Details(int id)
{ return View(db.Films.Where(s => s.filmID == id).FirstOrDefault());
//SỬA THÔNG TIN PHIM public ActionResult Edit( id)int
{ return View(db.Films.Where(f => f.filmID == id).FirstOrDefault());
[HttpPost] public ActionResult Edit( id, Film film)int
{ string fileName = Path.GetFileNameWithoutExtension(film.IMGupload.FileName); string extension = Path.GetExtension(film.IMGupload.FileName); fileName = fileName + extension; film.filmIMG = "~/Content/Img/" + fileName; film.IMGupload.SaveAs(Path.Combine(Server.MapPath("~/Content/Img/"), fileName));
} db.Entry(film).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); return RedirectToAction("Movie");
Film film = new Film(); var genres = db.genres.Where(g => g.genreName != "nulll").ToList();
ViewBag.Genres = new SelectList(genres "genreID" "genreName", , ); return PartialView(film);
} using ThreeSome.Models; namespace ThreeSome.Areas.ADMIN.Controllers
//XEM DANH SÁCH TÀI KHOẢN public ActionResult UserList()
{ return View(db.UserTables.ToList());
//TẠO MỚI TÀI KHOẢN public ActionResult Create()
[HttpPost] public ActionResult Create(UserTable user)
{ var checkUser = db.UserTables.Where(u => u.userName == user.userName).FirstOrDefault(); var checkEmail = db.UserTables.Where(u=>u.userEmail == user.userEmail).FirstOrDefault(); if (checkUser != null || checkUser != null)
ModelState.AddModelError("userName","Tên đăng nhập đã tồn tại");
ModelState.AddModelError("userEmail","Email đã tồn tại");
} else { db.UserTables.Add(user); db.SaveChanges(); return RedirectToAction("UserList");
Chương 4: Mô tả chi tiết ứng dụng theo mô hình MVC
//XÓA TÀI KHOẢN public ActionResult Delete()
[HttpPost] public ActionResult Delete(int id, UserTable user)
{ user = db.UserTables.Where(u => u.userID== id).FirstOrDefault(); db.UserTables.Remove(user); db.SaveChanges(); return RedirectToAction("UserList");
//XEM THÔNG TIN TÀI KHOẢN public ActionResult Details(int id)
{ return View(db.UserTables.Where(u=> u.userID == id).FirstOrDefault());
//XEM THÔNG TIN USER public ActionResult Edit(int id)
{ return View(db.UserTables.Where(u=>u.userID==id).FirstOrDefault());
[HttpPost] public ActionResult Edit(int id, UserTable _user)
{ db.Entry(_user).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); return RedirectToAction("UserList");
3.10.3 using System; using System.Collections.Generic; using System.Data.Entity; using System.Data.Entity.Validation; using System.Linq; using System.Web; using System.Web.Mvc; using ThreeSome.Models; namespace ThreeSome.Areas.ADMIN.Controllers
//XEM DANH SÁCH THỂ LOẠI public ActionResult Genre()
{ return View(db.genres.ToList());
//THÊM THỂ LOẠI public ActionResult Create()
[HttpPost] public ActionResult Create(genre genre)
{ var check = db.genres.Where(g=>g.genreName==genre.genreName).FirstOrDefault(); if (check != null)
ViewBag.ErrorGen = "Thể loại đã tồn tại"; return View("Create");
} db.genres.Add(genre); db.SaveChanges(); return RedirectToAction("Genre");
///XÓA THỂ LOẠI public ActionResult Delete( id)int
{ return View(db.genres.Where(movie => movie.genreID == id).FirstOrDefault());
[HttpPost] public ActionResult Delete( id, genre genre)int
{ genre = db.genres.Where(m => m.genreID == id).FirstOrDefault(); var refer = db.Films.Where(f => f.filmGenre == id).ToList(); foreach (var item refer)in
} db.genres.Remove(genre); db.SaveChanges(); return RedirectToAction("Genre");
Chương 4: Mô tả chi tiết ứng dụng theo mô hình MVC return View("Delete");
#region "SUA THE LOAI" public ActionResult Edit( id)int
{ return View(db.genres.Where(m => m.genreID == id).FirstOrDefault());
[HttpPost] public ActionResult Edit(int id, genre genre)
{ db.Entry(genre).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); return RedirectToAction("Genre");
3.10.4 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using System.Web.Mvc; using ThreeSome.Models; namespace ThreeSome.Areas.ADMIN.Controllers
[HttpPost] public ActionResult SaveVideo(HttpPostedFileBase file)
{ if (file != null && file.ContentLength > 0)
// Lấy đường dẫn thư mục lưu trữ video trong dự án string uploadPath = Server.MapPath("~/Videos/");
// Đảm bảo thư mục lưu trữ video tồn tại if (!Directory.Exists(uploadPath))
// Lưu tệp vào thư mục lưu trữ string filePath = Path.Combine(uploadPath, file.FileName);
3.10.5 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using System.Web.Mvc; using ThreeSome.Models; namespace ThreeSome.Areas.ADMIN.Controllers
//XEM DANH SÁCH TẬP PHIM public ActionResult Video()
{ return View(db.espisodes.ToList());
{ espisode video = new espisode(); return View(video);
[HttpPost] public ActionResult Create(espisode video)
{ string fileName = Path.GetFileNameWithoutExtension(video.IMGupload.FileName); string extension = Path.GetExtension(video.IMGupload.FileName); fileName = fileName + extension; video.vidIMG = "~/Content/Img/" + fileName; video.IMGupload.SaveAs(Path.Combine(Server.MapPath("~/Content/Img/"), fileName));
} db.espisodes.Add(video); db.SaveChanges(); return RedirectToAction("Video");
Chương 4: Mô tả chi tiết ứng dụng theo mô hình MVC
//XÓA TẬP PHIM public ActionResult Delete( id)int
{ return View(db.espisodes.Where(video => video.vidID == id).FirstOrDefault());
[HttpPost] public ActionResult Delete( id, espisode video)int
{ video = db.espisodes.Where(m => m.vidID == id).FirstOrDefault(); db.espisodes.Remove(video); db.SaveChanges(); return RedirectToAction("Video");
//SỬA TẬP PHIM public ActionResult Edit( id)int
{ return View(db.espisodes.Where(f => f.vidID == id).FirstOrDefault());
[HttpPost] public ActionResult Edit( id, espisode video)int
{ string fileName = Path.GetFileNameWithoutExtension(video.IMGupload.FileName); string extension = Path.GetExtension(video.IMGupload.FileName); fileName = fileName + extension; video.vidIMG = "~/Content/Img/" + fileName; video.IMGupload.SaveAs(Path.Combine(Server.MapPath(("~/Content/Img/", fileName));
} db.Entry(video).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); return RedirectToAction("Video");
} var filmm = db.Films.ToList();
ViewBag.FilmsList = new SelectList(filmm, "filmID" "filmTitle", ); return PartialView(espi);
3.10.6 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using ThreeSome.Models; namespace ThreeSome.Controllers
//HIỂN THỊ DANH SÁCH YÊU THÍCH public ActionResult Favourite()
ListFavourite listFav = Session["ListFavourite"] as ListFavourite; return View(listFav);
ListFavourite list_fav = Session["ListFavourite"] ListFavourite;as if (list_fav == null || Session["ListFavourite"] == null)
//THÊM VÀO DANH SÁCH YÊU THÍCH public ActionResult AddtoFav( id)int
{ var film = db.Films.SingleOrDefault(f => f.filmID == id); if (film != null || Session["Name"] != null)
} if (Session["Name"] != null) { string filmId = film.filmID.ToString(); string url = Url.Action("FilmDetail" "FilmTag");, url +="?FilmId=" + filmId; return Redirect(url);
Chương 4: Mô tả chi tiết ứng dụng theo mô hình MVC
//XÓA KHỎI DANH SÁCH YÊU THÍCH public ActionResult RemoveFromList( id)int
{ var film = db.Films.SingleOrDefault(f => f.filmID == id); if (film != null)
3.10.7 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Web; using System.Web.Mvc; using ThreeSome.Models; namespace ThreeSome.Controllers
// LẤY DANH SÁCH FILM public ActionResult FilmList()
List FilmList = db.Films.ToList(); var filmModel = FilmList.Select( x => new FilmModel
{ var film = db.Films.FirstOrDefault(x => x.filmID == FilmID); if (film.filmID != FilmID)
List espisodes = db.espisodes.Where(x => x.film_ID == FilmID).ToList(); var VidModel = espisodes.Select( x => new FilmModel
VidTitle = {x.Film.filmTitle}: $" Tập {x.Espisode1}",
// Gán thông tin của bộ phim cho phần tử đầu tiên trong VidModel if (VidModel.Any())
VidModel.First().FilmID = film.filmID;
VidModel.First().FilmImg = film.filmIMG;
VidModel.First().FilmTitle = film.filmTitle;
VidModel.First().FilmDes = film.filmDes;
} public ActionResult WatchMovie( VidID)int
// Tìm video dựa trên VidID var vid = db.espisodes.FirstOrDefault(x => x.vidID == VidID);
//Lấy thông tin bộ phim từ video var Filmss = vid.film_ID; var film = db.Films.FirstOrDefault(x => x.filmID == Filmss);
// Tạo một đói tượng VidMoel và gán thông tin của video và bộ phim cho nó var VidModel = new FilmModel
VidTitle = {film.filmTitle}: $" Tập {vid.Espisode1}",
// Tìm các tập phim liên quan có cùng film ID với bộ phim
ViewBag.Episodes = db.espisodes.Where(x => x.film_ID == Filmss).ToList(); return View(VidModel);
Chương 4: Mô tả chi tiết ứng dụng theo mô hình MVC
3.10.8 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using ThreeSome.Models; namespace ThreeSome.Controllers
//TẠO PARTICIAL VIEW ĐỂ HIỂN THỊ DANH SÁCH THỂ LOẠI TRÊN THANH NAVIGATION public ActionResult Index()
{ return PartialView(db.genres.ToList());
3.10.9 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using ThreeSome.Models; namespace ThreeSome.Controllers
//TRẢ VỀ DANH SÁCH PHIM Ở TRANG CHỦ public ActionResult Index()
List FilmList = db.Films.ToList();
//TRẢ VỀ DANH SÁCH PHIM THEO THỂ LOẠI public ActionResult Gerne( GenreID)int
{ var Ger = db.genres.FirstOrDefault(x => x.genreID == GenreID); if (Ger.genreID!= GenreID)
List filmm = db.Films.Where(x => x.filmGenre == GenreID).ToList(); var filModel = filmm.Select( x => new FilmModel
// Gán thông tin của bộ phim cho phần tử đầu tiên trong VidModel if (filModel.Any())
{ filModel.First().GerneId = Ger.genreID; filModel.First().GerneName = Ger.genreName;
//THÔNG TIN TRANG WEB public ActionResult About()
ViewBag.Message = "Your application description page."; return View();
3.10.10 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using ThreeSome.Models; namespace ThreeSome.Controllers
Chương 4: Mô tả chi tiết ứng dụng theo mô hình MVC
//TRẢ VỀ TRANG ĐĂNG NHẬP public ActionResult Login()
//CHỨC NĂNG XÁC THỰC ĐĂNG NHẬP public ActionResult AuthenLogin(string userName, string userPass)
{ var userStore = db.UserTables.Where(u => u.userName==userName
//Session ["Userrole"] = user.userRole; if (userStore == null)
ViewBag.ErrorLog = "Bạn đã nhập sai UserName hoặc PassWord"; return View("Login");
Session["Username"] = userStore.userName; return RedirectToAction("Index" "Home");,
//TRẢ VỀ TRANG ĐĂNG KÝ public ActionResult Register()
//PHƯƠNG THỨC XÁC THỰC ĐĂNG KÝ public ActionResult AuthenRegister(UserTable user)
ViewBag.ErrName = "Username already exist";
ViewBag.ErrEmail = "Email already exist";
{ db.UserTables.Add(user); db.SaveChanges(); return RedirectToAction("Login");
//TRANG THÔNG TIN USER public ActionResult ProfileUser()
//PHƯƠNG THỨC ĐĂNG XUẤT public ActionResult Logout()
Session.Clear(); return RedirectToAction("Index" "Home");,
3.10.11 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Services.Description; using ThreeSome.Models; namespace ThreeSome.Controllers