using Elements.Data.Models; using Microsoft.EntityFrameworkCore; using SixLabors.ImageSharp.Formats.Png; using Image = SixLabors.ImageSharp.Image; namespace Elements.Data; public class ApplicationDbContext : DbContext { public DbSet Elements { get; set; } public DbSet Users { get; set; } public DbSet Suggestions { get; set; } public DbSet Recipes { get; set; } public DbSet Votes { get; set; } public ApplicationDbContext(DbContextOptions options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity().HasData( new User() { Id = 1, Name = "Elements", GoogleId = String.Empty }); byte[] fireData = Convert.FromBase64String("//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQ///cEP//3BD//9wQw=="); byte[] waterData = Convert.FromBase64String("/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8/8hlvP/IZbz/yGW8w=="); byte[] airData = Convert.FromBase64String("/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+/+73vv/u977/7ve+w=="); byte[] groundData = Convert.FromBase64String("/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11AN/9dQDf/XUA3/11ANw=="); modelBuilder.Entity().HasData( new Element() { Id = 1, Name = "Fire", UserId = 1, State = ElementState.HasIcon, IconPng = ConvertBitmapToPng(fireData) }, new Element() { Id = 2, Name = "Water", UserId = 1, State = ElementState.HasIcon, IconPng = ConvertBitmapToPng(waterData) }, new Element() { Id = 3, Name = "Air", UserId = 1, State = ElementState.HasIcon, IconPng = ConvertBitmapToPng(airData) }, new Element() { Id = 4, Name = "Ground", UserId = 1, State = ElementState.HasIcon, IconPng = ConvertBitmapToPng(groundData) }); } private static byte[] ConvertBitmapToPng(byte[] bitmapData) { Image image = Image.LoadPixelData(bitmapData, 16, 16); using MemoryStream resultStream = new(); image.Save(resultStream, new PngEncoder()); return resultStream.ToArray(); } }