УДК 004.6
Поварницын Е.Н. студент 4 курса
факультет «Информационные системы и технологии» Северный Арктический Федеральный Университет
Россия, г. Архангельск
РАЗРАБОТКА ИНТЕРНЕТ-РЕСУРСА ДЛЯ РЕЦЕНЗИЙ НА
ФИЛЬМЫ И СЕРИАЛЫ
Аннотация: Статья посвящается разработке веб -ресурса про кинематограф. В ней детально рассматриваются все этапы разработки. А также рассматривается предметная область данной разработки.
Ключевые слова: веб-ресурс, JavaScript, C#, программирование, кинематограф.
Povarnitsyn E. N. student 4rd year
faculty of Information systems and technologies» Northern Arctic Federal University Russia, Arkhangelsk
DEVELOPMENT OF AN ONLINE RESOURCE FOR REVIEWS OF
MOVIES AND TV SERIES
Annotation: This article is devoted to the development of a web resource about cinema. It covers all stages of development in detail. The subject area of this development is also considered.
Keyword: web resource, JavaScript, C#, programming, cinema.
1 ВЫБОР ТЕМЫ, ЦЕЛЬ, АКТУАЛЬНОСТЬ, ЗАДАЧИ
1) Выбор Темы
2) Разработка интернет ресурса «Рецензии на фильмы и сериалы»
3) Цель
Цель проекта: разработать интернет ресурс по обмену мнениями и рецензиями на фильмы и сериалы для любителей кинематографа.
4) Актуальность
В настоящий момент кинематограф является достаточно популярным. Люди тратят много времени на выбор и просмотр кинолент, к тому же существуют кинолюбители, которые хотят поделится своим мнением с другими. Такая возможность может быть предоставлена при помощи разработки интернет ресурса.
5) Задачи
а) Рассмотреть предметную область (жанры кинематографа);
б) проанализировать уже имеющие интернет-ресурсы с данной тематикой;
в) определить основные инструменты разработки;
г) разработать техническое задание;
д) спроектировать структуру интернет ресурса;
е) реализовать базу данных для интернет ресурса;
ж) реализовать дизайн;
з) реализовать интернет ресурс;
и) сделать тестирование.
2 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
2.1 Виды и жанры кинематографа
Существует всего несколько основных видов кино. Их можно поделить на три основных вида: документальное кино, художественное и сериалы. Документальное кино - самый первый вид кинематографа. Документальные фильмы изображают исключительно реальные события и реальных личностей. Если фильм показывает реконструкцию каких-либо событий, он будет художественно-документальным.
Один из подвидов документального кино - образовательные фильмы. Они используются в образовательных целях и очень широкое применение нашли в современной системе образования. Очень часто образовательные фильмы показывают в школах, так как известно, что материал, преподнесенный в виде фильма, усваивается лучше из-за своей наглядности.
Также есть место быть и сериалом. Сериал - фильм или телефильм, состоящий из некоторого - обычно большого - числа серий и имеющий несколько сюжетных линий («потенциальная бесконечность» в отличие от многосерийных телефильмов вообще у которых присутствует «финальная точка»), особая циклическая форма телевизионного искусства. Наиболее известным форматом сериалов являются мыльные оперы, начавшие своё существование в 1930-х годах на американском радио.
Отдельно от документального стоит художественное кино. Главное отличие таких фильмов от документальных - в художественных играют актеры, а происходящие события могут быть полностью вымышленными.
На сегодняшний день существует множество различных жанров кино. Мы рассмотрим несколько основных, наиболее распространенных жанров.
Комедия. Жанр комедийного кино был популярен всегда, ведь все любят от души посмеяться. В таких фильмах обыгрываются различные комические ситуации, часто совершенно неожиданные и непредсказуемые, что добавляет им эффектности.
Боевик. В данном жанре кино обыгрываются различные сцены насилия, драк, погонь, перестрелок и так далее. Довольно часто этот жанр совмещают с фантастикой или фэнтези.
Фантастика и фэнтези. В фильмах данного жанра изображаются полностью вымышленные события и герои. Стоит помнить, что в фантастических фильмах главный акцент делается на различные технологии и технологический прогресс. Фантазийные фильмы чаще напоминают сказку. В мире фэнтези привычную науку заменяют различные виды магии и колдовства.
Детективы. Данный жанр показывает определенные преступления и пути их раскрытия. Часто такие фильмы имеют сложный и запутанный сюжет, который заставляет зрителя проникнуться процессом поиска преступника.
Мелодрама. В данном жанре раскрывается духовная часть жизни героев, а основное внимание уделено их переживанием и эмоциям.
Триллер. Данный жанр кино не имеет четких границ и элементы триллера могут присутствовать в любом жанре. Суть жанра в том, чтобы вызвать у зрителя определенные переживания, волнение, страх.
Ужасы. Название данного жанра говорит само за себя. В данных фильмах показывают события и героев, которые должны откровенно пугать зрителя.
Популярность жанров кино можно посмотреть ниже в соответствии с рисунком 1.
Жанры кине!иого1 рафа
Рисунок 1 - Процентное соотношение популярности жанров кино
Кино - широко распространенное сокращенное название киноискусства, кинематографии или кинотеатра, часть сложных слов, указывающая на связь с кинематографией (например «киноискусство»).
2.2 Анализ существующих платформа для рецензирования кинофильмов
В данный момент существуют различные интернет-ресурсы, которые специализируются на проставление оценок и написания рецензий на различные кинокартины.
В данном пункте будет рассмотрены самые популярные ресурсы.
«КиноПоиск» - крупнейший русскоязычный интернет-сервис о кино. С 2018 года также доступен онлайн-кинотеатр с несколькими тысячами фильмов, сериалов, мультфильмов, в том числе премьерных и эксклюзивных. Главная страница интернет-ресурса выглядит в соответствии с рисунком 2.
Вмбор р»а«<ции
кмивЛомок гр
Смотрите серии в день выхода и тысячи фильмов прямо на КиноЛоиске
Рисунок 2 - Кинопоиск
Возможности веб-ресурса:
а) медиа: новости, репортажи, статьи от редакторов КиноПоиска.
б) возможность ставить оценки фильмам и сериалам, добавлять их в ожидаемые, писать рецензии;
в) покупка билетов в кино через web и мобильные версии приложения;
г) возможность смотреть фильмы и сериалы по подписке Яндекс.Плюс и КиноПоиск + Амедиатека;
д) приложения для Android и iOS;
е) приложения КиноПоиска для Smart TV, LG и Samsung;
ж) энциклопедия: сервис предоставляет информацию о кинофильмах, телесериалах, в том числе кадры, трейлеры, постеры, обои, а также данные о персонах, связанных с кино и телепроизводством: актёрах, режиссёрах, продюсерах, сценаристах, операторах, композиторах, художниках и монтажёрах.
Internet Movie Database - крупнейшая в мире база данных и веб-сайт о кинематографе. В базе собрана информация (по состоянию на декабрь 2017 года) о более чем 4,7 млн кинофильмов, телесериалов и отдельных их серий, а также о 8,3 млн персоналий, связанных с кино, — актёрах, режиссёрах, сценаристах и др. Главная страница интернет-ресурса выглядит в соответствии с рисунком 3.
Рисунок 3 - IMDb
Возможности веб-ресурса:
Популярной возможностью 1МОЬ являются онлайн-голосования. Любой зарегистрированный посетитель сайта может голосовать за фильмы, выставляя им рейтинг: от 1 («худший фильм») до 10 («шедевр») баллов. Таким образом на 1МОЬ выявлены 250 лучших фильмов всех времён по мнению посетителей, а также 100 худших фильмов. Главное достижение данного веб-ресурса — это то, что при составлении рейтинга 250 лучших фильмов учитываются голоса не всех голосовавших. Принимаются меры с целью избежать «накрутки» счётчика голосов. В частности, учитываются голоса только постоянно голосующих участников. Имеются отдельные рейтинги фильмов по жанрам, по десятилетиям и пр.
Metacritic - англоязычный сайт-агрегатор, собирающий отзывы о музыкальных альбомах, играх, фильмах, телевизионных шоу и БУО-дисках. Главная страница интернет-ресурса выглядит в соответствии с рисунком 4.
hjiiuhs picks
Рисунок 4 - Metacritic
Возможности веб-ресурса:
Для каждого продукта вычисляются две средних численных оценки: стобалльная - на основе обзоров профессиональных изданий и десятибалльная - на основе пользовательских обзоров. Отрывок из каждого обзора предоставляется вместе с гиперссылкой на источник. Это даёт представление об общей привлекательности продукта среди рецензентов и, в меньшей степени, общественности. Порой эти две оценки различаются вплоть до полной противоположности.
Рассмотрев данные веб-ресурсы можно прийти к выводу о том, какие функции должны быть реализованы.
Создать веб-ресурс «Рецензии на фильмы и сериалы», который должен включать в себя следующие пункты:
а) вывод списка кинофильмов, сериалов, мультфильмов и так далее;
б) краткая информация о каждом из них;
в) рейтинг картин;
г) рецензии на данные картины;
д) суммировать рейтинг кинокартин с популярных сайтов.
3 ПРОЕКТНАЯ ЧАСТЬ
3.1 Определить основные инструменты разработки
Существует много способов реализации веб-ресурса. Наиболее популярные способы разработки — это такие платформы как Django, Flask, WordPress, Spring.
Django - свободный фреймворк для веб-приложений на языке Python, использующий шаблон проектирования MVC. Проект поддерживается организацией Django Software Foundation. Сайт на Django строится из одного или нескольких приложений, которые рекомендуется делать
отчуждаемыми и подключаемыми. Это одно из существенных архитектурных отличий этого фреймворка от некоторых других. Один из основных принципов фреймворка — DRY.
Flask - фреймворк для создания веб-приложений на языке программирования Python, использующий набор инструментов Werkzeug, а также шаблонизатор Jinja2. Относится к категории так называемых микрофреймворков - минималистичных каркасов веб-приложений, сознательно предоставляющих лишь самые базовые возможности.
WordPress — система управления содержимым сайта с открытым исходным кодом; написана на PHP; сервер базы данных — MySQL; выпущена под лицензией GNU GPL версии 2. Сфера применения - от блогов до достаточно сложных новостных ресурсов. Встроенная система «тем» и «плагинов» вместе с удачной архитектурой позволяет конструировать проекты широкой функциональной сложности.
Spring Framework - универсальный фреймворк с открытым исходным кодом для Java-платформы. Также существует форк для платформы .NET Framework, названный Spring.NET. Несмотря на то, что Spring не обеспечивал какую-либо конкретную модель программирования, он стал широко распространённым в Java-сообществе главным образом как альтернатива и замена модели Enterprise JavaBeans. Spring предоставляет большую свободу Java-разработчикам в проектировании; кроме того, он предоставляет хорошо документированные и лёгкие в использовании средства решения проблем, возникающих при создании приложений корпоративного масштаба.
Но данные платформы не подходят для реализации, ибо некоторые из них предназначены для других разработок, к примеру WordPress стоит использовать, если программист создаёт web магазин.
Проектирование системы будет выполнено с помощью ASP NET Core 3.0 в программе Microsoft Visual Studio. Будут задействованы такие языки программирования как C# и JavaScript. Так же был использован язык разметки HTML и таблица стилей CSS.
Microsoft Visual Studio - линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Windows, Windows Mobile, Windows CE, .NET Framework, Xbox, Windows Phone .NET Compact Framework и Silverlight.
ASP.NET Core - свободно-распространяемый кроссплатформенный фреймворк для создания веб-приложений с открытым исходным кодом. Данная платформа разрабатывается компанией Майкрософт совместно с
сообществом и имеет большую производительность по сравнению с ASP.NET. Имеет модульную структуру и совместима с такими операционными системами как Windows, Linux и macOS.
Microsoft SQL Server - система управления реляционными базами данных, разработанная корпорацией Microsoft. Основной используемый язык запросов — Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с базами данных размером от персональных до крупных баз данных масштаба предприятия; конкурирует с другими СУБД в этом сегменте рынка.
C# - объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров компании Microsoft под руководством Андерса Хейлсберга и Скотта Вильтаумота, как язык разработки приложений для платформы Microsoft .NET Framework.
JavaScript - мультипарадигменный язык программирования. Поддерживает объектно-ориентированный, императивный и функциональный стили.
HTML - «язык гипертекстовой разметки» - стандартизированный язык разметки документов во Всемирной паутине. Большинство веб -страниц содержат описание разметки на языке HTML (или XHTML). Язык HTML интерпретируется браузерами; полученный в результате интерпретации форматированный текст отображается на экране монитора компьютера или мобильного устройства.
CSS - каскадные таблицы стилей - формальный язык описания внешнего вида документа, написанного с использованием языка разметки.
Я выбрал данные средства разработки так как ASP NET Core платформа, которая всегда развивается и будет поддерживаться долгое время, так как её создатели Microsoft, поэтому делая веб-ресурс здесь, можно не переживать что в будущем нужно будет переносить всё на другую платформу. Разрабатывать я всё буду на Microsoft Visual Studio так как это так же разработка Microsoft и не будет никаких проблем с привязкой файлов. Язык C# используется в ASP Net Core и других альтернатив на данной платформе нет. JS язык, который будет использован в Front end разработке, так как с его помощью можно сделать многие вещи, которые на CSS невозможны. Ну и HTML и CSS это визуальная основа сайта.
3.2 Проектирование веб-ресурса
В проекте будут созданы такие модели как жанры фильмов, оценка, рецензии, пользователь. Интерфейсы будут созданы для получения всех фильмов, получение только избранных фильмов, получение фильма по его индивидуальному номеру, для отображения всех жанров и их описания. А также, для поиска фильмов по его названию.
При каждом изменении модели будут использованы миграции, с помощью которых можно будет обновить базу данных для её корректной работы. База данных использовалась встроенная в программу под названием MS SQL Server.
Контроллеры будут так же созданы для авторизации в системе, домашней страницы, просмотра фильма по отдельности, просмотра всех фильмов, а также фильмов, которые сортируются по жанрам. А также контроллеры для поиска фильма по его названию.
Так же стоит отметить, что в проекте будет использован bootstrap, для адаптивного дизайна веб-магазина.
Приблизительно проект будет выглядеть в соответствии с рисунком 5
Рисунок 5 - Макет веб-ресурса
4 РЕАЛИАЦИЯ БАЗЫ ДАННЫХ ДЛЯ ПРОЕКТА Перед тем как реализовывать логические и графические элементы нужно подумать, как будет устроена база данных. Сначала реализуем концептуальную модель базы данных. Она будет выглядеть в соответствии
с рисунком 6
Рисунок 6 - Концептуальная модель базы данных
Так как на нашем сайте будет взаимодействие с пользователем. То в первую очередь добавляем таблицу User (Пользователь). К тому же если будут только пользователи без администраторов и модераторов, то будет анархия, люди будут писать всё что захотят, не будет цензуры и добавления новых фильмов. Поэтому добавляем таблицу Role (Роль пользователя). Пропишем данные таблицы в папке Model в нашем проекте для будущей её миграции. Таблица User будет выглядеть в соответствии с рисунком 6.
public class User
| public irrt Id \ get; set; }
public string Enil { get; set; } public string Password { get; set; J
public irrt? Roleld { get; set; > public Bole Role { get; set; }
>
Рисунок 6 - Таблица User
В данной таблице будет содержаться уникальный индификатор пользователя, его почта и пароль, которые он будет вводить при авторизации или регистрации, если аккаунт ещё не создан, также вторичный ключ на ссылку роль, которая сейчас будет создана.
Создаём таблицу роль, в соответствии с рисунком 7.
public class Role
| public inrt Id { ^et; set; J-
public string Name ■{ get; set; } public List<User> Users { get; set; >
public Bole() {
Users = ikm List<User>();
>
Рисунок 7 - Таблица Role
В данной таблице будет отображаться уникальный индифиактор роли и её название. По умолчанию при регистрации пользователя ему будет присвоена роль обычного пользователя
Так как веб-ресурс будет связан с кинолентами, добавим таблицу Category (Категория). В данной категории будут располагаться все доступные на сайте категории фильмов, а также сериалы и документальные фильмы. Выглядеть таблица будет в соответствии с рисунком 8.
public class category {
; public inrt Id { get; set; J-
public string CateguryNaK { set; get; } public string Description { s< ; get; } public List<Wovie> Movies { s< ; get; }
>
Рисунок 8 - Таблица Category
В данной таблице будет отображаться уникальный индифиактор категории, её название и описание категории. Все категории должны быть заранее прописаны в базе данных до начала будущей проверки работоспособности веб-ресурса.
После чего стоит создать саму таблицу с фильмами, назовём её Movie (Фильмы). В данной таблице будут расположены все доступные на сайте фильмы и сериалы. Это является по сути главным звеном на веб -ресурса. С данной таблицей будут прямо или косвенно связаны все остальные таблицы. Выглядеть она будет в соответствии с рисунком 9.
public class Movie
public Guid Id { set; ge:; } public string Name { set; get; } public string Description { s< ; get; } public string l^g { set; get; } public float Hark { ;er ; get; } public bool isFavourite { set; ger; > public inrt Available { set; get; } public inrt CategprylD { set; get; } public string irl { set; get; } ;j3lic string size { set; get; >
public virtual Category Category { set; get; J
Рисунок 9 - Таблица Movie
В данной таблице будет отображаться уникальный индифиактор фильма, его название, описание, изображение с постером фильма, оценка фильма, отображается ли она на главной странице, наличие его в кино, вторичный ключ категории фильма, его ссылка и время просмотра.
Последняя таблица будет связана с рецензиями и обзорами фильмов, название ReviewMark (Рецензия и оценка). В данной таблице будет считать средняя оценка каждого фильма, а также записываться рецензия, если пользователь её оставил. Таблица будет выглядеть в соответствии с рисунком 10. _
public class ReviewMark
public Guid Id { ser; ge:; } public string Tent \ set; get; } public string Mark \ set; get; } public inrt Lserld { se ; get; } public Guid Mcvield -[ set; get; } public virtual Movie Movie { set; get; } public virtual User User { set; get; }
}
Рисунок 10 - Таблица ЯеуЬе^Иагк
В данной таблице будет отображаться уникальный индифиактор рецензии, текст, написанный пользователем, так же его оценка, вторичный
ключ пользователя, написавшего рецензию, вторичный ключ фильма на который была написана рецензия.
Далее нужно в командной консоли прописать миграцию для создания новой базы, после чего на сервере появится новая, готовая к работе база данных.
5 РЕАЛИЗАЦИЯ ДИЗАЙНА ИНТЕРНЕТ-РЕСУРСА
После того как база готово к эксплуатации приступим к созданию интерфейса веб-ресурса.
На всех страницах будет отображено главное меню, на котором расположено название сайта, категории фильмов, вход на сайт, если пользователь уже вошёл, то личный кабинет и выход, а также поиск.
На главной старице будет отображаться лучшие картины среди всех фильмов с рейтингом не менее 4. Выглядеть заглавная страница будет в соответствии с рисунком 11.
Рисунок 11 - Главная страница
Если пользователь захочет посмотреть категории фильмов он может в любое время нажать на понравившуюся ему категорию, и ему откроется страница с этим жанром, в соответчики с рисунком 12.
Рисунок 12 - Отображение категории жанра
Если пользователь заглянет в подробное описание фильма, то он увидит само расширенное описание, так же постер в большем размере и после этого будет отображаться суммарная оценка и рецензии, написанные на данный фильм, если пользователь ещё не писал рецензии ему предложат написать и поставить оценку фильму. Страница выглядит в соответствии с рисунком 13.
Рисунок 13 - Отображение рецензий на фильм
Если пользователь захочет посмотреть свои прошлые оценки и рецензии он сможет посмотреть их в своём личном кабинете. В нём будут отображаться все фильмы, которые были за рецензированы пользователем. Страница будет выглядеть в соответствии с рисунком 14.
Рисунок 14 - Отображение информации о рецензиях пользователя
Сейчас рассмотрим авторизацию на сайте. В ней возможно ввести свою почту и пароль или же если почты не имеется, то зарегистрироваться. Страница выглядит в соответствии с рисунком 15.
Рисунок 15 - Авторизация на веб-ресурса
Окно регистрации выглядит в соответствии с рисунком 16.
Регистрация
Введите Email
Введите пароль
Повторите пароль
Регистрация
Рисунок 16 - Регистрация
Так же если пользователь имеет роль администратор, то он может добавлять фильмы на сайт. Нужно только ввести название фильма, его описание, выбрать изображение, показывать ли фильм на главной странице, идёт ли фильм в прокате в данный момент, какой жанр фильма. Страница будет выглядеть в соответствии с рисунком 17.
Рисунок 17 - Добавление фильма
6 РЕАЛИЗАЦИЯ ЛОГИКИ ИНТЕРНЕТ-РЕСУРСА Далее разберём логику интернет-ресурса. Начнём с авторизации, в данном методе пользователь вводит свою почту и пароль, после чего данные передаются на сервер, где сверяются с базой данных, если такие данные есть, то пользователь спокойно входит в свой аккаунт, если какие-то данные не верны, он получит сообщение о неверной почте или пароле. Код будет выглядеть в соответствии с рисунком 18.
[Httpfost]
[validateArtiForgeryToken]
(кыПЕй
public asvnc та sk-ilAction Results Login{LoginModel model) (
if (Modelstate.isvalid) i
User user = await _contex±.Users
_________ Jnc Role)
______ . FirstproefaultAsyncfиi =>jL.Eman == model. Email &6 u. Password =
if (user != null) {
await Airtheriticate(Lserj; // аутентификация
return RedirectToAction("Index", "Hone");
}
ModelState.AddModelError^"", "HeicoppeicThue логин и (или) пароль");
= mode 1. Pa sswordj);
return Wiew(model);
Рисунок 18 - Код авторизации
Далее разберём код, при котором фильмы отображаются на главной странице. Веб-ресурс запрашивает на сервер разрешение, если всё в порядке, то с базы данных возвратятся объекты в виде фильмов. Выглядеть код будет в соответствии с рисунком 19._
var memhctoj = new HovieListViewModel {
allMovies = »vies, currcartegory = currcategory
};
viewBag.Title = "Moviesoap"; return View(merchobj);
Рисунок 19 - Вывод фильмов
Далее разберём метод поиска фильмов по его названию. Так же пользователь будет вводить в поисковую строку название фильма, если слово, словосочетание или буква присутствует в названии фильма, то данный фильм отобразится в поиске, в этом случае на сервер будет передаваться и сортироваться то, что вводит пользователь. Код поиска будет выглядеть в соответствии с рисунком 20._
[Httppost]
¡jcti.nh: О
public Viewlesult Index[string search) {
var searchMerches = new SearcliFiltersViewModel
I I .........
searchHovie = _merchRep.GetEearchMovies.Where{H => x.Name.£ontaiJis£searcy)
К
return View{searchMerches);
Рисунок 20 - Код поиска фильмов
Далее разберём метод, который позволяет увидеть страницу с описанием, оценкой и рецензией на фильм. В данном методе используется 4 таблицы в базе данных. В данном методе будет передаваться адресная строка, что является индивидуальным индификатором фильма, с помощью его идёт сортировка рецензий, пользователей и названия фильма. Код данного метода будет выглядеть в соответствии с рисунком 21.
public Viewnesult Item(string named) {
string _named = named; Guid gliame = Guid.NewGuid(); gltame = not Guid (named); lEnumerable<Mavi±> movies = null; lEnumerable<Reviei,Mar1k> review = null; lEnumerable<User> userEmails = null; string currNamed = "";
if (string.IsNullOrEmityCnamed)) {
monies = _allMovies,Movies.OrderEyfi => i.ld);
review = _allReviei#larks.ReviewMark5.0rderEy{i => i.ld);
userEmails = _allusers.Users.OrderBy(i => i.ld);
i
else {
if (string.Equalstnamed, named, StringComparison.OrdinallgnoreCase)) {
movies = _allWovies .Movies.ltiiere(i => i.ld == gName);
review = _allReviewMarks.ReviewMarks,Htiere(i => i.Movield == gNane);
userEmails = _allJU5ers.Users.OrderB^{i => i.ld);
>
1
var Krchcbj = new itemviewwodel i
allMovies = movies, currNamed = currNamed, review = revieWj userEmails = userEmails
};
vieweag. Title = "big hajuse"; return View(merchobj);
}
Рисунок 21 - Отображение рецензий и описание фильма
Личный кабинет имеет почти такой же метод как и прошлый, но здесь уже идёт сортировка по уникальному индификатору пользователя, ибо именно он оставляет рецензии. Код будет выглядеть в соответствии с рисунком 22.
public VieuResuIt Index()
lEnumerable<Mavi ±> movies = nul.1; iEnumerableiRevietMarto review = null; lEnumerableiUser> userEmails = null;
movies = _allMovies.Movies.OrderEy[i => i.ld);
review = _allReviem«arks.ReviewMarks.OnderBy{L => i.ld);
userEmails = _allUsers.LJsers.OrderBy(i => i.ld);
var merchCbj = new ItenIVienitodel {
allMovies = movies, review = review., userEmails = userEmails
};
ViewBag. Title = "BIG hajuse"; return View(merchobj);
Рисунок 22 - Код отображения уже оставленных рецензий
пользователя
Далее разберём последний Controller в данной проекте. Это добавление новый фильмов. Пользователь заполняет некую форму, которая отправляет данные в метод. Там сперва изображение сохраняется на сервере, для того чтобы в будущем отображать обложку фильма и чуть меняет путь самого файла, далее все данные сохраняются в базу данных. Код выглядит в соответствии с рисунком 23.
Crbj/MHiC
public async Task<lActionResult> CreateAction(string name, string description, iFormFile irg, bool isFavouritej int available^ inrt categoryir)
{
string path = "/img/" + ii^.FileNane;
using ( ar filestream = n;.i FileStream(_appEnvironment.WebRoatPath + path, FileMode.Create)) {
a ,'ja it iag. Copy ToAsy nc if filestreaaj ;
i
Movie »vie = ne Movie { Name = name^ Description = description, Img = path,
isFavourite = isFaivourite, Available = available, CategorylD = categorylDj r^ark = e ); _context. Movies. Add (»vie) ;
amit antat^i^BnEgËH^;
return RedirectToAction("Create");
J
Рисунок 23 - Код добавление нового фильма
7 ТЕСТИРОВАНИЕ
В тестирование будет разобрано введение данных фильмов, допустим администратор захочет ввести в базу фильм «Зелёная книга», для этого нужно ему перейти в раздел добавления фильмов, там он должен ввести название фильма, его описание, вставить изображение, указать будет ли он
отображаться на главной странице, идёт ли он в прокате и к какому жанру он относиться. Приблизительно это должно выглядеть в соответствии с рисунком 24.
Рисунок 24 - Создание фильма в базе
Далее если всё хорошо создано можно увидеть данный фильм на главной странице, в соответствии с рисунком 25.
Рисунок 25 - Отображение созданного фильма в главном меню