From d5f3963a26208f4f2696921a33dcdfe67f310b86 Mon Sep 17 00:00:00 2001 From: mborzyszkowski Date: Tue, 4 Aug 2020 16:43:13 +0200 Subject: [PATCH] migration v2 --- .../Controllers/AdminController.cs | 68 ++--- .../DatabaseFiller.cs | 239 ++++++------------ 2 files changed, 118 insertions(+), 189 deletions(-) diff --git a/src/InternshipSystem.Api/Controllers/AdminController.cs b/src/InternshipSystem.Api/Controllers/AdminController.cs index f3ed409..84db31e 100644 --- a/src/InternshipSystem.Api/Controllers/AdminController.cs +++ b/src/InternshipSystem.Api/Controllers/AdminController.cs @@ -20,41 +20,49 @@ namespace InternshipSystem.Api.Controllers public async Task Fill() { await FillerService.FillCompany(); await FillerService.FillStudents(); + await FillerService.FillSubjects(); await FillerService.FillInternshipTypes(); await FillerService.FillEditions(); await FillerService.FillInternShips(); return Ok(); } - [HttpPost("fill/companies")] - public async Task FillCompaniesAsync() - { - await FillerService.FillCompany(); - return Ok(); - } - - [HttpPost("fill/students")] - public async Task FillStudentsAsync() { - await FillerService.FillStudents(); - return Ok(); - } - - [HttpPost("fill/internshiptypes")] - public async Task FillInternshipTypesAsync() { - await FillerService.FillInternshipTypes(); - return Ok(); - } - - [HttpPost("fill/editions")] - public async Task FillEditionsAsync() { - await FillerService.FillEditions(); - return Ok(); - } - - [HttpPost("fill/internships")] - public async Task FillInternShipsAsync() { - await FillerService.FillInternShips(); - return Ok(); - } + // [HttpPost("fill/companies")] + // public async Task FillCompaniesAsync() + // { + // await FillerService.FillCompany(); + // return Ok(); + // } + // + // [HttpPost("fill/students")] + // public async Task FillStudentsAsync() { + // await FillerService.FillStudents(); + // return Ok(); + // } + // + // [HttpPost("fill/subjects")] + // public async Task FillSubjectsAsync() + // { + // await FillerService.FillSubjects(); + // return Ok(); + // } + // + // [HttpPost("fill/internshiptypes")] + // public async Task FillInternshipTypesAsync() { + // await FillerService.FillInternshipTypes(); + // return Ok(); + // } + // + // [HttpPost("fill/editions")] + // public async Task FillEditionsAsync() { + // await FillerService.FillEditions(); + // return Ok(); + // } + // + // [HttpPost("fill/internships")] + // public async Task FillInternShipsAsync() { + // await FillerService.FillInternShips(); + // return Ok(); + // } } } \ No newline at end of file diff --git a/src/InternshipSystem.Repository/DatabaseFiller.cs b/src/InternshipSystem.Repository/DatabaseFiller.cs index 65f1f52..fc813a5 100644 --- a/src/InternshipSystem.Repository/DatabaseFiller.cs +++ b/src/InternshipSystem.Repository/DatabaseFiller.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Threading.Tasks; using InternshipSystem.Core; using InternshipSystem.Repository.Model; +using Microsoft.EntityFrameworkCore; namespace InternshipSystem.Repository { @@ -84,20 +85,22 @@ namespace InternshipSystem.Repository }; await Context.Companies.AddRangeAsync(companies); await Context.SaveChangesAsync(); - } + } - public async Task FillStudents() + public async Task FillStudents() { var interns = new List { - new Student { + new Student + { FirstName = "Jan", LastName = "Kowalski", AlbumNumber = 123456, Email = "s123456@student.pg.edu.pl", Semester = 4, }, - new Student { + new Student + { FirstName = "Adam", LastName = "Kołek", AlbumNumber = 102137, @@ -109,19 +112,20 @@ namespace InternshipSystem.Repository await Context.SaveChangesAsync(); } - public async Task FillInternshipTypes() { + public async Task FillInternshipTypes() + { var internshipTypes = new List { - new InternshipTypeReadModel + new InternshipTypeReadModel { Type = "FreeInternship", Description = "Praktyka bezpłatna", }, - new InternshipTypeReadModel + new InternshipTypeReadModel { Type = "GraduateInternship" }, - new InternshipTypeReadModel + new InternshipTypeReadModel { Type = "FreeApprenticeship" }, @@ -157,26 +161,54 @@ namespace InternshipSystem.Repository await Context.SaveChangesAsync(); } - public async Task FillEditions() { + public async Task FillSubjects() + { + var subjects = new List + { + new InternshipSubjectReadModel + { + Description = "Modelowanie baz danych" + }, + new InternshipSubjectReadModel + { + Description = "Oprogramowywanie kart graficznych" + }, + new InternshipSubjectReadModel + { + Description = "Projektowanie UI" + } + }; + await Context.Subjects.AddRangeAsync(subjects); + await Context.SaveChangesAsync(); + } + + public async Task FillEditions() + { var editions = new List { - new EditionReadModel + new EditionReadModel { EditionStart = new DateTime(2000, 5, 10), EditionFinish = new DateTime(2000, 11, 10), ReportingStart = new DateTime(2000, 9, 30), AvailableSubjects = new List { - new EditionSubject + new EditionSubject { - InternshipId = Context.InternshipTypes - .First(i => i.Description == "Instalacja, konfiguracja i administracja niewielkich sieci komputerowych, w tym bezprzewodowych.") + InternshipId = Context.Subjects + .First(i => i.Description.Equals("Modelowanie baz danych")) .Id, }, new EditionSubject { - InternshipId = Context.InternshipTypes - .First(i => i.Description == "Projektowanie, implementacja i modyfikacjeoprogramowaniaw różnych technologiach i dla różnych zastosowań.") + InternshipId = Context.Subjects + .First(i => i.Description.Equals("Oprogramowywanie kart graficznych")) + .Id + }, + new EditionSubject + { + InternshipId = Context.Subjects + .First(i => i.Description.Equals("Projektowanie UI")) .Id } }.ToImmutableList(), @@ -190,24 +222,24 @@ namespace InternshipSystem.Repository await Context.SaveChangesAsync(); } - public async Task FillInternShips() { - var edition = Context.Editions.First(); - + public async Task FillInternShips() + { var intenrships = new List { new InternshipReadModel { - Student = Context.Students.First(i => i.AlbumNumber == 123456), + Student = Context.Students.First(i => i.AlbumNumber.Equals(123456)), InternshipRegistration = new InternshipRegistrationReadModel() { - Company = Context.Companies.First(c => c.Nip == "9570752316"), //Intel - Type = Context.InternshipTypes.First(t => t.Type == "UOP"), + Company = Context.Companies.First(c => c.Nip.Equals("9570752316")), //Intel + Type = Context.InternshipTypes.First(t => t.Type.Equals("UOP")), Start = new DateTime(2000, 7, 1), End = new DateTime(2000, 8, 30), State = DocumentState.Submitted, - BranchAddress = + BranchAddress = Context.Companies - .First(c => c.Nip == "9570752316") + .Include(c => c.Branches) + .First(c => c.Nip.Equals("9570752316")) .Branches .First(), }, @@ -221,7 +253,17 @@ namespace InternshipSystem.Repository { new ProgramSubject { - //TODO + InternshipSubjectId = + Context.Subjects + .First(s => s.Description.Equals("Projektowanie UI")) + .Id + }, + new ProgramSubject + { + InternshipSubjectId = + Context.Subjects + .First(s => s.Description.Equals("Oprogramowywanie kart graficznych")) + .Id } } }, @@ -231,14 +273,15 @@ namespace InternshipSystem.Repository Student = Context.Students.First(i => i.AlbumNumber == 102137), InternshipRegistration = new InternshipRegistrationReadModel() { - Company = Context.Companies.First(c => c.Nip == "5842068320"), //Asseco - Type = Context.InternshipTypes.First(t => t.Type == "UZ"), + Company = Context.Companies.First(c => c.Nip.Equals("5842068320")), //Asseco + Type = Context.InternshipTypes.First(t => t.Type.Equals("UZ")), Start = new DateTime(2000, 7, 1), End = new DateTime(2000, 8, 30), State = DocumentState.Submitted, - BranchAddress = + BranchAddress = Context.Companies - .First(c => c.Nip == "5842068320") + .Include(c => c.Branches) + .First(c => c.Nip.Equals("5842068320")) .Branches .First(), }, @@ -250,141 +293,19 @@ namespace InternshipSystem.Repository PhoneNumber = "555-525-545", ChosenSubjects = new List { - //TODO + new ProgramSubject + { + InternshipSubjectId = + Context.Subjects + .First(s => s.Description.Equals("Modelowanie baz danych")) + .Id + } }, }, }, }; - Context.Internships.AddRange(intenrships); + await Context.Internships.AddRangeAsync(intenrships); await Context.SaveChangesAsync(); } - } - - // new Internship - // { - // Intern = Context.Interns.Where(i => i.AlbumNumber == "102137").First(), - // Edition = edition, - // BranchOffice = - // Context.Companies - // .Where(c => c.Nip == "5842068320") //Asseco - // .First() - // .Branches - // .First(), - // Type = Context.InternshipTypes.Where(t => t.Type == "UZ").First(), - // StartDate = new DateTime(2000, 7, 1), - // EndDate = new DateTime(2000, 8, 30), - // IsAccepted = false, - // DeanAcceptance = new DeanAcceptance - // { - // IsDeansAcceptanceRequired = false - // }, - // Insurance = new Insurance - // { - // InsuranceDeliveryDate = new DateTime(2000, 6, 29), - // IsInsuranceRequired = true - // }, - // LengthInWeeks = 9, - // Grade = 0, - // Program = new List - // { - // edition.Subjects.First() - // }, - // Mentor = new Mentor - // { - // Name = "Horacy", - // Surname = "Wościcki", - // Email = "howos@intel.com", - // Phone = "605-555-555" - // } - // } - - // Course = new Course - // { - // Name = "Informatyka", - // DesiredSemesters = new List { 4, 6 }, - // ProgramEntries = new List - // { - // new InternshipProgramEntry - // { - // Description = "Instalacja, konfiguracja i administracja niewielkich sieci komputerowych, w tym bezprzewodowych." - // }, - // new InternshipProgramEntry - // { - // Description = "Implementacja polityki bezpieczeństwa informacji w firmie lub instytucji, instalacja ochrony antywirusowej, konfiguracja zapór ogniowych." - // }, - // new InternshipProgramEntry - // { - // Description = "Instalacja, konfiguracja i administracja oprogramowania, w szczególnościsystemów operacyjnychiserwerów aplikacji." - // }, - // new InternshipProgramEntry - // { - // Description = "Projektowanie, implementacja i modyfikacjeoprogramowaniaw różnych technologiach i dla różnych zastosowań." - // } - // } - // } - - // Course = new Course - // { - // Name = "Robotyka", - // DesiredSemesters = new List { 6 }, - // ProgramEntries = new List - // { - // new InternshipProgramEntry - // { - // Description = "Testowanie oprogramowania, także z wykorzystaniem narzędzi do testowania automatycznego." - // }, - // new InternshipProgramEntry - // { - // Description = "Wykorzystanie otwartych komponentów programowych z uwzględnieniem prawnych zależności pomiędzy nimi a produktem wynikowym." - // }, - // new InternshipProgramEntry - // { - // Description = "Projektowanie i implementacja baz danych oraz badanie ich wydajności." - // }, - // new InternshipProgramEntry - // { - // Description = "Projektowanie i prototypowaniezaawansowanychinterfejsów użytkownika." - // } - // } - // } - - // new Internship - // { - // Intern = Context.Interns.Where(i => i.AlbumNumber == "123456").First(), - // Edition = edition, - // BranchOffice = - // Context.Companies - // .Where(c => c.Nip == "9570752316") //Intel - // .First() - // .Branches - // .First(), - // Type = Context.InternshipTypes.Where(t => t.Type == "UOP").First(), - // StartDate = new DateTime(2000, 7, 1), - // EndDate = new DateTime(2000, 8, 30), - // IsAccepted = false, - // DeanAcceptance = new DeanAcceptance - // { - // AcceptanceDate = new DateTime(2000, 6, 26), - // IsDeansAcceptanceRequired = true, - // Reason = DeanAcceptanceReason.Semester - // }, - // Insurance = new Insurance - // { - // InsuranceDeliveryDate = new DateTime(2000, 6, 29), - // IsInsuranceRequired = true - // }, - // LengthInWeeks = 9, - // Grade = 0, - // Program = new List - // { - // edition.Subjects.First() - // }, - // Mentor = new Mentor - // { - // Name = "Horacy", - // Surname = "Wościcki", - // Email = "howos@intel.com", - // Phone = "605-555-555" - // } - // }, + } } \ No newline at end of file