Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Этапы реализации

Читайте также:
  1. F48.1 Синдром деперсонализации-дереализации.
  2. II. Основные цели и задачи Программы, срок и этапы ее реализации, целевые индикаторы и показатели
  3. II. Основные этапы развития физики Становление физики (до 17 в.).
  4. IV. Определение компенсирующего объёма реализации при изменении анализируемого фактора
  5. Аксиома 2. Для реализации деятельности необходим субъект деятельности.
  6. Акты реализации права
  7. Анализ выполнения договорных обязательств и реализации продукции
  8. Анализ объема производства и реализации продукции
  9. Антропосоциогенез, его сущность, основные этапы и тенденции развития.
  10. Апологетика и патристика как этапы становления средневековой мысли.

Сначала была выбрана тема курсовой работы и функции, которые должно выполнять приложение. На основе этого была спроектирована и заполнена база данных. Следующим этапом был спроектирован общий вид интерфейса. Далее, были программно реализованы страницы для пользователей, не зарегистрированных посетителей и администратора. Далее приложение было протестировано и откорректировано на ошибки. Интерфейс был дополнен из соображений удобства.

 

Код приложения

 

Модель

Таблица Фильмы

namespace Filmion.Models

{

[Bind(Exclude = "FilmId")]

public class Film

{

[ScaffoldColumn(false)]

public int FilmId { get; set; }

 

[DisplayName("Название")]

[Required(ErrorMessage = "Введите название фильма")]

[StringLength(200)]

public string FilmName { get; set; }

 

[DisplayName("Год выхода")]

public int Year { get; set; }

 

[DisplayName("Возрастной ценз")]

public int AgeCens { get; set; }

 

[DisplayName("Продолжительность")]

public int Time { get; set; }

 

[DisplayName("Рейтинг")]

public decimal Reiting { get; set; }

 

[DisplayName("Оригинальное название")]

[StringLength(200)]

public string FilmNameEn { get; set; }

 

[DisplayName("Описание фильма")]

[StringLength(2000)]

public string Description { get; set; }

 

[DisplayName("URL постера")]

[StringLength(1024)]

public string PicUrl { get; set; }

 

public List<GenreFilm> GenreFilm { get; set; }

public List<ActorFilm> ActorFilm { get; set; }

public List<ProduserFilm> ProduserFilm { get; set; }

public List<CountryFilm> CountryFilm { get; set; }

public List<TagFilm> TagFilm { get; set; }

public virtual List<Mark> Mark { get; set; }

}

}

 

Таблица Жанры (модели таблиц Актеры, Продюсеры, Тэги и Страны выглядят таким же образом)

namespace Filmion.Models

{

[Bind(Exclude = "GenreId")]

public class Genre

{

[ScaffoldColumn(false)]

public int GenreId { get; set; }

 

[DisplayName("Жанр")]



[Required(ErrorMessage = "Введите название жанра")]

[StringLength(50)]

public string GenreName { get; set; }

 

public List<GenreFilm> GenreFilm { get; set; }

}

}

 

Связь жанров с фильмами

namespace Filmion.Models

{

[Bind(Exclude = "GenreFilmId")]

public class GenreFilm

{

[ScaffoldColumn(false)]

public int GenreFilmId { get; set; }

 

[DisplayName("Фильм")]

public int FilmId { get; set; }

 

[DisplayName("Жанр")]

public int GenreId { get; set; }

 

public virtual Film Film { get; set; }

public virtual Genre Genre { get; set; }

}

}

 

Таблица Оценок

namespace Filmion.Models

{

[Bind(Exclude = "MarkId")]

public class Mark

{

[ScaffoldColumn(false)]

public int MarkId { get; set; }

 

[DisplayName("Пользователь")]

public int UserId { get; set; }

 

[DisplayName("Фильм")]

public int FilmId { get; set; }

 

[DisplayName("Качество изображения")]

public int QualIm { get; set; }

 

[DisplayName("Качество звука")]

public int QualSo { get; set; }



 

[DisplayName("Ваша оценка фильму")]

public int YourMark { get; set; }

 

[DisplayName("Красивые виды")]

[StringLength(3)]

public string CoolView { get; set; }

 

[DisplayName("Крутой саундтрек")]

[StringLength(3)]

public string CoolTrack { get; set; }

 

[DisplayName("По мотивам книги")]

[StringLength(30)]

public string Book { get; set; }

 

[DisplayName("Комментарий")]

[StringLength(2000)]

public string Comment { get; set; }

 

public virtual Film Film { get; set; }

public virtual User User { get; set; }

}

}

 

