public static async Task CreateRoles(ConFutureNceContext context) { var userManager = context.GetService <UserManager <ApplicationUser> >(); var roleManager = context.GetService <RoleManager <IdentityRole> >(); // Add roles to app string[] roleNames = { "Admin", "Author", "Organizer", "ProgrammeCommitteeMember", "Reviewer" }; IdentityResult roleResult; foreach (var roleName in roleNames) { var roleExist = await roleManager.RoleExistsAsync(roleName); if (!roleExist) { roleResult = await roleManager.CreateAsync(new IdentityRole(roleName)); } } var myUser = await userManager.FindByEmailAsync("*****@*****.**"); if (myUser != null && !await userManager.IsInRoleAsync(myUser, "Author")) { // Assigne user to role await userManager.AddToRoleAsync(myUser, "Author"); } }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ConFutureNceContext context) { if (env.IsDevelopment()) { app.UseBrowserLink(); app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseAuthentication(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); DbInitializer.Initialize(context); AccountRolesManagement.CreateRoles(context).Wait(); }
public AccountController( UserManager <ApplicationUser> userManager, SignInManager <ApplicationUser> signInManager, IEmailSender emailSender, ILogger <AccountController> logger, ConFutureNceContext context) { _userManager = userManager; _signInManager = signInManager; _emailSender = emailSender; _logger = logger; _context = context; }
public PapersController(ConFutureNceContext context, UserManager <ApplicationUser> userManager) { _context = context; _userManager = userManager; }
public void InitContext() { if (context != null) { return; } // UserManager initialization var userStore = new Mock <IUserStore <ApplicationUser> >(); userManager = new UserManager <ApplicationUser>(userStore.Object, null, null, null, null, null, null, null, null); // DB in memory initialization var option = new DbContextOptionsBuilder <ConFutureNceContext>().UseInMemoryDatabase("db").Options; context = new ConFutureNceContext(option); // DB data creation if ApplicationUser table is empty if (context.ApplicationUser.Any()) { return; } #region DB content var languages = new Language[] { new Language { LanguageName = "Afrikanns" }, new Language { LanguageName = "Albanian" }, new Language { LanguageName = "Arabic" }, new Language { LanguageName = "Armenian" }, new Language { LanguageName = "Basque" }, new Language { LanguageName = "Bengali" }, new Language { LanguageName = "Bulgarian" }, new Language { LanguageName = "Catalan" }, new Language { LanguageName = "Cambodian" }, new Language { LanguageName = "Chinese (Mandarin)" }, new Language { LanguageName = "Croation" }, new Language { LanguageName = "Czech" }, new Language { LanguageName = "Danish" }, new Language { LanguageName = "Dutch" }, new Language { LanguageName = "English" }, new Language { LanguageName = "Estonian" }, new Language { LanguageName = "Fiji" }, new Language { LanguageName = "Finnish" }, new Language { LanguageName = "French" }, new Language { LanguageName = "Georgian" }, new Language { LanguageName = "German" }, new Language { LanguageName = "Greek" }, new Language { LanguageName = "Gujarati" }, new Language { LanguageName = "Hebrew" }, new Language { LanguageName = "Hindi" }, new Language { LanguageName = "Hungarian" }, new Language { LanguageName = "Icelandic" }, new Language { LanguageName = "Indonesian" }, new Language { LanguageName = "Irish" }, new Language { LanguageName = "Italian" }, new Language { LanguageName = "Japanese" }, new Language { LanguageName = "Javanese" }, new Language { LanguageName = "Korean" }, new Language { LanguageName = "Latin" }, new Language { LanguageName = "Latvian" }, new Language { LanguageName = "Lithuanian" }, new Language { LanguageName = "Macedonian" }, new Language { LanguageName = "Malay" }, new Language { LanguageName = "Malayalam" }, new Language { LanguageName = "Maltese" }, new Language { LanguageName = "Maori" }, new Language { LanguageName = "Marathi" }, new Language { LanguageName = "Mongolian" }, new Language { LanguageName = "Nepali" }, new Language { LanguageName = "Norwegian" }, new Language { LanguageName = "Persian" }, new Language { LanguageName = "Polish" }, new Language { LanguageName = "Portuguese" }, new Language { LanguageName = "Punjabi" }, new Language { LanguageName = "Quechua" }, new Language { LanguageName = "Romanian" }, new Language { LanguageName = "Russian" }, new Language { LanguageName = "Samoan" }, new Language { LanguageName = "Serbian" }, new Language { LanguageName = "Slovak" }, new Language { LanguageName = "Slovenian" }, new Language { LanguageName = "Spanish" }, new Language { LanguageName = "Swahili" }, new Language { LanguageName = "Swedish " }, new Language { LanguageName = "Tamil" }, new Language { LanguageName = "Tatar" }, new Language { LanguageName = "Telugu" }, new Language { LanguageName = "Thai" }, new Language { LanguageName = "Tibetan" }, new Language { LanguageName = "Tonga" }, new Language { LanguageName = "Turkish" }, new Language { LanguageName = "Ukranian" }, new Language { LanguageName = "Urdu" }, new Language { LanguageName = "Uzbek" }, new Language { LanguageName = "Vietnamese" }, new Language { LanguageName = "Welsh" }, new Language { LanguageName = "Xhosa" } }; foreach (Language l in languages) { context.Language.Add(l); } context.SaveChanges(); // 4 Applicaton Users in each UserType var users = new ApplicationUser[] { new ApplicationUser { Name = "Author", Email = "*****@*****.**", Address = "Plac Grunwaldzki 23, Wroc³aw, Polska", ConferenceName = "Great Conference", EmailConfirmed = true, UserName = "******" }, new ApplicationUser { Name = "Author2", Email = "*****@*****.**", Address = "Plac Grunwaldzki 23, Wroc³aw, Polska", ConferenceName = "Great Conference", EmailConfirmed = true, UserName = "******" }, new ApplicationUser { Name = "Reviewer", Email = "*****@*****.**", Address = "Koœciuszki 28, Wroc³aw, Polska", ConferenceName = "Great Conference", EmailConfirmed = true, UserName = "******" }, new ApplicationUser { Name = "Reviewer2", Email = "*****@*****.**", Address = "Koœciuszki 28, Wroc³aw, Polska", ConferenceName = "Great Conference", EmailConfirmed = true, UserName = "******" }, new ApplicationUser { Name = "ProgrammeCommitteeMember", Email = "*****@*****.**", Address = "Kochanowskiego 21, Bogatynia, Polska", ConferenceName = "Great Conference", EmailConfirmed = true, UserName = "******" }, new ApplicationUser { Name = "Organizer", Email = "*****@*****.**", Address = "D³uga 28, Gdañsk, Polska", ConferenceName = "Great Conference", EmailConfirmed = true, UserName = "******" } }; foreach (ApplicationUser u in users) { context.ApplicationUser.Add(u); } context.SaveChanges(); // UserType creation // 1 ApplicationUser = 1 UserType // 1 organizers var organizers = new Organizer[] { new Organizer { ApplicationUserId = context.ApplicationUser.First(ap => ap.Name == "Organizer").Id, EmployeePosition = "Master Organizer" } }; foreach (var organizer in organizers) { context.Organizer.Add(organizer); } context.SaveChanges(); // 1 programmeCommitteeMembers var programmeCommitteeMembers = new ProgrammeCommitteeMember[] { new ProgrammeCommitteeMember { ApplicationUserId = context.ApplicationUser.First(ap => ap.Name == "ProgrammeCommitteeMember").Id, EmployeePosition = "Slave Programme Committee Member" } }; foreach (var programmeCommitteeMember in programmeCommitteeMembers) { context.ProgrammeCommitteeMember.Add(programmeCommitteeMember); } context.SaveChanges(); // 1 author var authors = new Author[] { new Author { ApplicationUserId = context.ApplicationUser.First(ap => ap.Name == "Author").Id, ScTitle = "MSc", OrgName = "Wroc³aw University of Science and Technology" }, new Author { ApplicationUserId = context.ApplicationUser.First(ap => ap.Name == "Author2").Id, ScTitle = "MSc", OrgName = "Wroc³aw University of Science and Technology" } }; foreach (Author a in authors) { context.Author.Add(a); } context.SaveChanges(); // 1 reviewer var reviewers = new Reviewer[] { new Reviewer { ApplicationUserId = context.ApplicationUser.First(ap => ap.Name == "Reviewer").Id, ScTitle = "Ph.D.", OrgName = "Wroc³aw University of Science and Technology", Language1Id = 47, Language2Id = 15 }, new Reviewer { ApplicationUserId = context.ApplicationUser.First(ap => ap.Name == "Reviewer2").Id, ScTitle = "Ph.D.", OrgName = "Wroc³aw University of Science and Technology", Language1Id = 47, Language2Id = 15 } }; foreach (Reviewer r in reviewers) { context.Reviewer.Add(r); } context.SaveChanges(); var papers = new Paper[] { new Paper { TitleENG = "Test1", TitleORG = "Teœcik1", Abstract = "taki tam sobie test enuma", Authors = "Marek Granowicz", LanguageId = 47, OrgName = "PWr", Status = Paper.ProcessStatus.Reviewed, AuthorId = context.Author.First().UserTypeId, ReviewerId = context.Reviewer.First().UserTypeId }, new Paper { TitleENG = "New Big Bang Theory", TitleORG = "Nowa teoria Wielkiego Wybuchu", Authors = "Wocjciech Pêciak, Robert Lewandowski", Abstract = "Skrót treœci - abstract", OrgName = "WAT", SubmissionDate = DateTime.Now, Status = Paper.ProcessStatus.UnderReview, LanguageId = 15, AuthorId = context.Author.First().UserTypeId }, new Paper { TitleENG = "Test1", TitleORG = "Teœcik1", Abstract = "taki tam sobie test enuma", Authors = "Marek Granowicz", LanguageId = 47, OrgName = "PWr", Status = Paper.ProcessStatus.UnderReview, AuthorId = context.Author.First().UserTypeId, ReviewerId = context.Reviewer.First().UserTypeId }, new Paper { TitleENG = "Test2", TitleORG = "Teœcik2", Abstract = "taki tam sobie test enuma", Authors = "Marek Granowicz", LanguageId = 47, OrgName = "PWr", Status = 0, AuthorId = context.Author.First().UserTypeId }, new Paper { TitleENG = "Test3", TitleORG = "Teœcik3", Abstract = "taki tam sobie test enuma", Authors = "Marek Granowicz", LanguageId = 47, OrgName = "PWr", Status = 0, AuthorId = context.Author.First().UserTypeId } }; foreach (Paper p in papers) { context.Paper.Add(p); } context.SaveChanges(); var keywords = new PaperKeyword[] { new PaperKeyword { KeyWord = "physics", PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 1).PaperId }, new PaperKeyword { KeyWord = "frog", PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 1).PaperId }, new PaperKeyword { KeyWord = "wood", PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 1).PaperId }, new PaperKeyword { KeyWord = "rock", PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 1).PaperId }, new PaperKeyword { KeyWord = "music", PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 2).PaperId }, new PaperKeyword { KeyWord = "lake", PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 2).PaperId }, new PaperKeyword { KeyWord = "mutant", PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 2).PaperId }, new PaperKeyword { KeyWord = "leaf", PaperId = context.Paper.FirstOrDefault(p => p.PaperId == 2).PaperId }, }; foreach (var keyword in keywords) { context.PaperKeyword.Add(keyword); } context.SaveChanges(); // Make payment for each paper foreach (var paper in papers) { context.Payment.Add(new Payment { IsDone = true, PaperId = paper.PaperId }); } context.SaveChanges(); var reviews = new Review[] { new Review { Problems = "What was the problem?", WhyProblems = "Why it was a problem?", Solution = "What is a proposed solution?", Achievements = "What is outcome?", NotMentioned = "Gaps?", Grade = "On scale 0 to 10.", GeneralComments = "It was lovely day.", Date = DateTime.Now, PaperId = context.Paper.First(p => p.Status == Paper.ProcessStatus.Reviewed).PaperId } }; foreach (var review in reviews) { context.Review.Add(review); } context.SaveChanges(); #endregion }