// Mock Users Password = "******" public async Task SeedDatabase(UserManager <AppUser> userManager, RoleManager <IdentityRole> roleManager) { await Database.EnsureDeletedAsync(); await Database.EnsureCreatedAsync(); // Seed users AppUser adminUser = new AppUser() { Email = "*****@*****.**", UserName = "******", FirstName = "Admin", LastName = "Adminsson" }; var adminResult = await userManager.CreateAsync(adminUser, "Password5%"); AppUser organizationManager = new AppUser() { Email = "*****@*****.**", UserName = "******", FirstName = "Tina", LastName = "Björk" }; var organizationResult = await userManager.CreateAsync(organizationManager, "Password6%"); AppUser organizationManager2 = new AppUser() { Email = "*****@*****.**", UserName = "******", FirstName = "Ursula", LastName = "Boss" }; var managerResult = await userManager.CreateAsync(organizationManager2, "Password7%"); AppUser organizationAssistant = new AppUser() { Email = "*****@*****.**", UserName = "******", FirstName = "Kurt", LastName = "Larsson" }; var assistantResult = await userManager.CreateAsync(organizationAssistant, "Password5%"); AppUser userToBeVerifiedAsOrganization = new AppUser() { Email = "*****@*****.**", UserName = "******", FirstName = "Test", LastName = "Test" }; await userManager.CreateAsync(userToBeVerifiedAsOrganization, "Password5%"); AppUser randomUser = new AppUser() { Email = "*****@*****.**", UserName = "******", FirstName = "Anton", LastName = "Andersson" }; await userManager.CreateAsync(randomUser, "Password5%"); // Seed roles string[] roles = new string[] { "Admin", "OrganizationManager", "OrganizationAssistant" }; foreach (string role in roles) { if (!this.Roles.Any(r => r.Name == role)) { IdentityRole newRole = new IdentityRole(role); await roleManager.CreateAsync(newRole); } } var rolesResult = await userManager.AddToRoleAsync(adminUser, "Admin"); await userManager.AddToRoleAsync(organizationManager, "OrganizationManager"); await userManager.AddToRoleAsync(organizationManager2, "OrganizationManager"); await userManager.AddToRoleAsync(organizationAssistant, "OrganizationAssistant"); if (!rolesResult.Succeeded) { string errorMessage = ""; foreach (var error in rolesResult.Errors) { errorMessage += $"{error.Description}\n"; } throw new Exception(errorMessage); } // Seed Organizations await Organizations.AddRangeAsync(new List <Organization>() { new Organization { Name = "Event Makerz", OrganizationNumber = "12345", PhoneNumber = "0705667788", Email = "*****@*****.**", IsVerified = true, OrganizationManagers = new List <AppUser>() { organizationManager, organizationManager2 } }, new Organization { Name = "Latjo Lajban", OrganizationNumber = "12346", PhoneNumber = "0736441122", Email = "*****@*****.**", IsVerified = true, OrganizationManagers = new List <AppUser>() { organizationManager } }, new Organization { Name = "Come Together", OrganizationNumber = "12347", PhoneNumber = "0799658843", Email = "*****@*****.**", IsVerified = true, OrganizationManagers = new List <AppUser>() { organizationManager2 }, OrganizationAssistants = new List <AppUser>() { organizationAssistant } } }); // Seed events await Events.AddRangeAsync(new List <Event>() { new Event { Title = "Food Festival", Description = "All you can eat - food from all around the world - all you need is a ticket!", Place = "On the street", Address = "Gourmet Lane 63", Date = new DateTime(2021, 7, 21), SpotsAvailable = 1000, CreatedAt = DateTime.Now }, new Event { Title = "Free Karaoke night", Description = "Join this event to be a part of a fantastic karaoke night!", Place = "Sing Along", Address = "Vocals street 2", Date = new DateTime(2021, 5, 13), SpotsAvailable = 35, CreatedAt = DateTime.Now }, new Event { Title = "Run for fun", Description = "A race with no competition, just for fun! Get amazing treats on the way!", Place = "In the woods", Address = "Green forest 23", Date = new DateTime(2021, 6, 5), SpotsAvailable = 500, CreatedAt = DateTime.Now }, new Event { Title = "Poetry slam", Description = "Got a poem? Wanna perform? Join this event to enter the competition, or be the audience!", Place = "The Green Lion", Address = "Lonely road 4", Date = new DateTime(2021, 4, 30), SpotsAvailable = 65, CreatedAt = DateTime.Now }, new Event { Title = "Finger Painting", Description = "Bring your inner child and join this event to get creative!", Place = "Art factory", Address = "Artsy road 31", Date = new DateTime(2021, 10, 11), SpotsAvailable = 30, CreatedAt = DateTime.Now }, new Event { Title = "Splash away", Description = "Exclusive offer for the Shark Water Park premiere! 2 for 1 entrance", Place = "Shark Water park", Address = "Ocean lane 11", Date = new DateTime(2021, 5, 21), SpotsAvailable = 650, CreatedAt = DateTime.Now }, new Event { Title = "Heroes 3 LAN", Description = "Nybörjarvänlig spelkväll med the one and only Björn. " + "Vare sig du har spelat sen barnsben eller skådar detta överkomplicerade mästerverk för första gången kommer det gå lika dåligt. " + "Alla är n00bs i en lobby med Björn. Du kommer gråta, men, vi kommer gråta tillsammans. Alla utom Björn.", Place = "Other", Address = "Riktiga Gatan 1, 420 69 Göteborg", Date = new DateTime(2021, 5, 13), SpotsAvailable = 5, CreatedAt = DateTime.Now }, new Event { Title = "Skriftlig Tentamen i Astrofysik", Description = "Har du listat ut hur interfaces fungerar i c#? " + "Kan du stava till och konstruktivt använda polymorphism? Grattis! För isåfall är en månlandning inte svårare en att hata css.", Place = "Other", Address = "Riktiga Gatan 7, 420 69 Göteborg", Date = new DateTime(2021, 5, 13), SpotsAvailable = 42, CreatedAt = DateTime.Now }, new Event { Title = "Frågestund med Björn", Description = "Är ditt huvud fyllt med kodrelaterade frågor och " + "problematiseringar? Är din hjärnas allokerade plats för svar mindre en din chans till en LIAplats i höst? Hoppa in i frågestund med Björn, " + "bevittna din fråga hänga död i luften, se på när han misslyckas med multitasking och hör hur han fnissar åt något roligt någon annan, " + "mycket mer begåvad elev, skrev i ett dm på discord. Det blir kul!", Place = "Other", Address = "Microsoft Teams -12, 420 69 Göteborg", Date = new DateTime(2021, 5, 13), SpotsAvailable = 404, CreatedAt = DateTime.Now }, new Event { Title = "Fest. ?", Description = "Man blir sugen eller hur?", Place = "Other", Address = "Tralala 6, 420 69 Günther", Date = new DateTime(2021, 5, 21), SpotsAvailable = 14, CreatedAt = DateTime.Now }, new Event { Title = "Livet Under Knät", Description = "För alla er som njuter av dödslängtande suckar och hatar " + "brusreducering i mikrofoner. Här kommer en gala för tvetydighet, ett berg av överkvalifikation och en hel stad av beklämmelse.", Place = "Other", Address = "Jordens Kant 11, 420 69 Havet", Date = new DateTime(2021, 5, 21), SpotsAvailable = 999, CreatedAt = DateTime.Now }, new Event { Title = "Kalldusch med Anna Book", Description = "Snacka tänder, skönhetsingrepp och förutfattande " + "meningar om ryssar. Face-to-face med Sveriges knepigaste leende.", Place = "Other", Address = "Nånstanns I Stan, 420 69 Stockholm", Date = new DateTime(2021, 5, 21), SpotsAvailable = 1, CreatedAt = DateTime.Now }, new Event { Title = "Nopp", Description = "Det blir inget med det.", Place = "Other", Address = "Alcingsåös, 420 69 ½Göteborg", Date = new DateTime(2021, 6, 5), SpotsAvailable = 0, CreatedAt = DateTime.Now }, new Event { Title = "Gymma Med Jack (bara biceps)", Description = "...", Place = "Other", Address = "Arnoldstråket 198, 420 69 Göteborg", Date = new DateTime(2021, 6, 5), SpotsAvailable = 23, CreatedAt = DateTime.Now }, new Event { Title = "Bootflak", Description = "🔞🔞🔞🔞🔞🔞🔞🔞", Place = "Other", Address = "Riktiga Gatan 0, 420 69 Göteborg", Date = new DateTime(2021, 7, 21), SpotsAvailable = 2, CreatedAt = DateTime.Now }, new Event { Title = "Abc", Description = "Fest o grej, o kul, och ja. Gör allt, lite till, mer " + "Visst vettu, åk åk åk gogogogogogo", Place = "Other", Address = "Riktiga Gatan 0, 420 69 Göteborg", Date = new DateTime(2021, 7, 21), SpotsAvailable = 8, CreatedAt = DateTime.Now }, new Event { Title = "Röj Va", Description = "Visst vettu, åk åk åk gogogogogogo", Place = "Other", Address = "Riktiga Gatan 0, 420 69 Göteborg", Date = new DateTime(2021, 7, 21), SpotsAvailable = 40, CreatedAt = DateTime.Now }, }); await SaveChangesAsync(); // add organizations to events var foodFestival = await Events.Where(e => e.Title == "Food Festival").FirstOrDefaultAsync(); foodFestival.Organization = await Organizations.Where(o => o.Name == "Event Makerz").FirstOrDefaultAsync(); var freeKaraokeNight = await Events.Where(e => e.Title == "Free Karaoke night").FirstOrDefaultAsync(); freeKaraokeNight.Organization = await Organizations.Where(o => o.Name == "Event Makerz").FirstOrDefaultAsync(); var runForFun = await Events.Where(e => e.Title == "Run for fun").FirstOrDefaultAsync(); runForFun.Organization = await Organizations.Where(o => o.Name == "Event Makerz").FirstOrDefaultAsync(); var poetrySlam = await Events.Where(e => e.Title == "Poetry slam").FirstOrDefaultAsync(); poetrySlam.Organization = await Organizations.Where(o => o.Name == "Event Makerz").FirstOrDefaultAsync(); var fingerPainting = await Events.Where(e => e.Title == "Finger Painting").FirstOrDefaultAsync(); fingerPainting.Organization = await Organizations.Where(o => o.Name == "Event Makerz").FirstOrDefaultAsync(); var splashAway = await Events.Where(e => e.Title == "Splash away").FirstOrDefaultAsync(); splashAway.Organization = await Organizations.Where(o => o.Name == "Event Makerz").FirstOrDefaultAsync(); var heroes3Lan = await Events.Where(e => e.Title == "Heroes 3 LAN").FirstOrDefaultAsync(); heroes3Lan.Organization = await Organizations.Where(o => o.Name == "Event Makerz").FirstOrDefaultAsync(); var skriftligTentamen = await Events.Where(e => e.Title == "Skriftlig Tentamen i Astrofysik").FirstOrDefaultAsync(); skriftligTentamen.Organization = await Organizations.Where(o => o.Name == "Latjo Lajban").FirstOrDefaultAsync(); var fragestundMedBjorn = await Events.Where(e => e.Title == "Frågestund med Björn").FirstOrDefaultAsync(); fragestundMedBjorn.Organization = await Organizations.Where(o => o.Name == "Latjo Lajban").FirstOrDefaultAsync(); var fest = await Events.Where(e => e.Title == "Fest. ?").FirstOrDefaultAsync(); fest.Organization = await Organizations.Where(o => o.Name == "Latjo Lajban").FirstOrDefaultAsync(); var livetUnderKnat = await Events.Where(e => e.Title == "Livet Under Knät").FirstOrDefaultAsync(); livetUnderKnat.Organization = await Organizations.Where(o => o.Name == "Latjo Lajban").FirstOrDefaultAsync(); var kalldusch = await Events.Where(e => e.Title == "Kalldusch med Anna Book").FirstOrDefaultAsync(); kalldusch.Organization = await Organizations.Where(o => o.Name == "Latjo Lajban").FirstOrDefaultAsync(); var nopp = await Events.Where(e => e.Title == "Nopp").FirstOrDefaultAsync(); nopp.Organization = await Organizations.Where(o => o.Name == "Come Together").FirstOrDefaultAsync(); var gymmaMedJack = await Events.Where(e => e.Title == "Gymma Med Jack (bara biceps)").FirstOrDefaultAsync(); gymmaMedJack.Organization = await Organizations.Where(o => o.Name == "Come Together").FirstOrDefaultAsync(); var bootFlak = await Events.Where(e => e.Title == "Bootflak").FirstOrDefaultAsync(); bootFlak.Organization = await Organizations.Where(o => o.Name == "Come Together").FirstOrDefaultAsync(); var abc = await Events.Where(e => e.Title == "Abc").FirstOrDefaultAsync(); abc.Organization = await Organizations.Where(o => o.Name == "Come Together").FirstOrDefaultAsync(); var rojVa = await Events.Where(e => e.Title == "Röj Va").FirstOrDefaultAsync(); rojVa.Organization = await Organizations.Where(o => o.Name == "Come Together").FirstOrDefaultAsync(); await SaveChangesAsync(); }