Dream-Land.by 
Вход
  Поиск  
Програмирование
MyLibraryMVC
  Посмотрели 97 раз(а)    
 MyLibraryMVC 
последнее обновление: 11 июля 2018
  Web.config
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=301880
-->

<configuration>

<appSettings>
<add key="webpages:Version" value="3.0.0.0"/>
<add key="webpages:Enabled" value="false"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>

<system.web>
<compilation debug="true" targetFramework="4.5"/>
<httpRuntime targetFramework="4.5"/>
</system.web>

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.5.2.14234" newVersion="1.5.2.14234"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.1.0.0" newVersion="5.1.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>

</configuration>
  C#     Global.asax.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace MyLibraryMVC
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}
}


Views
  Views\Home\AddFilm.cshtml
@model MyLibraryMVC.Models.Film

@{
  Layout = null;
}

<!DOCTYPE html>

<html>
<head>
  <meta name="viewport" content="width=device-width" />
  <title>Добавление кино</title>
  <link href="~/Content/bootstrap.css" rel="stylesheet" />
  <link href="~/Content/bootstrap-theme.css" rel="stylesheet" />
  <style>
  td {
  padding-top: 14px;
  }
  </style>
</head>

<body>
  <center>
  <h2>Добавление фильма </h2>

  @using (Html.BeginForm())
  {
  @Html.ValidationSummary()
  <table class="" border="0" style="width:400px;">
  <!-- Название фильма -->
  <tr>
  <td align="right">Название фильма:</td>
  <td style="padding-left:7px;">@Html.TextBoxFor(model => model.FilmName)</td>
  </tr>

  <!-- Год выпуска -->
  <tr>
  <td align="right">Год выпуска:</td>
  <td style="padding-left:7px;">@Html.TextBoxFor(model => model.Year)</td>
  </tr>

  <!-- Страна -->
  <tr>
  <td align="right">Страна:</td>
  <td style="padding-left:7px;">@Html.DropDownListFor(model => model.Country, @Model.ListCountries, "Выберите страну", new { @class = "form-control" })
  </tr>

  <!-- Жанр -->
  <tr>
  <td align="right">Жанр:</td>
  <td style="padding-left:7px;">@Html.TextBoxFor(model => model.Type)</td>
  </tr>

  </table>

  <br />

  <input type="submit" class="btn btn-success" value="Добавить" />
  }
  </center>
</body>
</html>
  Views\Home\EditFilm.cshtml
@model MyLibraryMVC.Models.Film

@{
  Layout = null;
}

<!DOCTYPE html>

<html>
<head>
  <meta name="viewport" content="width=device-width" />
  <title>Редактирование фильма</title>
  <link href="~/Content/bootstrap.css" rel="stylesheet" />
  <link href="~/Content/bootstrap-theme.css" rel="stylesheet" />
  <style>
  td {
  padding-top: 14px;
  }
  </style>
</head>

<body>
  <center>

  <h2>Редактирование фильма</h2>

  @using (Html.BeginForm("UpdateFilmInDatabase", null))
  {
  @Html.ValidationSummary()

  <table class="" border="0" style="width:400px;">
  <!-- Название фильма -->
  <tr>
  <td align="right">Название фильма:</td>
  <td style="padding-left:7px;">@Html.TextBoxFor(model1 => model1.FilmName)</td>
  </tr>

  <!-- Год выпуска -->
  <tr>
  <td align="right">Год выпуска:</td>
  <td style="padding-left:7px;">@Html.TextBoxFor(model => model.Year)</td>
  </tr>

  <!-- Страна -->
  <tr>
  <td align="right">Страна:</td>
  <td style="padding-left:7px;">@Html.DropDownListFor(model => model.Country, @Model.ListCountries, "Выберите страну", new { @class = "form-control" })
  </tr>

  <!-- Жанр -->
  <tr>
  <td align="right">Жанр:</td>
  <td style="padding-left:7px;">@Html.TextBoxFor(model => model.Type)</td>
  </tr>
  </table>

  <br />

  @Html.HiddenFor(model => model.ID)
  <input type="submit" class="btn btn-success" value="Сохранить" />
  }
  </center>

</body>
</html>
  Views\Home\FilmAlreadyExists.cshtml
@model MyLibraryMVC.Models.Film

@{
  Layout = null;
}

<!DOCTYPE html>

<html>
<head>
  <meta name="viewport" content="width=device-width" />
  <title>Фильм не добавился</title>
</head>
<body>
  <div>
  Фильм "@Model.FilmName" уже существует
  </div>
</body>
</html>
  Views\Home\Index.cshtml
@model List<MyLibraryMVC.Models.Film>

