Configured to work with SQL

This commit is contained in:
Kira 2023-09-05 12:55:29 -07:00
parent 02d8cc4097
commit 373608299b
12 changed files with 480 additions and 79 deletions

View File

@ -10,4 +10,12 @@
<Folder Include="wwwroot\images\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.10" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.10">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>

View File

@ -1,7 +1,22 @@
namespace Blazor_DotNet8_MovieApp.Data
using Microsoft.EntityFrameworkCore;
using Blazor_DotNet8_MovieApp.Models;
namespace Blazor_DotNet8_MovieApp.Data
{
public class MovieReviewDbContext
public class MovieReviewDbContext:DbContext
{
public MovieReviewDbContext(DbContextOptions<MovieReviewDbContext> options):base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
SeedData.AddMovies(modelBuilder);
}
public DbSet<MovieModel> Movies { get; set; }
}
}

View File

@ -0,0 +1,113 @@
using Blazor_DotNet8_MovieApp.Models;
using Microsoft.EntityFrameworkCore;
namespace Blazor_DotNet8_MovieApp.Data
{
public static class SeedData
{
public static void AddMovies(ModelBuilder modelBuilder)
{
modelBuilder.Entity<MovieModel>().HasData(
new MovieModel
{
Id = 1,
Title = "Highlander",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Highlander.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
}
);
modelBuilder.Entity<MovieModel>().HasData(
new MovieModel
{
Id = 2,
Title = "Godfather",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Godfather.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
}
);
modelBuilder.Entity<MovieModel>().HasData(
new MovieModel
{
Id = 3,
Title = "Last of the Mohicans",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/LastOfTheMohicans.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
}
);
modelBuilder.Entity<MovieModel>().HasData(
new MovieModel
{
Id = 4,
Title = "Rear Window",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/RearWindow.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
}
);
modelBuilder.Entity<MovieModel>().HasData(
new MovieModel
{
Id = 5,
Title = "Road House",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/RoadHouse.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
}
);
modelBuilder.Entity<MovieModel>().HasData(
new MovieModel
{
Id = 6,
Title = "Star Treck IV",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/StarTreck4.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
}
);
modelBuilder.Entity<MovieModel>().HasData(
new MovieModel
{
Id = 7,
Title = "Mean Girls",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/MeanGirls.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
}
);
modelBuilder.Entity<MovieModel>().HasData(
new MovieModel
{
Id = 8,
Title = "Oppenheimer",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Oppenheimer.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
}
);
modelBuilder.Entity<MovieModel>().HasData(
new MovieModel
{
Id = 9,
Title = "Barbie",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Barbie.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
}
);
}
}
}

View File

@ -0,0 +1,132 @@
// <auto-generated />
using Blazor_DotNet8_MovieApp.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace Blazor_DotNet8_MovieApp.Migrations
{
[DbContext(typeof(MovieReviewDbContext))]
[Migration("20230905194403_InitialCreate")]
partial class InitialCreate
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "7.0.10")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Blazor_DotNet8_MovieApp.Models.MovieModel", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ImageUrl")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Review")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Title")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Movies");
b.HasData(
new
{
Id = 1,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Highlander.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Highlander"
},
new
{
Id = 2,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Godfather.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Godfather"
},
new
{
Id = 3,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/LastOfTheMohicans.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Last of the Mohicans"
},
new
{
Id = 4,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/RearWindow.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Rear Window"
},
new
{
Id = 5,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/RoadHouse.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Road House"
},
new
{
Id = 6,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/StarTreck4.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Star Treck IV"
},
new
{
Id = 7,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/MeanGirls.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Mean Girls"
},
new
{
Id = 8,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Oppenheimer.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Oppenheimer"
},
new
{
Id = 9,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Barbie.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Barbie"
});
});
#pragma warning restore 612, 618
}
}
}

View File

@ -0,0 +1,55 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
namespace Blazor_DotNet8_MovieApp.Migrations
{
/// <inheritdoc />
public partial class InitialCreate : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Movies",
columns: table => new
{
Id = table.Column<int>(type: "int", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Title = table.Column<string>(type: "nvarchar(max)", nullable: false),
Description = table.Column<string>(type: "nvarchar(max)", nullable: false),
ImageUrl = table.Column<string>(type: "nvarchar(max)", nullable: false),
Review = table.Column<string>(type: "nvarchar(max)", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Movies", x => x.Id);
});
migrationBuilder.InsertData(
table: "Movies",
columns: new[] { "Id", "Description", "ImageUrl", "Review", "Title" },
values: new object[,]
{
{ 1, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ", "/images/movies/Highlander.png", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia", "Highlander" },
{ 2, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ", "/images/movies/Godfather.png", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia", "Godfather" },
{ 3, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ", "/images/movies/LastOfTheMohicans.png", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia", "Last of the Mohicans" },
{ 4, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ", "/images/movies/RearWindow.png", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia", "Rear Window" },
{ 5, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ", "/images/movies/RoadHouse.png", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia", "Road House" },
{ 6, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ", "/images/movies/StarTreck4.png", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia", "Star Treck IV" },
{ 7, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ", "/images/movies/MeanGirls.png", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia", "Mean Girls" },
{ 8, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ", "/images/movies/Oppenheimer.png", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia", "Oppenheimer" },
{ 9, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ", "/images/movies/Barbie.png", "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia", "Barbie" }
});
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Movies");
}
}
}