Таблица Пользователя

namespace Filmion.Models

{

[Bind(Exclude = "UserId")]

public class User

{

[ScaffoldColumn(false)]

public int UserId { get; set; }

 

[DisplayName("Имя пользователя")]

[StringLength(100)]

public string UserName { get; set; }

 

[DisplayName("Возраст")]

public int Age { get; set; }

 

[DisplayName("Любимые жанры")]

[StringLength(200)]

public string GenreLike { get; set; }

 

[DisplayName("Любимые фильмы")]

[StringLength(1000)]

public string Filmlike { get; set; }

 

[DisplayName("Любимые актеры")]

[StringLength(1000)]

public string ActorLike { get; set; }

 

[DisplayName("О себе")]

[StringLength(1000)]

public string AboutMe { get; set; }

 

public List<Mark> Mark { get; set; }

}

}

 

Класс целостности

using System.Data.Entity;

 

namespace Filmion.Models

{

public class FilmionEntities : DbContext

{

 

public DbSet<Genre> Genre { get; set; }

public DbSet<Country> Country { get; set; }

public DbSet<Actor> Actor { get; set; }

public DbSet<Produser> Produser { get; set; }

public DbSet<GenreFilm> GenreFilm { get; set; }

public DbSet<CountryFilm> CountryFilm { get; set; }

public DbSet<ActorFilm> ActorFilm { get; set; }

public DbSet<ProduserFilm> ProduserFilm { get; set; }

public DbSet<TagFilm> TagFilm { get; set; }

public DbSet<Film> Film { get; set; }

public DbSet<Tag> Tag { get; set; }

public DbSet<Category> Category { get; set; }

public DbSet<User> User { get; set; }

public DbSet<Mark> Mark { get; set; }

}

}

 

Контроллеры

Случайный фильм

namespace Filmion.Controllers

{

public class RandomFilmController : Controller

{

FilmionEntities DB = new FilmionEntities();

 

public ActionResult Index()

{

DbSet<Film> films = DB.Film;

int[] array = (from film in films select film.FilmId).ToArray();

Random rand=new Random();

int random=rand.Next(0,array.Length);

var randomfilm = DB.Film.Find(array[random]);

return View(randomfilm);

}

 

}

}

 

Создание, изменение, удаление жанров

namespace Filmion.Controllers

{

public class GenreManagerController : Controller

{

private FilmionEntities db = new FilmionEntities();

 

 

public ViewResult Index()

{

return View(db.Genre.ToList());

}

 

 

public ViewResult Details(int id)

{

Genre genre = db.Genre.Find(id);

return View(genre);

}

 

 

public ActionResult Create()

{

return View();

}

 

[HttpPost]

public ActionResult Create(Genre genre)

{

if (ModelState.IsValid)

{

db.Genre.Add(genre);

db.SaveChanges();

return RedirectToAction("Index");

}

 

return View(genre);

}

 

 

public ActionResult Edit(int id)

{

Genre genre = db.Genre.Find(id);

return View(genre);

}

 

 

[HttpPost]

public ActionResult Edit(Genre genre)

{

if (ModelState.IsValid)

{

db.Entry(genre).State = EntityState.Modified;

db.SaveChanges();

return RedirectToAction("Index");

}

return View(genre);

}

 

 

public ActionResult Delete(int id)

{

Genre genre = db.Genre.Find(id);

return View(genre);

}

 

 

[HttpPost, ActionName("Delete")]

public ActionResult DeleteConfirmed(int id)

{

Genre genre = db.Genre.Find(id);

db.Genre.Remove(genre);

db.SaveChanges();

return RedirectToAction("Index");

}

 

protected override void Dispose(bool disposing)

{

db.Dispose();

base.Dispose(disposing);

}

}

}

 

Добавление связи жанра с фильмом

namespace Filmion.Controllers