@{
  Layout = null;
}

<!DOCTYPE html>

<html>
<head>
  <meta name="viewport" content="width=device-width" />
  <title>Моя библиотека</title>
  <link href="~/Content/bootstrap.css" rel="stylesheet" />
  <link href="~/Content/bootstrap-theme.css" rel="stylesheet" />

  <style type='text/css'>
  .ClassAddFilm {
  color: blue;
  background-color: yellow;
  font-size: 18px;
  }

  .ClassDeleteFilm {
  color: red;
  font-size: 16px;
  }
  </style>
</head>

<!-- body -->
<body>
  <!-- "Добавить" фильм -->
  <div class="text-center">
  <h2>Библиотека фильмов</h2>

  <br />

  @Html.ActionLink("+ Добавить кино", "AddFilm", null, new { @class = "ClassAddFilm" })

  <br /><br /><br />
  </div>

  <!-- список фильмов -->
  <center>
  <table class="table table-striped" border="0" style="width:600px;">
  <tr>
  <th>Название фильма</th>
  <th>Год выпуска</th>
  <th>Страна</th>
  <th>Жанр</th>
  <th colspan="2"></th>
  </tr>
  @foreach (MyLibraryMVC.Models.Film item in Model)
  {
  <tr>
  <td>@item.FilmName</td>
  <td>@item.Year</td>
  <td>@item.Country</td>
  <td>@item.Type</td>
  <td>@Html.ActionLink("Редактировать", "EditFilm", @item)</td>
  <td>@Html.ActionLink("Удалить", "DeleteFilm", @item, new { @class = "ClassDeleteFilm" })</td>
  </tr>
  }
  </table>
  </center>

</body>
</html>


Models
  C#     Models\Film.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;// подключить чтобы использовать валидацию
using System.Data.SqlClient;
using System.Data;
using System.Web.Mvc;

namespace MyLibraryMVC.Models
{
  public class Film
  {
  public int ID { get; set; }

  [Required(ErrorMessage = "Пожалуйста, введите название фильма")]
  [RegularExpression("[a-zA-Z ]+", ErrorMessage = "Вы ввели некорректное название филма (только агл буквы)")]
  public string FilmName { get; set; }

  public int Year { get; set; }

  public string Country { get; set; }

  public string Type { get; set; }

  public static string connectionString = "server=EVGENI; Database=MYLIBRARY; Integrated Security=SSPI;";

  public static int FilmsCount()
  {
  return Film.MakeListFilms().Count;
  }

  public static int CreateFilmID()
  {
  // connection
  SqlConnection connection = new SqlConnection(Film.connectionString);

  // sql query
  string SQLcommand = "SELECT MAX(ID) from FILMS";

  SqlDataAdapter adapter = new SqlDataAdapter(SQLcommand, connection);
  DataSet dataset = new DataSet();
  int rows = adapter.Fill(dataset, "FILMS");

  // take rows
  DataRow row = dataset.Tables["FILMS"].Rows[0];
  if (row == null)
  return 1;
  int max_id = int.Parse(row[0].ToString());
  return max_id + 1;
  }

  public static void AddFilm(Film item)
  {
  // connection
  SqlConnection connection = new SqlConnection(Film.connectionString);
  connection.Open();

  // create new id
  int id = Film.CreateFilmID();

  // sql query
  string SQLQuery = "INSERT INTO FILMS (ID, NAME,COUNTRY, TYPE, YEAR) VALUES (@ID, @NAME, @COUNTRY, @TYPE, @YEAR)";

  using (SqlCommand cmd = new SqlCommand(SQLQuery, connection))
  {
  // Добавить параметры
  cmd.Parameters.AddWithValue("@ID", id);
  cmd.Parameters.AddWithValue("@NAME", item.FilmName);
  cmd.Parameters.AddWithValue("@COUNTRY", item.Country);
  cmd.Parameters.AddWithValue("@TYPE", item.Type);
  cmd.Parameters.AddWithValue("@YEAR", item.Year);

  cmd.ExecuteNonQuery();
  }
  }

  public static void EditFilm(Film item)
  {
  // connection
  SqlConnection connection = new SqlConnection(Film.connectionString);
  connection.Open();

  // sql query
  string SQLQuery = "UPDATE FILMS SET NAME=@NAME, COUNTRY=@COUNTRY, TYPE=@TYPE, YEAR=@YEAR WHERE ID=@ID";

  using (SqlCommand cmd = new SqlCommand(SQLQuery, connection))
  {
  // Добавить параметры
  cmd.Parameters.AddWithValue("@ID", item.ID);
  cmd.Parameters.AddWithValue("@NAME", item.FilmName);
  cmd.Parameters.AddWithValue("@COUNTRY", item.Country);
  cmd.Parameters.AddWithValue("@TYPE", item.Type);
  cmd.Parameters.AddWithValue("@YEAR", item.Year);

  cmd.ExecuteNonQuery();
  }
  }

