2 using System.Collections.Generic;
4 using System.Threading.Tasks;
5 using Microsoft.AspNetCore.Hosting;
6 using Microsoft.AspNetCore.Identity;
7 using Microsoft.Extensions.DependencyInjection;
12 using Microsoft.Extensions.Logging;
39 var env = serviceProvider.GetService<IHostingEnvironment>();
42 if (!env.IsDevelopment())
return;
44 var logger = serviceProvider.GetRequiredService<ILogger<SeedData>>();
46 SeedUserRoles(serviceProvider.GetRequiredService<RoleManager<UserProfileRole>>(), logger).Wait();
47 SeedUserProfile(context, serviceProvider).Wait();
48 SeedDepartments(context, serviceProvider).Wait();
49 SeedTeacherReports(context);
50 SeedScientificWorks(context);
51 SeedConference(context);
52 SeedPublications(context);
54 SeedDepartment(context);
55 SeedScientificInternship(context);
56 SeedScientificConsultation(context);
57 SeedReportThesis(context);
58 SeedPostgraduateGuidance(context);
59 SeedPostgraduateDissertationGuidance(context);
60 SeedPatentLicenseActivity(context);
61 SeedOpposition(context);
62 SeedMembership(context);
75 Email =
"orest@gmail.com",
83 MiddleName =
"Романович",
84 PhoneNumber =
"+380000000001",
85 AcademicStatus =
"Бакалавр",
86 ScientificDegree =
"Бакалавр",
87 YearDegreeGained = 2020,
88 GraduationYear = 2020,
93 Email =
"yura@gmail.com",
95 LastName =
"Лісовський",
101 MiddleName =
"Юрійович",
102 PhoneNumber =
"+380000000002",
103 AcademicStatus =
"Бакалавр",
104 ScientificDegree =
"Бакалавр",
105 YearDegreeGained = 2020,
106 GraduationYear = 2020,
111 Email =
"olena@gmail.com",
112 Position =
"Teacher",
119 MiddleName =
"Романівна",
120 PhoneNumber =
"+380000000003",
121 AcademicStatus =
"Бакалавр",
122 ScientificDegree =
"Бакалавр",
123 YearDegreeGained = 2020,
124 GraduationYear = 2020,
129 Email =
"roman@gmail.com",
130 Position =
"Teacher",
137 MiddleName =
"Ігорович",
138 PhoneNumber =
"+380000000004",
139 AcademicStatus =
"Бакалавр",
140 ScientificDegree =
"Бакалавр",
141 YearDegreeGained = 2020,
142 GraduationYear = 2020,
146 var userManager = serviceProvider.GetRequiredService<UserManager<UserProfile>>();
148 foreach (var user
in users)
150 await userManager.CreateAsync(user,
"qwerty");
151 if (user.UserName !=
"olena")
153 var usr = userService.Get(u => u.UserName == user.UserName);
163 var head = context.
UserProfiles.First(u => u.UserName ==
"olena");
164 var departments =
new[]
169 Staff =
new List<UserProfile>
176 Title =
"Програмування" 179 foreach (var department
in departments)
184 var userManager = serviceProvider.GetRequiredService<UserManager<UserProfile>>();
212 conferenceService.CreateItem(
215 Topic =
"Best topic ever",
228 articleService.CreateItem(
231 Title =
"my first Article",
233 PublishingPlace =
"LNU",
234 PublishingHouseName =
"Lnu oreo",
235 PublishingYear = 2019,
237 IsPrintCanceled =
true,
238 IsRecommendedToPrint =
false,
239 LiabilityInfo =
"some txt",
240 DocumentInfo =
"doc txt" 244 articleService.AddAuthor(
245 articleService.Get(a => a.Title ==
"my first Article"),
246 context.Users.First(u => u.UserName ==
"olena")
267 Title =
"my first publication",
268 PublishingPlace =
"my first publishing place",
269 Specification =
"some first specification",
270 PublishingHouseName =
"new oreo",
271 PublishingYear = 1999,
276 publicationsService.AddAuthor(
277 publicationsService.Get(a => a.Title ==
"my first publication"),
278 context.Users.First(u => u.UserName ==
"olena")
280 publicationsService.AddAuthor(
281 publicationsService.Get(a => a.Title ==
"my first publication"),
282 context.Users.First(u => u.UserName ==
"yura")
288 Title =
"my second publication",
289 PublishingPlace =
"my second publishing place",
290 Specification =
"some second specification",
291 PublishingHouseName =
"new oreo",
292 PublishingYear = 2019,
298 publicationsService.AddAuthor(
299 publicationsService.Get(a => a.Title ==
"my second publication"),
300 context.Users.First(u => u.UserName ==
"olena")
303 publicationsService.AddAuthor(
304 publicationsService.Get(a => a.Title ==
"my second publication"),
305 context.Users.First(u => u.UserName ==
"yura")
307 publicationsService.AddAuthor(
308 publicationsService.Get(a => a.Title ==
"my second publication"),
309 context.Users.First(u => u.UserName ==
"roman")
314 Title =
"My comment",
315 PublishingPlace =
"Dnipro",
316 Specification =
"scientific",
317 PublishingHouseName =
"first publish house name",
318 PublishingYear = 2015,
326 Title =
"My HandBook",
327 PublishingPlace =
"Lviv",
328 Specification =
"scientific",
329 PublishingHouseName =
"n-th publish name",
330 PublishingYear = 2016,
338 Title =
"My BibliographicIndex",
339 PublishingPlace =
"Ukraine",
340 Specification =
"bibliya",
341 PublishingHouseName =
"church",
359 scientificWorkService.CreateItem(
369 departmentService.CreateItem(
372 Title =
"Programming" 375 var scientificWork = scientificWorkService.GetAll().First();
376 departmentService.AddScientificWork(departmentService.GetAll().First().Id, scientificWork);
380 departmentService.AddUser(departmentUser.Id, departmentUser);
392 PlaceOfInternship =
"America",
393 Started = DateTime.Today,
394 Ended = DateTime.Now,
395 Contents =
"Good Job" 397 scientificInternshipService.AddUser(
399 context.
UserProfiles.FirstOrDefault(u => u.UserName ==
"yura"));
410 CandidateName =
"Igor",
411 DissertationTitle =
"Work in Africa",
412 Guide = context.
UserProfiles.First(u => u.UserName ==
"orest")
416 CandidateName =
"Yura",
417 DissertationTitle =
"Work in Canada",
418 Guide = context.
UserProfiles.First(u => u.UserName ==
"roman")
431 Thesis =
"My first thesis",
435 var reportThesis = reportThesesService.GetAll().First();
438 reportThesesService.AddAuthor(reportThesis.Id, author.Id);
449 PostgraduateName =
"Bogdan Ivanovych",
450 PostgraduateInfo =
"now is working",
451 Guide = context.
UserProfiles.First(u => u.UserName ==
"orest")
463 PostgraduateName =
"Orest Romanovych",
464 Dissertation =
"big",
466 DateDegreeGained = DateTime.Today,
467 GraduationYear = 2012,
468 Guide = context.
UserProfiles.First(u => u.UserName ==
"yura")
490 Date = DateTime.Today,
501 oppositionsService.CreateItem(
504 About =
"Nice opposition",
505 DateOfOpposition = DateTime.Now,
506 Opponent = context.
UserProfiles.First(u => u.UserName ==
"yura")
510 oppositionsService.CreateItem(
513 About =
"Bad opposition",
514 DateOfOpposition = DateTime.Today,
515 Opponent = context.
UserProfiles.First(u => u.UserName ==
"olena")
529 MembershipInfo =
"good helper",
530 User = context.
UserProfiles.First(u => u.UserName ==
"yura")
535 MembershipInfo =
"best helper",
536 User = context.
UserProfiles.First(u => u.UserName ==
"orest")
541 MembershipInfo =
"normal guy",
542 User = context.
UserProfiles.First(u => u.UserName ==
"yura")
551 scientificWorkService.CreateItem(
560 var scientificWork = scientificWorkService.GetAll().First();
563 scientificWorkService.AddAuthor(scientificWork.Id, author.Id);
566 private static async Task SeedUserRoles(RoleManager<UserProfileRole> roleManager, ILogger logger)
570 if (await roleManager.RoleExistsAsync(roleName))
continue;
571 var taskResult = await roleManager.CreateAsync(
new UserProfileRole(roleName));
572 if (!taskResult.Succeeded)
574 logger.LogWarning(
"Could not create role: " + roleName);
const string Administrator
static void Initialize(IServiceProvider serviceProvider, ScientificReportDbContext context)
Initializes the basic data, the entrypoint for all seeds
virtual DbSet< UserProfile > UserProfiles
virtual DbSet< Publication > Publications
virtual DbSet< Department > Departments
override async Task< int > SaveChangesAsync(CancellationToken cancellationToken=default(CancellationToken))
virtual DbSet< Article > Articles
virtual DbSet< ScientificInternship > ScientificInternships
const string HeadOfDepartment
virtual DbSet< Opposition > Oppositions
override int SaveChanges()
virtual DbSet< Membership > Memberships
virtual DbSet< PostgraduateGuidance > PostgraduateGuidances
virtual DbSet< Conference > Conferences
static readonly string[] Roles
virtual DbSet< ScientificWork > ScientificWorks
virtual DbSet< PostgraduateDissertationGuidance > PostgraduateDissertationGuidances
virtual DbSet< ReportThesis > ReportTheses
virtual DbSet< PatentLicenseActivity > PatentLicenseActivities
This class is created to seed the basic data to be used in both frontend and backend and it is for de...
virtual DbSet< TeacherReport > TeacherReports
virtual DbSet< ScientificConsultation > ScientificConsultations