View File

@ -0,0 +1,129 @@
// <auto-generated />
using Blazor_DotNet8_MovieApp.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace Blazor_DotNet8_MovieApp.Migrations
{
[DbContext(typeof(MovieReviewDbContext))]
partial class MovieReviewDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "7.0.10")
.HasAnnotation("Relational:MaxIdentifierLength", 128);
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Blazor_DotNet8_MovieApp.Models.MovieModel", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<int>("Id"));
b.Property<string>("Description")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("ImageUrl")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Review")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("Title")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.HasKey("Id");
b.ToTable("Movies");
b.HasData(
new
{
Id = 1,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Highlander.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Highlander"
},
new
{
Id = 2,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Godfather.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Godfather"
},
new
{
Id = 3,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/LastOfTheMohicans.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Last of the Mohicans"
},
new
{
Id = 4,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/RearWindow.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Rear Window"
},
new
{
Id = 5,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/RoadHouse.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Road House"
},
new
{
Id = 6,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/StarTreck4.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Star Treck IV"
},
new
{
Id = 7,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/MeanGirls.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Mean Girls"
},
new
{
Id = 8,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Oppenheimer.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Oppenheimer"
},
new
{
Id = 9,
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Barbie.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia",
Title = "Barbie"
});
});
#pragma warning restore 612, 618
}
}
}

View File

@ -35,6 +35,6 @@ else
protected override async Task OnInitializedAsync()
{
await Task.Delay(2000);
Movies = MovieReviewService?.GetMovies();
Movies = await MovieReviewService.GetMovies();
}
}

View File

@ -34,7 +34,7 @@ else
if (Id != null)
{
int? id = int.Parse(Id);
MovieItem = MovieReviewService?.GetMovieById(id.Value);
MovieItem = await MovieReviewService.GetMovieById(id.Value);
}
}

View File

@ -1,11 +1,17 @@
using Blazor_DotNet8_MovieApp;
using Blazor_DotNet8_MovieApp.Data;
using Blazor_DotNet8_MovieApp.Services;
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorComponents().AddServerComponents();
builder.Services.AddDbContextPool<MovieReviewDbContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("MovieReviewDbConnection"))
);
builder.Services.AddScoped<IMovieReviewService, MovieReviewService>();
var app = builder.Build();

View File

@ -4,7 +4,7 @@ namespace Blazor_DotNet8_MovieApp.Services
{
public interface IMovieReviewService
{
List<MovieModel>? GetMovies();
MovieModel? GetMovieById(int id);
Task<List<MovieModel>?> GetMovies();
Task<MovieModel?> GetMovieById(int id);
}
}

View File

@ -1,86 +1,26 @@
using Blazor_DotNet8_MovieApp.Models;
using Blazor_DotNet8_MovieApp.Data;
using Blazor_DotNet8_MovieApp.Models;
using Microsoft.EntityFrameworkCore;
namespace Blazor_DotNet8_MovieApp.Services
{
public class MovieReviewService : IMovieReviewService
{
private readonly MovieReviewDbContext movieReviewDbContext;
private static readonly List<MovieModel> Movies = new List<MovieModel>
public MovieReviewService(MovieReviewDbContext movieReviewDbContext)
{
new MovieModel {
Id = 1,
Title = "Highlander",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Highlander.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
},
new MovieModel{
Id=2,
Title = "Godfather",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Godfather.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
},
new MovieModel{
Id=3,
Title = "Last of the Mohicans",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/LastOfTheMohicans.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
},
new MovieModel{
Id=4,
Title = "Rear Window",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/RearWindow.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
},
new MovieModel{
Id=5,
Title = "Road House",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/RoadHouse.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
},
new MovieModel{
Id=6,
Title = "Star Treck IV",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/StarTreck4.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
},
new MovieModel{
Id=7,
Title = "Mean Girls",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/MeanGirls.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
},
new MovieModel{
Id=8,
Title = "Oppenheimer",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Oppenheimer.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
},
new MovieModel{
Id=9,
Title = "Barbie",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. ",
ImageUrl = "/images/movies/Barbie.png",
Review = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum vitae nunc risus. Cras sed ex augue. Etiam rutrum massa at enim sollicitudin scelerisque. Pellentesque dignissim, velit vitae lacinia"
}
};
public MovieModel? GetMovieById(int id)
{
return Movies.SingleOrDefault(m => m.Id == id);
this.movieReviewDbContext = movieReviewDbContext;
}
public List<MovieModel>? GetMovies()
public async Task<MovieModel?> GetMovieById(int id)
{
return Movies;
return await movieReviewDbContext.Movies.SingleOrDefaultAsync(m => m.Id == id);
}
public async Task<List<MovieModel>?> GetMovies()
{
return await movieReviewDbContext.Movies.ToListAsync<MovieModel>();
}
}
}

View File

@ -1,4 +1,7 @@
{
"ConnectionStrings": {
"MovieReviewDbConnection": "Server=GRILLED-CHEESE;Database=MovieReviewDB;Trusted_Connection=true;TrustServerCertificate=True"
},
"Logging": {
"LogLevel": {
"Default": "Information",