  public static void DeleteFilm(int id)
  {
  // connection
  SqlConnection connection = new SqlConnection(Film.connectionString);
  connection.Open();

  // sql query
  string SQLQuery = "DELETE FILMS WHERE ID=@ID";

  using (SqlCommand cmd = new SqlCommand(SQLQuery, connection))
  {
  // Добавить параметры
  cmd.Parameters.AddWithValue("@ID", id);

  cmd.ExecuteNonQuery();
  }
  }


  public static List<Film> MakeListFilms()
  {
  // connection
  SqlConnection connection = new SqlConnection(Film.connectionString);

  // sql query
  string SQLcommand = "SELECT * from FILMS";

  SqlDataAdapter adapter = new SqlDataAdapter(SQLcommand, connection);
  DataSet dataset = new DataSet();
  int rows = adapter.Fill(dataset, "FILMS");

  // take rows
  List<Film> listFilms = new List<Film>();
  foreach (DataRow row in dataset.Tables["FILMS"].Rows)
  {
  Film film = new Film();
  film.ID = int.Parse(row["ID"].ToString());
  film.FilmName = row["NAME"].ToString();
  film.Country = row["COUNTRY"].ToString();
  film.Type = row["TYPE"].ToString();
  film.Year = int.Parse(row["YEAR"].ToString());
  listFilms.Add(film);
  }

  return listFilms;

  }

  public static bool IsFilmExists(string FilmName)
  {
  SqlConnection connection = new SqlConnection(Film.connectionString);

  // sql query
  string SQLcommand = "SELECT * from FILMS WHERE NAME='" + FilmName + "'";

  SqlDataAdapter adapter = new SqlDataAdapter(SQLcommand, connection);
  DataSet dataset = new DataSet();
  int rows = adapter.Fill(dataset, "FILMS");
  return rows > 0;
  }

  public IEnumerable<SelectListItem> ListCountries
  {
  get
  {
  List<SelectListItem> listItems = new List<SelectListItem>()
  {
  new SelectListItem() { Text = "Belarus", Value = "Belarus"},
  new SelectListItem() { Text = "USA", Value = "USA"},
  new SelectListItem() { Text = "France", Value = "France"},
  new SelectListItem() { Text = "England", Value = "England"}
  };
  return listItems;
  }
  }
  }
}


Controllers
  C#     Controllers\HomeController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Configuration;
using System.Data.SqlClient;
using System.Data;

using MyLibraryMVC.Models;

namespace MyLibraryMVC.Controllers
{
  public class HomeController : Controller
  {
  // GET: Home
  public ActionResult Index()
  {
  List<Film> list = Film.MakeListFilms();
  return View("Index", list);
  }

  [HttpGet]
  public ActionResult AddFilm()
  {
  return View(new Film());
  }

  [HttpPost]
  public ActionResult AddFilm(Film myfilm)
  {
  if (Film.IsFilmExists(myfilm.FilmName))
  return View("FilmAlreadyExists", myfilm);

  // list films
  Film.AddFilm(myfilm);
  return Index();
  }

  public ActionResult DeleteFilm(Film item)
  {
  // delete film
  Film.DeleteFilm(item.ID);
  return Index();
  }

  [HttpGet]
  public ActionResult EditFilm(Film item)
  {
  return View("EditFilm", item);
  }

  [HttpPost]
  public ActionResult UpdateFilmInDatabase(Film item)
  {
  // list films
  Film.EditFilm(item);
  return Index();
  }
  }
}


Route
  C#     App_Start\RouteConfig.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace MyLibraryMVC
{
  public class RouteConfig
  {
  public static void RegisterRoutes(RouteCollection routes)
  {
  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

  routes.MapRoute(
  name: "Default",
  url: "{controller}/{action}/{id}",
  defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
  );
  }
  }
}
Ваши Отзывы ... комментарии...
   
Вашe имя:
Ваш комментарий (www ссылки может добавлять только залогиненный пользователь)

Картинки

  Языки программирования и другое  

Тема: 'HTML'
Html & CSS

Тема: 'JS'
JavaScript
jQuery - фрэймворк для удобной работы с JavaScript
Three.js - библиоткеа отображения 3D графики на JavaScript
prototype.js - фрэймворк для удобного написания классов и наследования в JavaScript

