public SimpleMembershipInitializer()
            {
                Database.SetInitializer<TodoListContext>(null);

                try
                {
                    using (var context = new TodoListContext())
                    {
                        if (!context.Database.Exists())
                        {
                            // Create the SimpleMembership database without Entity Framework migration schema
                            ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
                        }
                    }

                    WebSecurity.InitializeDatabaseConnection("DefaultConnection", "Users", "Id", "Username", autoCreateTables: true);
                }
                catch (Exception ex)
                {
                    throw new InvalidOperationException("The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588", ex);
                }
            }
        public static void Initialize(IServiceProvider serviceProvider, string imageDirectory)
        {
            TodoListContext context = serviceProvider.GetRequiredService <TodoListContext>();

            /*
             * Adatbázis létrehozása (amennyiben nem létezik), illetve a migrációk alapján a frissítése.
             * Amennyiben teljesen el szeretnénk vetni a jelenlegi adatbázisunk, akkor a
             * törléshez az Sql Server Object Explorer ablak használható a Visual Studioban.
             * Itt SQL Server > (localdb)\\MSSQLLocalDB útvonalon találjuk az adatbázisainkat.
             */
            //context.Database.EnsureDeleted();
            context.Database.Migrate();

            // Listák keresése
            if (context.Lists.Any())
            {
                return; // Az adatbázis már inicializálva van.
            }

            IList <List> defaultLists = new List <List>();

            var applePath = Path.Combine(imageDirectory, "apple.png");
            var pearPath  = Path.Combine(imageDirectory, "pear.png");
            var beerPath  = Path.Combine(imageDirectory, "beer.png");

            defaultLists.Add(new List
            {
                Name  = "Bevásárlás",
                Items = new List <Item>()
                {
                    new Item()
                    {
                        Name     = "Alma",
                        Deadline = DateTime.Now.AddDays(1),
                        Image    = File.Exists(applePath) ? File.ReadAllBytes(applePath) : null
                    },
                    new Item()
                    {
                        Name     = "Körte",
                        Deadline = DateTime.Now.AddDays(1),
                        Image    = File.Exists(pearPath) ? File.ReadAllBytes(pearPath) : null
                    },
                    new Item()
                    {
                        Name     = "Sör",
                        Deadline = DateTime.Now,
                        Image    = File.Exists(beerPath) ? File.ReadAllBytes(beerPath) : null
                    }
                }
            });

            defaultLists.Add(
                new List
            {
                Name  = "Beadandók",
                Items = new List <Item>()
                {
                    new Item()
                    {
                        Name     = "WAF beadandó",
                        Deadline = DateTime.Now.AddDays(7)
                    },
                    new Item()
                    {
                        Name     = "MI beadandó",
                        Deadline = DateTime.Now.AddDays(10)
                    }
                }
            });

            defaultLists.Add(
                new List
            {
                Name  = "Fejlesztés",
                Items = new List <Item>()
                {
                    new Item()
                    {
                        Name        = "Felhasználókezelés",
                        Description = "Bejelentkezés és kijelentkezés megvalósítása süti alapú authentikációval.",
                        Deadline    = DateTime.Now.AddDays(4)
                    },
                    new Item()
                    {
                        Name        = "Validáció",
                        Description =
                            "A nézetmodell validációs annotációkkal történő ellátása és a szabályok teljesülésének ellenőrzése.",
                        Deadline = DateTime.Now.AddHours(4)
                    },
                    new Item()
                    {
                        Name        = "Regisztráció",
                        Description = "Regisztráció implementációja email cím megerősítéssel.",
                        Deadline    = DateTime.Now.AddDays(2)
                    },
                    new Item()
                    {
                        Name        = "Asztali kliens",
                        Description = "Asztali WPF adminisztrációs kliens fejlesztése.",
                        Deadline    = DateTime.Now.AddDays(12)
                    }
                }
            });

            foreach (List list in defaultLists)
            {
                context.Lists.Add(list);
            }

            context.SaveChanges();
        }