{

public class GenreFilmManagerController : Controller

{

private FilmionEntities db = new FilmionEntities();

 

public ActionResult Index(int id)

{

var genrefilm = db.GenreFilm.Where(a => a.FilmId == id).ToList();

return PartialView(genrefilm);

}

 

 

public ActionResult Create()

{

ViewBag.FilmId = new SelectList(db.Film, "FilmId", "FilmName");

ViewBag.GenreId = new SelectList(db.Genre, "GenreId", "GenreName");

return View();

}

 

 

[HttpPost]

public ActionResult Create(GenreFilm genrefilm)

{

if (ModelState.IsValid)

{

db.GenreFilm.Add(genrefilm);

db.SaveChanges();

return RedirectToAction("Index", "FilmManager");

}

ViewBag.FilmId = new SelectList(db.Film, "FilmId", "FilmName", genrefilm.FilmId);

ViewBag.GenreId = new SelectList(db.Genre, "GenreId", "GenreName", genrefilm.GenreId);

return View(genrefilm);

}

 

 

public ActionResult Edit(int id)

{

GenreFilm genrefilm = db.GenreFilm.Find(id);

 

ViewBag.GenreId = new SelectList(db.Genre, "GenreId", "GenreName", genrefilm.GenreId);

return View(genrefilm);

}

 

 

[HttpPost]

public ActionResult Edit(GenreFilm genrefilm)

{

if (ModelState.IsValid)

{

db.Entry(genrefilm).State = EntityState.Modified;

db.SaveChanges();

return RedirectToAction("Index", "FilmManager");

}

ViewBag.GenreId = new SelectList(db.Genre, "GenreId", "GenreName", genrefilm.GenreId);

return View(genrefilm);

}

 

public ActionResult Delete(int id)

{

GenreFilm genrefilm = db.GenreFilm.Find(id);

return View(genrefilm);

}

 

[HttpPost, ActionName("Delete")]

public ActionResult DeleteConfirmed(int id)

{

GenreFilm genrefilm = db.GenreFilm.Find(id);

db.GenreFilm.Remove(genrefilm);

db.SaveChanges();

return RedirectToAction("Index", "FilmManager");

}

 

protected override void Dispose(bool disposing)

{

db.Dispose();

base.Dispose(disposing);

}

}

}

 

Создание, изменение редактирование фильма

namespace Filmion.Controllers

{

public class FilmManagerController : Controller

{

private FilmionEntities db = new FilmionEntities();

 

//

// GET: /FilmManager/

 

public ViewResult Index()

{

return View(db.Film.ToList());

}

 

public ActionResult Create()

{

return View();

}

 

 

[HttpPost]

public ActionResult Create(Film film)

{

if (ModelState.IsValid)

{

db.Film.Add(film);

db.SaveChanges();

return RedirectToAction("Index");

}

 

return View(film);

}

 

 

public ActionResult Edit(int id)

{

Film film = db.Film.Find(id);

return View(film);

}

 

 

[HttpPost]

public ActionResult Edit(Film film)

{

if (ModelState.IsValid)

{

db.Entry(film).State = EntityState.Modified;

db.SaveChanges();

return RedirectToAction("Index");

}

return View(film);

}

 

 

public ActionResult Delete(int id)

{

Film film = db.Film.Find(id);

return View(film);

}

 

 

[HttpPost, ActionName("Delete")]

public ActionResult DeleteConfirmed(int id)

{

Film film = db.Film.Find(id);

db.Film.Remove(film);

db.SaveChanges();

return RedirectToAction("Index");

}

 

protected override void Dispose(bool disposing)

{

db.Dispose();

base.Dispose(disposing);

}

}

}

 

Контроллер оценок

namespace Filmion.Controllers

{

public class MarkController : Controller

{

private FilmionEntities db = new FilmionEntities();

 

public ViewResult Index()

{

var mark = db.Mark.Include(m => m.Film).Include(m => m.User);

return View(mark.ToList());

}

 

 

public ActionResult MarkFilm(int id)

{

var marks = db.Mark.Where(a => a.FilmId == id).ToList();

return PartialView(marks);

}

 

 

public ViewResult MarkUser()

{

var marks = db.Mark.Where(a => a.User.UserName == User.Identity.Name).ToList();

return View(marks);

}

 

public ViewResult Details(int id)

{

Mark mark = db.Mark.Find(id);

return View(mark);

}

 

 

public ActionResult Create()

{

ViewBag.FilmId = new SelectList(db.Film, "FilmId", "FilmName");

return View();

}

 

 

[HttpPost]

public ActionResult Create(Mark mark)

{

 

var user = db.User.Single(a => a.UserName == User.Identity.Name);

mark.UserId = user.UserId;

if (ModelState.IsValid)

{

db.Mark.Add(mark);

db.SaveChanges();

return RedirectToAction("MarkUser");

}

 

ViewBag.FilmId = new SelectList(db.Film, "FilmId", "FilmName", mark.FilmId);

return View(mark);

}

 

 

public ActionResult Edit(int id)

{

Mark mark = db.Mark.Find(id);

ViewBag.FilmId = new SelectList(db.Film, "FilmId", "FilmName", mark.FilmId);

return View(mark);

}

 

 

[HttpPost]

public ActionResult Edit(Mark mark)

{

if (ModelState.IsValid)

{

db.Entry(mark).State = EntityState.Modified;

db.SaveChanges();

return RedirectToAction("MarkUser");

}

ViewBag.FilmId = new SelectList(db.Film, "FilmId", "FilmName", mark.FilmId);

return View(mark);

}

 

public ActionResult Delete(int id)

{

Mark mark = db.Mark.Find(id);

return View(mark);

}

 

[HttpPost, ActionName("Delete")]

public ActionResult DeleteConfirmed(int id)

{

Mark mark = db.Mark.Find(id);

db.Mark.Remove(mark);

db.SaveChanges();

return RedirectToAction("MarkUser");

}

 

protected override void Dispose(bool disposing)

{

db.Dispose();

base.Dispose(disposing);

}

}

}

 

