Movies are editable as well
This commit is contained in:
@ -23,6 +23,39 @@ namespace Vidly.Controllers
|
||||
_context.Dispose();
|
||||
}
|
||||
|
||||
public ActionResult New()
|
||||
{
|
||||
var movieGenres = _context.MovieGenres.ToList();
|
||||
var viewModel = new MovieFormViewModel
|
||||
{
|
||||
Movie = new Movie(),
|
||||
MovieGenres = movieGenres
|
||||
};
|
||||
return View("MovieForm", viewModel);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public ActionResult Save(Movie movie)
|
||||
{
|
||||
if (movie.Id == 0)
|
||||
_context.Movies.Add(movie);
|
||||
else
|
||||
{
|
||||
var movieInDb = _context.Movies.Single(c => c.Id == movie.Id);
|
||||
// Mapper.Map(customer, customerInDb);
|
||||
|
||||
movieInDb.Name = movie.Name;
|
||||
movieInDb.ReleaseDate = movie.ReleaseDate;
|
||||
movieInDb.MovieGenreId = movie.MovieGenreId;
|
||||
movieInDb.NumberInStock = movie.NumberInStock;
|
||||
}
|
||||
_context.SaveChanges();
|
||||
|
||||
return RedirectToAction("Index", "Movies");
|
||||
}
|
||||
|
||||
|
||||
|
||||
[Route("Movies")]
|
||||
[Route("Movies/Index")]
|
||||
public ActionResult Index()
|
||||
@ -43,5 +76,23 @@ namespace Vidly.Controllers
|
||||
return View(movie);
|
||||
}
|
||||
|
||||
public ActionResult Edit(int id)
|
||||
{
|
||||
var movie = _context.Movies.SingleOrDefault(c => c.Id == id);
|
||||
|
||||
if (movie == null)
|
||||
return HttpNotFound();
|
||||
|
||||
var viewModel = new MovieFormViewModel
|
||||
{
|
||||
Movie = movie,
|
||||
MovieGenres = _context.MovieGenres.ToList()
|
||||
};
|
||||
|
||||
return View("MovieForm", viewModel);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
29
Vidly/Migrations/201901222208159_AddedRequiredAndMaxlengthToMovieName.Designer.cs
generated
Normal file
29
Vidly/Migrations/201901222208159_AddedRequiredAndMaxlengthToMovieName.Designer.cs
generated
Normal file
@ -0,0 +1,29 @@
|
||||
// <auto-generated />
|
||||
namespace Vidly.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
|
||||
public sealed partial class AddedRequiredAndMaxlengthToMovieName : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(AddedRequiredAndMaxlengthToMovieName));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "201901222208159_AddedRequiredAndMaxlengthToMovieName"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
namespace Vidly.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class AddedRequiredAndMaxlengthToMovieName : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
AlterColumn("dbo.Movies", "Name", c => c.String(nullable: false, maxLength: 255));
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
AlterColumn("dbo.Movies", "Name", c => c.String());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Target" xml:space="preserve">
|
||||
<value>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</value>
|
||||
</data>
|
||||
<data name="DefaultSchema" xml:space="preserve">
|
||||
<value>dbo</value>
|
||||
</data>
|
||||
</root>
|
||||
29
Vidly/Migrations/201901222224513_AddedNullableReleaseDateToMovie.Designer.cs
generated
Normal file
29
Vidly/Migrations/201901222224513_AddedNullableReleaseDateToMovie.Designer.cs
generated
Normal file
@ -0,0 +1,29 @@
|
||||
// <auto-generated />
|
||||
namespace Vidly.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
|
||||
public sealed partial class AddedNullableReleaseDateToMovie : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(AddedNullableReleaseDateToMovie));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "201901222224513_AddedNullableReleaseDateToMovie"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
namespace Vidly.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class AddedNullableReleaseDateToMovie : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
AlterColumn("dbo.Movies", "ReleaseDate", c => c.DateTime());
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
AlterColumn("dbo.Movies", "ReleaseDate", c => c.DateTime(nullable: false));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Target" xml:space="preserve">
|
||||
<value>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</value>
|
||||
</data>
|
||||
<data name="DefaultSchema" xml:space="preserve">
|
||||
<value>dbo</value>
|
||||
</data>
|
||||
</root>
|
||||
29
Vidly/Migrations/201901222227126_AddedNullableAddedDateToMovie.Designer.cs
generated
Normal file
29
Vidly/Migrations/201901222227126_AddedNullableAddedDateToMovie.Designer.cs
generated
Normal file
@ -0,0 +1,29 @@
|
||||
// <auto-generated />
|
||||
namespace Vidly.Migrations
|
||||
{
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Data.Entity.Migrations;
|
||||
using System.Data.Entity.Migrations.Infrastructure;
|
||||
using System.Resources;
|
||||
|
||||
[GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")]
|
||||
public sealed partial class AddedNullableAddedDateToMovie : IMigrationMetadata
|
||||
{
|
||||
private readonly ResourceManager Resources = new ResourceManager(typeof(AddedNullableAddedDateToMovie));
|
||||
|
||||
string IMigrationMetadata.Id
|
||||
{
|
||||
get { return "201901222227126_AddedNullableAddedDateToMovie"; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Source
|
||||
{
|
||||
get { return null; }
|
||||
}
|
||||
|
||||
string IMigrationMetadata.Target
|
||||
{
|
||||
get { return Resources.GetString("Target"); }
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
namespace Vidly.Migrations
|
||||
{
|
||||
using System;
|
||||
using System.Data.Entity.Migrations;
|
||||
|
||||
public partial class AddedNullableAddedDateToMovie : DbMigration
|
||||
{
|
||||
public override void Up()
|
||||
{
|
||||
AlterColumn("dbo.Movies", "DateAdded", c => c.DateTime());
|
||||
}
|
||||
|
||||
public override void Down()
|
||||
{
|
||||
AlterColumn("dbo.Movies", "DateAdded", c => c.DateTime(nullable: false));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Target" xml:space="preserve">
|
||||
<value>H4sIAAAAAAAEAO1d3W7cuBW+L9B3EHTVFl6Pf5ogNWZ24Yzj1mhsBxkn6J3BkeixEImalTiOjWKfrBd9pL5CSf3yX5RGo5GDRYDAlsiPh4ffIQ9JneP//ee/01+eo9B5gkkaxGjmHh8euQ5EXuwHaDVzN/jhp3fuLz//8Q/TD3707Hwty53ScqQmSmfuI8brs8kk9R5hBNLDKPCSOI0f8KEXRxPgx5OTo6O/TY6PJ5BAuATLcaafNwgHEcx+Ib/OY+TBNd6A8Dr2YZgWz8mbRYbq3IAIpmvgwZn7NfDDl8O8nOuchwEgMixg+OA6AKEYA0wkPPuSwgVOYrRarMkDEN69rCEp9wDCFBaSn9XFbTtxdEI7MakrllDeJsVx1BLw+LTQykSs3km3bqU1orcPRL/4hfY6093MnWdNwMR1xMbO5mFCC/KqPSwrHDjZ44Nq8AlH6L8DZ74J8SaBMwQ3OAHhgfNpswwD75/w5S7+BtEMbcKQFYqIRd5xD8ijT0m8hgl++QwfClGvfNeZ8PUmYsWqGlMn78QVwqcnrnNDGgfLEFZjznR4geME/h0imAAM/U8AY5ggigEzrUmtC23R/8vWCMmIpbjONXj+CNEKP87ckzdvXOcyeIZ++aSQ4AsKiGGRSjjZQIWE5lbfBwl+vCACl03Tn++CqLHiVbrYLFMvCZbQv4tv4Pf0I6Q9LnHex3EIAWot0DWMloQSj8Ga4tQD8P4FW/TuBjwFq2w4jLCu8xmGWTH6JDf0ipr3YtnLJI4+xyFDd6HI/SLeJB5VYWwudweSFcS81NNJbVVGWxPFsrQ4vtprszu7YW9nSm+OrCzJ3MYiWKEv60sImRni+G1rUS82STZ4V+g6Rvhxq25fBKkXkyXwM2POFkD2BIyfAjrBJS3IV1X5nXhEgeC5NfPajU67gXltY/KjLsJkMYIghV2WYVru3Peh37bizYYuC1eIKMz71qTghiW7MvL+lmtmqlEs1dnre7ZQvUaL76TFWSqw1apcMotim6zvunKyz9P1DcSHZcXDHPIyIXDf4+TbIYt44FjXq634xNaKT4+XD6fv3rwF/unbv8LTN8NbtMLGjk/e7cLGGi37bS+tahlNto5JqiQzO973RbGazvJbidCKIr1QmkL1T+sSdfzUppLK9FYWpR3qYgllE0NbQynvbtu1Ztz5ek0GL6MW1Yi1FyPUe23+zHDj/SECQdjD9GfRyjxGD0ES1R5J15OATyBNifX7/wDpY89OtWI7B71NQki5wCBa77y1T48xgrkHNmRbvQ3N3ff4EnjE1f6AaK2t8T4SHzTe4A/Ip+7rF+y19WYrgF7EOfc8mKaXhMzQn9Md9Xb+MZ2a9u1+zEMQRGr/Q5hE78uitQ+iLiH5IZpiKl/EJOrHeBUgO1HLonpR8xKNohbF2opKwewkLUrqBc0KNMqZl+rNu8tGqH/3LoMdv3839sOIfTmH2fDlZ8w7Xpuylr6CcLO3UzOWttkk0L81ZLDjt4ZMTPL4KfCpV2Kx6SkLE3ir8ur9VLPNCZINbQ5cN4dufJg5QGcu52kae0FmBcKFr3hJxneCOHKO5Y1Z3i/2/o10j9A9oAsfEWnm/kXSUTN8uUIy8OL1Gd/IsSvy9xZdwBBi6Jx7+d37HKQe8OURI7rz+SeE8jChxg3obiglJhsgLNtHgLxgDUK7rgjVLRc0Kl7VkPjmAq4hopOQ3VjZSCDf3sryVM0KamzS2nTC0NHMUul8WMcf/WExQ5z8YsWelNoDZhG0OLseGxN18g9AQd14WHGPu4bYC+8UR7k6kpjOdWua8LcLOySKUTAFf+Uz4ib76ERFvZYGIKNeEzaNq4+EByKiZk+vG/OmDX497tJJ7SCcbDhZ0PCy2N3uhJhmjQ1ATrNKbATQXm/sg6DFSY4tAcRjnbERVDhP0hC02HAOQlBeY3sgKK+SV0fQ/ADPdvyF07yx0ZM/Rhx+WTeqaw/c5PQxMmrmO3NSB5MaMJHpebGkL+EzVhxdETmL06u0OAgQKULBFxAL2/vUdeoTAWl/Lu18eBB+E6iCEvfiTYCVZ68EY7ZSNkBajMbqxSG+VJv30htARBMzAdZm2ABafDYiAUnTTQvhynsgo3SFj9UCtryzMcIWK6MAy1iITFnps22mdMMX3qIR2x9fVR3lTEeaFewPrBhAyYzECZ9Xh4Wq5M/mZB2Zj07sDk/YThQWZ1CJ9rhEhClngK31oPriStZE02bedjvPdKOwd4MyDLtvBkcxh2ytFN01sKwYm81lm+0l07FiMAwKatgKapRUdqZ3LZWzWbOWVDucNnucrbQk7Ec0Wio707uWCo42K0nhZbfws7dSEe8T92Rs5cVK5b5V76aTPAixeDCdaKIVp9dgvQ7QioleLJ44izx0cf7Ton1kX5RjTDxO26KzWbWE4wSsoPCWNE0kvQySFF8ADJaAXivN/UgqpnRWNR5D2aToj8oDWboPZQ36c15LGXGo8OuLmpekbxHdHGT39YolXa7q0BhSEIJE8XnAPA43EdLvU/S184+E2Pr5E3sEJpyPhWEe22PpI/y4HmpL2bck3xqxLTTfKVHzEcZS2pdJfJF2zzwBregpumidSWp2SC2o2gQwVsIyYXQsDPPYHkuKpWMRpZctcLm4Og6UezMeWjLecndKarcANnQ0VN43Ffc5KNuOR9ehGN8o6BC4WDgWiHvRwnjrADnOcuvHLXrHx8xx3eRftVj7uFtrbt0z3mfvjcc6F92SxtxZWXs2m6vvm9R7GhJ5h7L18FQnj92HSA+hU3R5qs6qWnfSrkcpL965yUNzGb+3IdOdJ1kOk3iu236UGhF2Y0tFIBILUDxqicHEskhgzDt7VD7ciMXk37TwbfmYIs6/5V+1kJKNHOKEZF90wtNoVF3CvgU5VohFl9/aIyuihlhoxesO2AqZxXf2qIrAIhZY8doeu44yEqfPEa9W2qPjDstVfhW13XqlwdjNXNjPcsdEa7BAzOOWWEU8hgRWPB8lj7SH6x14lN89bscjDYZ+tuEiHPjJxhiWocfkwha4Cd0UtqHHa8fWnXJCOlUXi1StV6frwin6tDjRbk4MKB1x50Vcp1QjWcxfUgyjQ1rgcPFrOA8DSKfussA1QMEDTHEequOeHB2fCBkGx5Ptb5Kmfqi4EWAiptSH4kNE3AVUq40xdVvkBUFPIPEeQSLn/Nk2q55PfsZZHHONZBMg15Rlbxng3jLs4QC9ZCqWviK6Qj58nrn/zgDOnKt/3YsYB85tQqh+5hw5v/WWbswUYTQA3Sp99M0omn+uHQ2kZHNpBMKwi3CafHNd+6pKOWeH1SXr3KumwJ8i8Pxn88C3zPX2+wSsBVVkVOs6BUsZ1roCKTOudWGXKt9aq8mbqb+LiVt/RjsESZUcyqJkeyFmk35pp+lP2eMD5yr9goJfN+TFHaEI1bGY9aNfnRtydlWC/vYqkmHZq5xQOq/Kk3nL4edTZLWSJq+6hTSdE2e9XmvjMlRp1oG3badcdUKqLk6zKhlVi5Vd4dKpEk5thahIKtUXXi8q1CWN6oKlTRjVdXFWJ5DqIpo2eVSXpV5MHWU/DZU197gOKQ5TX62XOq61ScrQs5Why1l4drFnscm0s52L8soy2PS2dCoS1PSGvU/e7y4rjRgqZAhNGyQ+sw6tU8bb7SQGs/GT053ll/lxM8kUUVWa4MRBqFREMsqxjbshkekj0d1kh/nBc8GMJf1LfZAwfHh4wzeCO0v0Yvjo7YfK7zKCjASKGGJzhPEQeQiG5prui5WRp8Jol6tlZGQrth7muPMfkWy6z1pGTrZWeVdGxrV9rZ97Zpr1Err3LCpy/Ko4rHwei3pLVu9Mpd1a/oHQzPWXMRn8fHerTQ7RkDzFIneKqrmm1BFSo8wuRW6QealszJCbQdmQPv+KFr4ZmXeVpQb416p28qzM6gBvXWO1HWsbrIvoG9VHlosNS3Oa1K5Uwtxsu74Wvpixs0UZc7OafAymtoul2dh2UcbctibLwfDJZdSmrgrnlWdI1dkRU1+bq2kcSWO4qUYMGDV1lps/mPDG7bu545wwyowSqtRODc6E5ntjZZKoMeeA4XrSkKWqaeNo/Ja/f6XsLuVLL0rh5knNh+n9K2VXGV56UUmfptMio4v8jTlxYJk/UU+c6DRY1RD0D9Yj6HGua1XmCj3EpQctSFQWkb7zxcAnfu15goMH4GHymt5MZ39AILvto99HLKF/hW43eL3BpMtk1Qm5mzDqiZvaz9LW8DJPb9f0t7SPLhAxA3qjf4veb4LQr+S+VFwWaSCoi1/cA9OxxPQ+ePVSId3EyBKoUF+1M7mD0TokYOktWoAn2EU2Qr+PcAW8l/pqUAfSPBC82qcXAVglIEoLjLo++ZVw2I+ef/4/J6q/lKmBAAA=</value>
|
||||
</data>
|
||||
<data name="DefaultSchema" xml:space="preserve">
|
||||
<value>dbo</value>
|
||||
</data>
|
||||
</root>
|
||||
@ -23,6 +23,7 @@ namespace Vidly.Models
|
||||
public DbSet<Customer> Customers { get; set; }
|
||||
public DbSet<Movie> Movies { get; set; }
|
||||
public DbSet<MembershipType> MembershipTypes { get; set; }
|
||||
public DbSet<MovieGenre> MovieGenres { get; set; }
|
||||
|
||||
public ApplicationDbContext()
|
||||
// : base("DefaultConnection", throwIfV1Schema: false)
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
|
||||
@ -8,11 +9,23 @@ namespace Vidly.Models
|
||||
public class Movie
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
[Required]
|
||||
[StringLength(255)]
|
||||
public string Name { get; set; }
|
||||
public DateTime ReleaseDate { get; set; }
|
||||
public DateTime DateAdded { get; set; }
|
||||
|
||||
[Display(Name="Release Date")]
|
||||
public DateTime? ReleaseDate { get; set; }
|
||||
|
||||
public DateTime? DateAdded { get; set; }
|
||||
|
||||
[Display(Name = "Number In Stock")]
|
||||
public int NumberInStock { get; set; }
|
||||
|
||||
public MovieGenre MovieGenre { get; set; }
|
||||
|
||||
[Display(Name = "Genre")]
|
||||
[Required]
|
||||
public byte MovieGenreId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
@ -229,6 +229,18 @@
|
||||
<Compile Include="Migrations\201901201503276_AddingaFewMovies.Designer.cs">
|
||||
<DependentUpon>201901201503276_AddingaFewMovies.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\201901222208159_AddedRequiredAndMaxlengthToMovieName.cs" />
|
||||
<Compile Include="Migrations\201901222208159_AddedRequiredAndMaxlengthToMovieName.Designer.cs">
|
||||
<DependentUpon>201901222208159_AddedRequiredAndMaxlengthToMovieName.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\201901222224513_AddedNullableReleaseDateToMovie.cs" />
|
||||
<Compile Include="Migrations\201901222224513_AddedNullableReleaseDateToMovie.Designer.cs">
|
||||
<DependentUpon>201901222224513_AddedNullableReleaseDateToMovie.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\201901222227126_AddedNullableAddedDateToMovie.cs" />
|
||||
<Compile Include="Migrations\201901222227126_AddedNullableAddedDateToMovie.Designer.cs">
|
||||
<DependentUpon>201901222227126_AddedNullableAddedDateToMovie.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Migrations\Configuration.cs" />
|
||||
<Compile Include="Models\AccountViewModels.cs" />
|
||||
<Compile Include="Models\Customer.cs" />
|
||||
@ -240,6 +252,7 @@
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Startup.cs" />
|
||||
<Compile Include="ViewModels\CustomersViewModel.cs" />
|
||||
<Compile Include="ViewModels\MovieFormViewModel.cs" />
|
||||
<Compile Include="ViewModels\MoviesViewModel.cs" />
|
||||
<Compile Include="ViewModels\CustomerFormViewModel.cs" />
|
||||
<Compile Include="ViewModels\RandomMovieViewModel.cs" />
|
||||
@ -309,6 +322,7 @@
|
||||
<Content Include="Views\Movies\Movie.cshtml" />
|
||||
<Content Include="Views\Customers\CustomerForm.cshtml" />
|
||||
<Content Include="Views\Home\Index.cshtml" />
|
||||
<Content Include="Views\Movies\MovieForm.cshtml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="App_Data\" />
|
||||
@ -364,6 +378,15 @@
|
||||
<EmbeddedResource Include="Migrations\201901201503276_AddingaFewMovies.resx">
|
||||
<DependentUpon>201901201503276_AddingaFewMovies.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\201901222208159_AddedRequiredAndMaxlengthToMovieName.resx">
|
||||
<DependentUpon>201901222208159_AddedRequiredAndMaxlengthToMovieName.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\201901222224513_AddedNullableReleaseDateToMovie.resx">
|
||||
<DependentUpon>201901222224513_AddedNullableReleaseDateToMovie.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Migrations\201901222227126_AddedNullableAddedDateToMovie.resx">
|
||||
<DependentUpon>201901222227126_AddedNullableAddedDateToMovie.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
||||
|
||||
14
Vidly/ViewModels/MovieFormViewModel.cs
Normal file
14
Vidly/ViewModels/MovieFormViewModel.cs
Normal file
@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using Vidly.Models;
|
||||
|
||||
namespace Vidly.ViewModels
|
||||
{
|
||||
public class MovieFormViewModel
|
||||
{
|
||||
public IEnumerable<MovieGenre> MovieGenres { get; set; }
|
||||
public Movie Movie { get; set; }
|
||||
}
|
||||
}
|
||||
@ -5,6 +5,7 @@
|
||||
}
|
||||
|
||||
<h2>Movies</h2>
|
||||
@Html.ActionLink("New Movie", "New", "Movies", null, new { @class = "btn btn-primary" })
|
||||
|
||||
@if (Model.Movies.Count == 0)
|
||||
{
|
||||
@ -12,7 +13,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
<table class="table table-bordered table-hover">
|
||||
<table class="table table-bordered table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Movie</th>
|
||||
@ -23,10 +24,10 @@ else
|
||||
@foreach (var movie in Model.Movies)
|
||||
{
|
||||
<tr>
|
||||
<td>@Html.ActionLink(@movie.Name,"Movies","Movies",new { id = movie.Id },null) </td>
|
||||
<td>@Html.ActionLink(@movie.Name, "Edit", "Movies", new { id = movie.Id }, null) </td>
|
||||
<td>@movie.MovieGenre.Name</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
||||
}
|
||||
37
Vidly/Views/Movies/MovieForm.cshtml
Normal file
37
Vidly/Views/Movies/MovieForm.cshtml
Normal file
@ -0,0 +1,37 @@
|
||||
@model Vidly.ViewModels.MovieFormViewModel
|
||||
@{
|
||||
ViewBag.Title = "New";
|
||||
Layout = "~/Views/Shared/_Layout.cshtml";
|
||||
}
|
||||
|
||||
|
||||
@if (Model.Movie.Id == null || Model.Movie.Id == 0)
|
||||
{
|
||||
<h2>New Movie</h2>
|
||||
}
|
||||
else
|
||||
{
|
||||
<h2>Edit Movie</h2>
|
||||
}
|
||||
|
||||
@using (Html.BeginForm("Save", "Movies"))
|
||||
{
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(m => m.Movie.Name)
|
||||
@Html.TextBoxFor(m => m.Movie.Name, new { @class = "form-control" })
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(m => m.Movie.ReleaseDate)
|
||||
@Html.TextBoxFor(m => m.Movie.ReleaseDate, "{0:d MMM yyyy}", new { @class = "form-control" })
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(m => m.Movie.MovieGenreId)
|
||||
@Html.DropDownListFor(m => m.Movie.MovieGenreId, new SelectList(Model.MovieGenres, "Id", "Name"), "Select Genre Type", new { @class = "form-control" })
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@Html.LabelFor(m => m.Movie.NumberInStock)
|
||||
@Html.TextBoxFor(m => m.Movie.NumberInStock, new { @class = "form-control" })
|
||||
</div>
|
||||
@Html.HiddenFor(m=>m.Movie.Id)
|
||||
<button type="submit" class="btn btn-primary">Save</button>
|
||||
}
|
||||
Reference in New Issue
Block a user