Тема: 'Графика, таблицы, диалоги и многое другое для WEB страниц'
jQuery UI - кнопки, меню, диалог, slider, spinner и т.д.. Эфекты: растягивание, перетаскивание и т.д.
jq Plot - диаграммы, графические линии
Bootstrap - кнопки, меню, диалог, slider и т.д... Контейнеры для размещения элементов
Kendo UI - редактор текста, excell редактор, chart и т.д....

Тема: 'JavaScript технологии'
Node.js (это web сервер исполняющий js файлы)
React.js
Angular

Тема: 'SQL база данных'
Microsoft SQL Server (база данных)
SQL (язык запросов в базе данных)

Тема: 'Работа с базой данных на C#'
ADO.NET (работа с базой данных на C#)
Entity Framework (работа с базой данных на C#)
LINQ to Database (работа с базой данных на C#)

Тема: 'Microsoft C# и .NET'
С# (язык программирования)
Managed C++ (переходный код между C++ и C#)
Windows Forms (отдельное приложение exe файл)
WPF. Windows Presentation Foundation (отдельное приложение exe файл)
ASP.NET Web Forms (web сайт на aspx страницах). Это устаревшая технология!
ASP.NET MVC (web сайт на архитектуре Model-View-Controller)
.NET Core
ASP.NET Core
Web API (веб-служба работающая по протоколу HTTP)
Windows Communication Foundation (веб-служба работающая через интерфейсы)
Silverlight
Microsoft XNA
Xamarin (приложение на C# для iOS, Android, Windows Phone)
Собеседование (вопросы и задания C# и платформа .NET)

Тема: 'Автоматическое тестирование'
Автоматическое юнит тестирование (MSTest, NUnit, xUnit, Moq)

Тема: 'Рефакторинг & Паттерны'
Рефакторинг кода
Паттерны (шаблоны) проектирования

Тема: 'Git'
Git Extensions  &  GitHub.com

Тема: 'Разработка игр'
Моя игра "Animal Go". Технологии: C#, Android, Windows

Тема: 'Технологии для написания игр'
MonoGame - разработка 2D игр на C# для Android, iOS, Windows
Unity - разработка 3D игр на C# для Android, iOS, Windows
LibGDX - разработка игр на Java для Android
Разработка игр на HTML5, CSS3, Javascript для Android

Тема: 'WEB сайт'
Создание Web сайта и управление (регистрация сайта, копирование файлов на сайт, сохранение базы данных)
Yandex сервисы для Web сайта (счетчик посещений, карта улиц, переводчик языков, контекстная реклама, ...)
Google сервисы для Web сайта
Продвижение WEB сайта

Тема: 'Языки программирования'
PHP (язык программирования для быстрого написания Web сайта)
Java
Python
C++

Тема: 'Интернет браузеры'
Интернет браузер "Google Chrome"

Тема: 'WEB сервер'
Что такое WEB сервер ?

Тема: 'bat файлы'
.bat файл (команды)

Тема: 'Операционные Системы'
Windows (операционная система для персональных компьютеров)
Android (операционная система для телефонов, планшетов)
iOS (операционная система для iPhone телефонов, iPad планшетов, MacBook ноутбуков)

Тема: 'Программы для разработки (интегрированные среды для разработки IDE)'
Visual Studio (интегрированная среда разработки) работает в Windows и macOS. Для написания программ на C#, С++
Открываем Visual Studio
Удаляем и устанавливаем NuGet в Visual Studio
Visual Studio Code (редактор кода) работает в Windows, macOS, Linux. Для написания программ на JavaScript, Perl, Python, Java, C#

Тема: 'Компьютерная платформа (процессор)'
x86 процессоры
ARM процессоры

Тема: 'Распознавание картинки в текст'
Распознать (перевести) картинку в текст (ONLINE)

Тема: 'Рисуем картинки, видео'
Рисуем карандашом (животных, машинки, сказочных героев)
Рисование в CorelDraw
Видео (редактирование, создание)
Делаем животных, цветочки из длинного шарика ШДМ

Тема: 'PDF to word, images'
Convert PDF to Word (online)
Convert FB2 to PDF (online)

Тема: 'Регулярные выражения'
Регулярные выражения (проверить онлайн)

Тема: 'Резюме (как найти работу)'
Как написать резюме, причины перехода на другую работу
-
Картинки для мой игры
dir proj
MyLibraryMVC
Объявления
 

Концерты, выставки
Спортивные занятия
Детские центры
Кино
Книги
Бесплатные объявления
Праздники
Скидки в магазинах Минска
Домашние животные
Программирование и технологии
Игра
Путешествия
Форум (обсуждение)
vsedetkam.by для детей
Архив Евровидений

Ваши вопросы, предложения присылайте по почте: info@dream-land.by
Яндекс.Метрика