Контроллер пользователя

namespace Filmion.Controllers

{

public class UserController : Controller

{

private FilmionEntities db = new FilmionEntities();

 

 

public ViewResult Index()

{

return View(db.User.First(d=>d.UserName == User.Identity.Name));

}

 

 

public ViewResult Details(int id)

{

User user = db.User.Find(id);

return View(user);

}

 

 

public ActionResult Create()

{

return View();

}

 

 

[HttpPost]

public ActionResult Create(User user)

{

user.UserName = User.Identity.Name;

 

if (ModelState.IsValid)

{

db.User.Add(user);

db.SaveChanges();

return RedirectToAction("Index");

}

 

return View(user);

}

 

 

public ActionResult Edit(int id)

{

User user = db.User.Find(id);

return View(user);

}

 

 

[HttpPost]

public ActionResult Edit(User user)

{

user.UserName = User.Identity.Name;

if (ModelState.IsValid)

{

db.Entry(user).State = EntityState.Modified;

db.SaveChanges();

return RedirectToAction("Index");

}

return View(user);

}

 

protected override void Dispose(bool disposing)

{

db.Dispose();

base.Dispose(disposing);

}

}

}

 

Контроллер просмотра информации о фильмах

namespace Filmion.Controllers

{

public class FilmsController : Controller

{

FilmionEntities DB = new FilmionEntities();

 

public ActionResult Index()

{

var film = DB.Film.ToList();

 

return View(film);

}

 

public ActionResult GenreList()

{

var genres = DB.Genre.ToList();

 

return PartialView(genres);

}

 

public ActionResult Views(int id)

{

var genreFilm = DB.GenreFilm.Where(a => a.GenreId == id).ToList();

 

return View(genreFilm);

}

 

public ActionResult Mores(int Id)

{

 

var film = DB.Film.Find(Id);

return View(film);

}

 

 

}

}

 

Контроллер для выведения списков жанров, актеров и др. для конкретного фильма

namespace Filmion.Controllers

{

public class ListController : Controller

{

 

private FilmionEntities db = new FilmionEntities();

 

public ActionResult CountryList(int id)

{

var countryfilm = db.CountryFilm.Where(a => a.FilmId == id).ToList();

return PartialView(countryfilm);

}

 

public ActionResult ActorList(int id)

{

var actorfilm = db.ActorFilm.Where(a => a.FilmId == id).ToList();

return PartialView(actorfilm);

}

 

public ActionResult GenreList(int id)

{

var genrefilm = db.GenreFilm.Where(a => a.FilmId == id).ToList();

return PartialView(genrefilm);

}

 

public ActionResult ProduserList(int id)

{

var produserfilm = db.ProduserFilm.Where(a => a.FilmId == id).ToList();

return PartialView(produserfilm);

}

 

public ActionResult TagList(int id)

{

var tagfilm = db.TagFilm.Where(a => a.FilmId == id).ToList();

return PartialView(tagfilm);

}

 

}

}

 


Заключение

В данной курсовой работе были выполнены поставленные задачи, а именно:

· Была создана база данных на MicrosoftSQLServer 2008;

· Было разработано многопользовательское веб-приложение на ASP.NET MVC 3 с разграничением доступа к данным;

· Был разработан простой в понимании интерфейс;

· Приложение выполняет все функции прописанные в техническом задании.


Дата добавления: 2015-01-19; просмотров: 13; Нарушение авторских прав


<== предыдущая лекция | следующая лекция ==>
Инфологическое проектирование. Получаем следующую схему таблиц и связи между ними: Users Marks Films GenreFilm Genre | Основные узлы грузовых лебедок.
lektsii.com - Лекции.Ком - 2014-2017 год. (0.162 сек.) Главная страница Случайная страница Контакты