From ff5dc64ec1e1e6ad6bcf3c2ab9daac76330c0e27 Mon Sep 17 00:00:00 2001 From: Hion-V Date: Fri, 18 Dec 2020 13:48:13 +0100 Subject: [PATCH] Resolved Merge Conflict --- .vs/AlfaPrentice/DesignTimeBuild/.dtbcache.v2 | Bin 0 -> 141913 bytes .vs/AlfaPrentice/v16/.suo | Bin 0 -> 61952 bytes dotnet/AlfaPrentice.sln | 25 ++++ dotnet/AlfaPrentice/AlfaPrentice.csproj | 28 ++++ dotnet/AlfaPrentice/AlfaPrentice.csproj.user | 12 ++ .../Controllers/BedrijfController.cs | 56 ++++++++ .../Controllers/SollicitatieController.cs | 49 +++++++ .../Controllers/WeatherForecastController.cs | 39 +++++ .../AlfaPrentice/Data/AlfaPrenticeContext.cs | 55 ++++++++ dotnet/AlfaPrentice/Dockerfile | 22 +++ dotnet/AlfaPrentice/Models/Adres.cs | 20 +++ dotnet/AlfaPrentice/Models/Afspraak.cs | 24 ++++ dotnet/AlfaPrentice/Models/Agenda.cs | 16 +++ dotnet/AlfaPrentice/Models/AgendaBlok.cs | 18 +++ dotnet/AlfaPrentice/Models/AppSettings.cs | 14 ++ dotnet/AlfaPrentice/Models/BPVDocent.cs | 17 +++ dotnet/AlfaPrentice/Models/Bedrijf.cs | 22 +++ dotnet/AlfaPrentice/Models/Bericht.cs | 20 +++ dotnet/AlfaPrentice/Models/Deelnemer.cs | 19 +++ dotnet/AlfaPrentice/Models/Docent.cs | 16 +++ dotnet/AlfaPrentice/Models/Document.cs | 18 +++ dotnet/AlfaPrentice/Models/Eisen.cs | 15 ++ dotnet/AlfaPrentice/Models/Evaluatie.cs | 21 +++ dotnet/AlfaPrentice/Models/Gebruiker.cs | 25 ++++ dotnet/AlfaPrentice/Models/Klas.cs | 17 +++ dotnet/AlfaPrentice/Models/Mentor.cs | 15 ++ dotnet/AlfaPrentice/Models/Opleiding.cs | 17 +++ dotnet/AlfaPrentice/Models/POK.cs | 20 +++ .../AlfaPrentice/Models/Praktijkbegeleider.cs | 18 +++ dotnet/AlfaPrentice/Models/Session.cs | 17 +++ dotnet/AlfaPrentice/Models/Sollicitatie.cs | 18 +++ dotnet/AlfaPrentice/Models/StagePlek.cs | 18 +++ .../AlfaPrentice/Models/Stagecoordinator.cs | 14 ++ dotnet/AlfaPrentice/Models/Student.cs | 23 +++ dotnet/AlfaPrentice/Models/Traject.cs | 25 ++++ dotnet/AlfaPrentice/Models/Weekstaten.cs | 20 +++ dotnet/AlfaPrentice/Program.cs | 26 ++++ .../Properties/launchSettings.json | 38 +++++ .../Interfaces/IAfspraakRepository.cs | 11 ++ .../Interfaces/IAgendaRepository.cs | 18 +++ .../Interfaces/IBedrijfRepository.cs | 16 +++ .../Interfaces/ISollicitatieRepository.cs | 15 ++ .../implementaties/AfspraakRepository.cs | 133 ++++++++++++++++++ .../implementaties/AgendaRepository.cs | 115 +++++++++++++++ .../implementaties/BedrijfRepository.cs | 50 +++++++ .../implementaties/SollicitatieRepository.cs | 39 +++++ dotnet/AlfaPrentice/Startup.cs | 71 ++++++++++ dotnet/AlfaPrentice/WeatherForecast.cs | 15 ++ .../AlfaPrentice/appsettings.Development.json | 9 ++ dotnet/AlfaPrentice/appsettings.json | 17 +++ 50 files changed, 1346 insertions(+) create mode 100644 .vs/AlfaPrentice/DesignTimeBuild/.dtbcache.v2 create mode 100644 .vs/AlfaPrentice/v16/.suo create mode 100644 dotnet/AlfaPrentice.sln create mode 100644 dotnet/AlfaPrentice/AlfaPrentice.csproj create mode 100644 dotnet/AlfaPrentice/AlfaPrentice.csproj.user create mode 100644 dotnet/AlfaPrentice/Controllers/BedrijfController.cs create mode 100644 dotnet/AlfaPrentice/Controllers/SollicitatieController.cs create mode 100644 dotnet/AlfaPrentice/Controllers/WeatherForecastController.cs create mode 100644 dotnet/AlfaPrentice/Data/AlfaPrenticeContext.cs create mode 100644 dotnet/AlfaPrentice/Dockerfile create mode 100644 dotnet/AlfaPrentice/Models/Adres.cs create mode 100644 dotnet/AlfaPrentice/Models/Afspraak.cs create mode 100644 dotnet/AlfaPrentice/Models/Agenda.cs create mode 100644 dotnet/AlfaPrentice/Models/AgendaBlok.cs create mode 100644 dotnet/AlfaPrentice/Models/AppSettings.cs create mode 100644 dotnet/AlfaPrentice/Models/BPVDocent.cs create mode 100644 dotnet/AlfaPrentice/Models/Bedrijf.cs create mode 100644 dotnet/AlfaPrentice/Models/Bericht.cs create mode 100644 dotnet/AlfaPrentice/Models/Deelnemer.cs create mode 100644 dotnet/AlfaPrentice/Models/Docent.cs create mode 100644 dotnet/AlfaPrentice/Models/Document.cs create mode 100644 dotnet/AlfaPrentice/Models/Eisen.cs create mode 100644 dotnet/AlfaPrentice/Models/Evaluatie.cs create mode 100644 dotnet/AlfaPrentice/Models/Gebruiker.cs create mode 100644 dotnet/AlfaPrentice/Models/Klas.cs create mode 100644 dotnet/AlfaPrentice/Models/Mentor.cs create mode 100644 dotnet/AlfaPrentice/Models/Opleiding.cs create mode 100644 dotnet/AlfaPrentice/Models/POK.cs create mode 100644 dotnet/AlfaPrentice/Models/Praktijkbegeleider.cs create mode 100644 dotnet/AlfaPrentice/Models/Session.cs create mode 100644 dotnet/AlfaPrentice/Models/Sollicitatie.cs create mode 100644 dotnet/AlfaPrentice/Models/StagePlek.cs create mode 100644 dotnet/AlfaPrentice/Models/Stagecoordinator.cs create mode 100644 dotnet/AlfaPrentice/Models/Student.cs create mode 100644 dotnet/AlfaPrentice/Models/Traject.cs create mode 100644 dotnet/AlfaPrentice/Models/Weekstaten.cs create mode 100644 dotnet/AlfaPrentice/Program.cs create mode 100644 dotnet/AlfaPrentice/Properties/launchSettings.json create mode 100644 dotnet/AlfaPrentice/Repositorys/Interfaces/IAfspraakRepository.cs create mode 100644 dotnet/AlfaPrentice/Repositorys/Interfaces/IAgendaRepository.cs create mode 100644 dotnet/AlfaPrentice/Repositorys/Interfaces/IBedrijfRepository.cs create mode 100644 dotnet/AlfaPrentice/Repositorys/Interfaces/ISollicitatieRepository.cs create mode 100644 dotnet/AlfaPrentice/Repositorys/implementaties/AfspraakRepository.cs create mode 100644 dotnet/AlfaPrentice/Repositorys/implementaties/AgendaRepository.cs create mode 100644 dotnet/AlfaPrentice/Repositorys/implementaties/BedrijfRepository.cs create mode 100644 dotnet/AlfaPrentice/Repositorys/implementaties/SollicitatieRepository.cs create mode 100644 dotnet/AlfaPrentice/Startup.cs create mode 100644 dotnet/AlfaPrentice/WeatherForecast.cs create mode 100644 dotnet/AlfaPrentice/appsettings.Development.json create mode 100644 dotnet/AlfaPrentice/appsettings.json diff --git a/.vs/AlfaPrentice/DesignTimeBuild/.dtbcache.v2 b/.vs/AlfaPrentice/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000000000000000000000000000000000000..0c586ddcd2d7dd75b5a59482a20784664c41c1e2 GIT binary patch literal 141913 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 literal 0 HcmV?d00001 diff --git a/dotnet/AlfaPrentice.sln b/dotnet/AlfaPrentice.sln new file mode 100644 index 0000000..d010876 --- /dev/null +++ b/dotnet/AlfaPrentice.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30804.86 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AlfaPrentice", "AlfaPrentice\AlfaPrentice.csproj", "{F1B31CC9-8926-432F-945E-6E47A30E276C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F1B31CC9-8926-432F-945E-6E47A30E276C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1B31CC9-8926-432F-945E-6E47A30E276C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1B31CC9-8926-432F-945E-6E47A30E276C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1B31CC9-8926-432F-945E-6E47A30E276C}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {9923371F-BE95-4DF6-8B5E-6A66760F5A2C} + EndGlobalSection +EndGlobal diff --git a/dotnet/AlfaPrentice/AlfaPrentice.csproj b/dotnet/AlfaPrentice/AlfaPrentice.csproj new file mode 100644 index 0000000..7c0dcbd --- /dev/null +++ b/dotnet/AlfaPrentice/AlfaPrentice.csproj @@ -0,0 +1,28 @@ + + + + net5.0 + 7ad3dc27-95ec-4ea9-8715-97e5b90343e0 + Linux + + + + + + + + + + + + + + + + + + + + + + diff --git a/dotnet/AlfaPrentice/AlfaPrentice.csproj.user b/dotnet/AlfaPrentice/AlfaPrentice.csproj.user new file mode 100644 index 0000000..f3a4c02 --- /dev/null +++ b/dotnet/AlfaPrentice/AlfaPrentice.csproj.user @@ -0,0 +1,12 @@ + + + + AlfaPrentice + MvcControllerWithActionsScaffolder + root/Common/MVC/Controller + 600 + + + ProjectDebugger + + \ No newline at end of file diff --git a/dotnet/AlfaPrentice/Controllers/BedrijfController.cs b/dotnet/AlfaPrentice/Controllers/BedrijfController.cs new file mode 100644 index 0000000..0bf6b50 --- /dev/null +++ b/dotnet/AlfaPrentice/Controllers/BedrijfController.cs @@ -0,0 +1,56 @@ +using AlfaPrentice.Data; +using AlfaPrentice.Models; +using AlfaPrentice.Repositorys.Interfaces; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 + +namespace AlfaPrentice.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class BedrijfController : ControllerBase + { + //constructor + public IBedrijfRepository bedrijfRepo; + public BedrijfController(IBedrijfRepository bedrijfRepo) + { + this.bedrijfRepo = bedrijfRepo; + } + + [HttpGet] + public IEnumerable GetBedrijf() + { + var bedrijven =bedrijfRepo.GetBedrijven(); + return bedrijven; + + } + + //get bedrijf by ID + [HttpGet("{Bedrijf_ID}")] + public Bedrijf GetBedrijf(int Bedrijf_ID) + { + var bedrijf = bedrijfRepo.GetBedrijf(Bedrijf_ID); + return bedrijf; + } + + //add geheel bedrijf + [HttpPost] + public void AddBedrijf([FromBody] Bedrijf bedrijf) + { + bedrijfRepo.AddBedrijf(bedrijf); + } + + //update een volledig bedrijf + [HttpPost] + public void UpdateBedrijf([FromBody] Bedrijf bedrijf) + { + bedrijfRepo.UpdateBedrijf(bedrijf); + } + } +} diff --git a/dotnet/AlfaPrentice/Controllers/SollicitatieController.cs b/dotnet/AlfaPrentice/Controllers/SollicitatieController.cs new file mode 100644 index 0000000..1f834f7 --- /dev/null +++ b/dotnet/AlfaPrentice/Controllers/SollicitatieController.cs @@ -0,0 +1,49 @@ +using AlfaPrentice.Data; +using AlfaPrentice.Models; +using AlfaPrentice.Repositorys.Interfaces; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 + +namespace AlfaPrentice.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class SollicitatieController : ControllerBase + { + //constructor + public ISollicitatieRepository sollicitatieRepo; + public SollicitatieController(ISollicitatieRepository sollicitatieRepo) + { + this.sollicitatieRepo = sollicitatieRepo; + } + + //get list sollicitaties + [HttpGet] + public IEnumerable GetSollicitaties() + { + var sollicitaties = sollicitatieRepo.GetSollicitaties(); + return sollicitaties; + } + + //get sollicitatie by student_ID + [HttpGet("{Student_ID}")] + public Sollicitatie GetSollicitatie(int Student_ID) + { + var sollicitatie = sollicitatieRepo.GetSollicitatie(Student_ID); + return sollicitatie; + } + + // POST api/ + [HttpPost] + public void Post([FromBody] Sollicitatie sollicitatie) + { + sollicitatieRepo.AddSollicitatie(sollicitatie); + } + + } +} diff --git a/dotnet/AlfaPrentice/Controllers/WeatherForecastController.cs b/dotnet/AlfaPrentice/Controllers/WeatherForecastController.cs new file mode 100644 index 0000000..232aa4b --- /dev/null +++ b/dotnet/AlfaPrentice/Controllers/WeatherForecastController.cs @@ -0,0 +1,39 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Controllers +{ + [ApiController] + [Route("[controller]")] + public class WeatherForecastController : ControllerBase + { + private static readonly string[] Summaries = new[] + { + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" + }; + + private readonly ILogger _logger; + + public WeatherForecastController(ILogger logger) + { + _logger = logger; + } + + [HttpGet] + public IEnumerable Get() + { + var rng = new Random(); + return Enumerable.Range(1, 5).Select(index => new WeatherForecast + { + Date = DateTime.Now.AddDays(index), + TemperatureC = rng.Next(-20, 55), + Summary = Summaries[rng.Next(Summaries.Length)] + }) + .ToArray(); + } + } +} diff --git a/dotnet/AlfaPrentice/Data/AlfaPrenticeContext.cs b/dotnet/AlfaPrentice/Data/AlfaPrenticeContext.cs new file mode 100644 index 0000000..489a7f7 --- /dev/null +++ b/dotnet/AlfaPrentice/Data/AlfaPrenticeContext.cs @@ -0,0 +1,55 @@ +using AlfaPrentice.Models; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Data +{ + public class AlfaPrenticeContext : DbContext + { + public AlfaPrenticeContext(DbContextOptions options) : base(options) + { + } + + //Gebruiker tabellen + public DbSet Gebruiker { get; set; } + public DbSet Adres { get; set; } + public DbSet Student { get; set; } + public DbSet Docent { get; set; } + public DbSet Mentor { get; set; } + public DbSet BPVDocent { get; set; } + public DbSet Stagecoordinator { get; set; } + + //Bedrijf tabellen + public DbSet Bedrijf { get; set; } + public DbSet Praktijkbegeleider { get; set; } + public DbSet Stageplek { get; set; } + public DbSet Eisen { get; set; } + + //agenda en bericht tabellen + public DbSet Bericht { get; set; } + public DbSet Agenda { get; set; } + public DbSet Afspraak { get; set; } + public DbSet AgendaBlock { get; set; } + public DbSet Deelnemer { get; set; } + + //School tabellen + public DbSet Opleiding { get; set; } + public DbSet Klas { get; set; } + + //stageperiode tabellen + public DbSet Sollicitatie { get; set; } + public DbSet Traject { get; set; } + public DbSet POK { get; set; } + public DbSet Weekstaten { get; set; } + public DbSet Evaluatie { get; set; } + + //system tabel + public DbSet Session { get; set; } + + + + } +} diff --git a/dotnet/AlfaPrentice/Dockerfile b/dotnet/AlfaPrentice/Dockerfile new file mode 100644 index 0000000..bcc76ff --- /dev/null +++ b/dotnet/AlfaPrentice/Dockerfile @@ -0,0 +1,22 @@ +#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. + +FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build +WORKDIR /src +COPY ["AlfaPrentice/AlfaPrentice.csproj", "AlfaPrentice/"] +RUN dotnet restore "AlfaPrentice/AlfaPrentice.csproj" +COPY . . +WORKDIR "/src/AlfaPrentice" +RUN dotnet build "AlfaPrentice.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "AlfaPrentice.csproj" -c Release -o /app/publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "AlfaPrentice.dll"] \ No newline at end of file diff --git a/dotnet/AlfaPrentice/Models/Adres.cs b/dotnet/AlfaPrentice/Models/Adres.cs new file mode 100644 index 0000000..3efe36e --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Adres.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Adres + { + [Key] + public int Adres_ID { get; set; } + public string Straat { get; set; } + public int Huisnummer { get; set; } + public string Toevoeging { get; set; } + public string Postcode { get; set; } + public string Plaats { get; set; } + public string Land { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Afspraak.cs b/dotnet/AlfaPrentice/Models/Afspraak.cs new file mode 100644 index 0000000..bc6271b --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Afspraak.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Afspraak + { + [Key] + public int Afspraak_ID { get; set; } + public int Agenda_ID { get; set; } + public DateTime BeginDatumeTijd { get; set; } + public int EindDaatumTijd { get; set; } + public string Locatie { get; set; } + public string Omschrijving { get; set; } + public string Onderwerp { get; set; } + public int Gebruiker_ID { get; set; } + public int Docent_ID { get; set; } + public int Student_ID { get; set; } + public int Praktijkbegeleider_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Agenda.cs b/dotnet/AlfaPrentice/Models/Agenda.cs new file mode 100644 index 0000000..a34bd1b --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Agenda.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Agenda + { + [Key] + public int Agenda_ID { get; set; } + public int AgendaBlock_ID { get; set; } + public int Gebruiker_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/AgendaBlok.cs b/dotnet/AlfaPrentice/Models/AgendaBlok.cs new file mode 100644 index 0000000..2fba8b1 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/AgendaBlok.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class AgendaBlok + { + [Key] + public int AgendaBlok_ID { get; set; } + public DateTime BeginDatumTijd { get; set; } + public DateTime EindDatumTijd { get; set; } + public int Agenda_ID { get; set; } + public int Gebruiker_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/AppSettings.cs b/dotnet/AlfaPrentice/Models/AppSettings.cs new file mode 100644 index 0000000..e956256 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/AppSettings.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class AppSettings + { + public string EmailSmtp { get; set; } + public string EmailUsername { get; set; } + public string EmailPassword { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/BPVDocent.cs b/dotnet/AlfaPrentice/Models/BPVDocent.cs new file mode 100644 index 0000000..61e2bb1 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/BPVDocent.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class BPVDocent + { + [Key] + public int BPVdocent_ID { get; set; } + public int Docent_ID { get; set; } + public int Student_ID { get; set; } + public int Traject_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Bedrijf.cs b/dotnet/AlfaPrentice/Models/Bedrijf.cs new file mode 100644 index 0000000..85325d9 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Bedrijf.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Bedrijf + { + [Key] + public int Bedrijf_ID { get; set; } + public string Naam { get; set; } + public string Logo { get; set; } + public string Beschrijving { get; set; } + public string Email { get; set; } + public int Telefoon { get; set; } + public string Status { get; set; } + public int Adres_ID { get; set; } + + } +} diff --git a/dotnet/AlfaPrentice/Models/Bericht.cs b/dotnet/AlfaPrentice/Models/Bericht.cs new file mode 100644 index 0000000..87e2284 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Bericht.cs @@ -0,0 +1,20 @@ +using Microsoft.EntityFrameworkCore.Metadata.Internal; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Bericht + { + [Key] + public int Bericht_ID { get; set; } + public string Onderwerp { get; set; } + public string Berichtt { get; set; } + public DateTime BerichtDatumTijd { get; set; } + public int Afzender { get; set; } + public int Gebruiker_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Deelnemer.cs b/dotnet/AlfaPrentice/Models/Deelnemer.cs new file mode 100644 index 0000000..a828104 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Deelnemer.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Deelnemer + { + [Key] + public int Deelnemer_ID { get; set; } + public int Afspraak_ID { get; set; } + public int Student_ID { get; st; } + public int BPVdocent_ID { get; set; } + public int Docent_ID { get; set; } + public int Praktijkbegeleider_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Docent.cs b/dotnet/AlfaPrentice/Models/Docent.cs new file mode 100644 index 0000000..51ad1fa --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Docent.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Docent : Gebruiker + { + [Key] + public int Docent_ID { get; set; } + public int Gebruiker_ID { get; set; } + public string DrieLetterCode { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Document.cs b/dotnet/AlfaPrentice/Models/Document.cs new file mode 100644 index 0000000..d751c46 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Document.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Document + { + [Key] + public int Document_ID { get; set; } + public string Bestand { get; set; } + public DateTime UploadDatumTijd { get; set; } + public int Versie { get; set; } + public int Gebruiker_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Eisen.cs b/dotnet/AlfaPrentice/Models/Eisen.cs new file mode 100644 index 0000000..c610d08 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Eisen.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Eisen + { + [Key] + public int Eisen_ID { get; set; } + public string Omschrijving { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Evaluatie.cs b/dotnet/AlfaPrentice/Models/Evaluatie.cs new file mode 100644 index 0000000..ca75518 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Evaluatie.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Evaluatie + { + [Key] + public int Evaluatie_ID { get; set; } + public string Beoordeling { get; set; } + public string Feedbakc { get; set; } + public int Student_ID { get; set; } + public int BPVdocent_ID { get; set; } + public int Praktijkbegeleider_ID { get; set; } + public int EvaluatieDatumTIjd { get; set; } + public bool Accodering { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Gebruiker.cs b/dotnet/AlfaPrentice/Models/Gebruiker.cs new file mode 100644 index 0000000..f7cd826 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Gebruiker.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Gebruiker + { + [Key] + public int Gebruiker_ID { get; set; } + public string Voornaam { get; set; } + public string Tussenvoegsel { get; set; } + public string Achternaam { get; set; } + public DateTime GeboorteDatum { get; set; } + public string Geslacht { get; set; } + public string Email { get; set; } + public int Telefoon { get; set; } + public string Wachtwoord { get; set; } + public string Profielfoto { get; set; } + public string Status { get; set; } + public int Adres_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Klas.cs b/dotnet/AlfaPrentice/Models/Klas.cs new file mode 100644 index 0000000..b220adf --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Klas.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Klas + { + [Key] + public int Klas_ID { get; set; } + public string Klasnaam { get; set; } + public int Mentor_ID { get; set; } + public int Opeleiding { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Mentor.cs b/dotnet/AlfaPrentice/Models/Mentor.cs new file mode 100644 index 0000000..1bff4b7 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Mentor.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Mentor + { + [Key] + public int Mentor_ID { get; set; } + public int Docent_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Opleiding.cs b/dotnet/AlfaPrentice/Models/Opleiding.cs new file mode 100644 index 0000000..9c784e7 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Opleiding.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Opleiding + { + [Key] + public int Opleiding_ID { get; set; } + public string Naam { get; set; } + public string Omschrijving { get; set; } + public string Status { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/POK.cs b/dotnet/AlfaPrentice/Models/POK.cs new file mode 100644 index 0000000..c48f009 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/POK.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class POK + { + [Key] + public int POK_ID { get; set; } + public bool Accodering { get; set; } + public DateTime AccoderingDatum { get; set; } + public DateTime AnnmaakDatum { get; set; } + public int Student_ID { get; set; } + public int BPVdocent_ID { get; set; } + public int Praktijkbegeleider_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Praktijkbegeleider.cs b/dotnet/AlfaPrentice/Models/Praktijkbegeleider.cs new file mode 100644 index 0000000..d515d8f --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Praktijkbegeleider.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Praktijkbegeleider : Gebruiker + { + [Key] + + public int Praktijkbegeleider_ID { get; set; } + public string Functie { get; set; } + public int Bedrijf_ID { get; set; } + public int Gebruiker_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Session.cs b/dotnet/AlfaPrentice/Models/Session.cs new file mode 100644 index 0000000..9feca31 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Session.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Session + { + [Key] + public int Session_ID { get; set; } + public string SessionToken { get; set; } + public DateTime SessionVervalDatumTijd { get; set; } + public int Gebruiker_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Sollicitatie.cs b/dotnet/AlfaPrentice/Models/Sollicitatie.cs new file mode 100644 index 0000000..bc284f2 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Sollicitatie.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Sollicitatie + { + [Key] + public int Sollicitatie_ID { get; set; } + public DateTime SolicitaieDatum { get; set; } + public string Status { get; set; } + public int Bedrijf_ID { get; set; } + public int Student_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/StagePlek.cs b/dotnet/AlfaPrentice/Models/StagePlek.cs new file mode 100644 index 0000000..3cea09d --- /dev/null +++ b/dotnet/AlfaPrentice/Models/StagePlek.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Stageplek + { + [Key] + public int StagePlek_ID { get; set; } + public int AantalPlekken { get; set; } + public int Bedrijf_ID { get; set; } + public int Eisen_ID { get; set; } + public int Opleiding_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Stagecoordinator.cs b/dotnet/AlfaPrentice/Models/Stagecoordinator.cs new file mode 100644 index 0000000..bfa42fc --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Stagecoordinator.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Stagecoordinator + { + [Key] + public int StageCoördinator_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Student.cs b/dotnet/AlfaPrentice/Models/Student.cs new file mode 100644 index 0000000..118bf66 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Student.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Student : Gebruiker + { + [Key] + public int Student_ID { get; set; } + public DateTime BeginDatum { get; set; } + public int Leerjaar { get; set; } + public int Adres_ID { get; set; } + public string CV { get; set; } + public string Motivatiebrief { get; set; } + public string Programmeertalen { get; set; } + public string Weblinks { get; set; } + public int Gebruiker_ID { get; set; } + public int Klas_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Traject.cs b/dotnet/AlfaPrentice/Models/Traject.cs new file mode 100644 index 0000000..e048c9d --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Traject.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Traject + { + [Key] + public int Traject_ID { get; set; } + public int Student_ID { get; set; } + public int BPVdocent_ID { get; set; } + public int Praktijkbegelijder_ID { get; set; } + public DateTime BeginDatum { get; set; } + public DateTime EindDatum { get; set; } + public int Evaluatie_ID { get; set; } + public int Weekstaten_ID { get; set; } + public int POK_ID { get; set; } + public int Sollicitatie_ID { get; set; } + public int StageCoördinator_ID { get; set; } + public int Document_ID { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Models/Weekstaten.cs b/dotnet/AlfaPrentice/Models/Weekstaten.cs new file mode 100644 index 0000000..1ea4a64 --- /dev/null +++ b/dotnet/AlfaPrentice/Models/Weekstaten.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Models +{ + public class Weekstaten + { + [Key] + public int Weekstaten_ID { get; set; } + public string Beschrijving { get; set; } + public DateTime BeginDatumTijd { get; set; } + public DateTime EindDatumTijd { get; set; } + public int Student_ID { get; set; } + public string Status { get; set; } + public int GewerkteUren { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/Program.cs b/dotnet/AlfaPrentice/Program.cs new file mode 100644 index 0000000..1c958c3 --- /dev/null +++ b/dotnet/AlfaPrentice/Program.cs @@ -0,0 +1,26 @@ +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice +{ + public class Program + { + public static void Main(string[] args) + { + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); + } +} diff --git a/dotnet/AlfaPrentice/Properties/launchSettings.json b/dotnet/AlfaPrentice/Properties/launchSettings.json new file mode 100644 index 0000000..4904edf --- /dev/null +++ b/dotnet/AlfaPrentice/Properties/launchSettings.json @@ -0,0 +1,38 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:30460", + "sslPort": 44358 + } + }, + "$schema": "http://json.schemastore.org/launchsettings.json", + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "AlfaPrentice": { + "commandName": "Project", + "launchBrowser": true, + "launchUrl": "swagger", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "dotnetRunMessages": "true", + "applicationUrl": "https://localhost:5001;http://localhost:5000" + }, + "Docker": { + "commandName": "Docker", + "launchBrowser": true, + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger", + "publishAllPorts": true, + "useSSL": true + } + } +} \ No newline at end of file diff --git a/dotnet/AlfaPrentice/Repositorys/Interfaces/IAfspraakRepository.cs b/dotnet/AlfaPrentice/Repositorys/Interfaces/IAfspraakRepository.cs new file mode 100644 index 0000000..2a01f71 --- /dev/null +++ b/dotnet/AlfaPrentice/Repositorys/Interfaces/IAfspraakRepository.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Repositorys.Interfaces +{ + public interface IAfspraakRepository + { + } +} diff --git a/dotnet/AlfaPrentice/Repositorys/Interfaces/IAgendaRepository.cs b/dotnet/AlfaPrentice/Repositorys/Interfaces/IAgendaRepository.cs new file mode 100644 index 0000000..488253c --- /dev/null +++ b/dotnet/AlfaPrentice/Repositorys/Interfaces/IAgendaRepository.cs @@ -0,0 +1,18 @@ +using AlfaPrentice.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Repositorys.Interfaces +{ + public interface IAgendaRepository + { + //agenda functions + List GetAgendas(); + Agenda GetAgenda(int Gebruiker_ID); + Agenda AddAgenda(Agenda agenda); + + //agendablock functions + } +} diff --git a/dotnet/AlfaPrentice/Repositorys/Interfaces/IBedrijfRepository.cs b/dotnet/AlfaPrentice/Repositorys/Interfaces/IBedrijfRepository.cs new file mode 100644 index 0000000..044b7cf --- /dev/null +++ b/dotnet/AlfaPrentice/Repositorys/Interfaces/IBedrijfRepository.cs @@ -0,0 +1,16 @@ +using AlfaPrentice.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Repositorys.Interfaces +{ + public interface IBedrijfRepository + { + List GetBedrijven(); + Bedrijf GetBedrijf(int Bedrijf_ID); + Bedrijf AddBedrijf(Bedrijf bedrijf); + Bedrijf UpdateBedrijf(Bedrijf bedrijf); + } +} diff --git a/dotnet/AlfaPrentice/Repositorys/Interfaces/ISollicitatieRepository.cs b/dotnet/AlfaPrentice/Repositorys/Interfaces/ISollicitatieRepository.cs new file mode 100644 index 0000000..79cff41 --- /dev/null +++ b/dotnet/AlfaPrentice/Repositorys/Interfaces/ISollicitatieRepository.cs @@ -0,0 +1,15 @@ +using AlfaPrentice.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Repositorys.Interfaces +{ + public interface ISollicitatieRepository + { + List GetSollicitaties(); + Sollicitatie GetSollicitatie(int Student_ID); + Sollicitatie AddSollicitatie(Sollicitatie Sollicitatie); + } +} diff --git a/dotnet/AlfaPrentice/Repositorys/implementaties/AfspraakRepository.cs b/dotnet/AlfaPrentice/Repositorys/implementaties/AfspraakRepository.cs new file mode 100644 index 0000000..1ac4eb1 --- /dev/null +++ b/dotnet/AlfaPrentice/Repositorys/implementaties/AfspraakRepository.cs @@ -0,0 +1,133 @@ +using AlfaPrentice.Data; +using AlfaPrentice.Models; +using AlfaPrentice.Repositorys.Interfaces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Repositorys.implementaties +{ + public class AfspraakRepository : IAfspraakRepository + { + AlfaPrenticeContext db; + public AfspraakRepository(AlfaPrenticeContext db) + { + this.db = db; + } + + /// + /// Get afspraken by ID of Gebruiker + /// + /// + /// GetAfspraken + public List GetAfspraken(int Gebruiker_ID) + { + return db.Afspraak.Where(G => G.Gebruiker_ID == Gebruiker_ID).ToList(); + } + + /// + /// Get 1 afspraak by Afspraak_ID and Gebruiker_ID + /// + /// + /// + /// GetAfspraak + public Afspraak GetAfspraak(int Afspraak_ID, int Gebruiker_ID) + { + return db.Afspraak.Where(A => A.Afspraak_ID == Afspraak_ID && A.Gebruiker_ID == Gebruiker_ID).FirstOrDefault(); + } + + /// + /// Add a afspraak + /// + /// + /// AddAfspraak + public Afspraak AddAfspraak(Afspraak afspraak) + { + db.Afspraak.Add(afspraak); + db.SaveChanges(); + + return afspraak; + } + + /// + /// Upodate afspraak + /// + /// + /// UpdateAfspraak + public Afspraak UpdateAfspraak(Afspraak afspraak) + { + db.Afspraak.Update(afspraak); + db.SaveChanges(); + + return afspraak; + } + + /// + /// Delete a afspraak + /// + /// + /// DeleteAfspraak + public Afspraak DeleteAfspraak(Afspraak afspraak) + { + db.Afspraak.Remove(afspraak); + db.SaveChanges(); + + return afspraak; + } + + /* + Querys for deelnemers of Afpraak + */ + /* + /// + /// Get list of afspraak by Afspraak_ID + /// + /// + /// GetDeelnemers + public List GetDeelnemers(int Aspraak_ID) + { + return db.Deelnemer.Where(D => D.Afspraak_ID == Afspraak_ID).ToList(); + }*/ + + /// + /// Add deelnemer to afspraak + /// + /// + /// AddDeelnemer + public Deelnemer AddDeelnemer(Deelnemer deelnemer) + { + db.Deelnemer.Add(deelnemer); + db.SaveChanges(); + + return deelnemer; + } + + /// + /// Update deelnemer of a afspraak + /// + /// + /// UpdateDeelnemer + public Deelnemer UpdateDeelnemer(Deelnemer deelnemer) + { + db.Deelnemer.Update(deelnemer); + db.SaveChanges(); + + return deelnemer; + } + + /// + /// Delete deelnemer from a Afspraak + /// + /// + /// DeleteDeelnemer + public Deelnemer Deletedeelnemer(Deelnemer deelnermer) + { + db.Deelnemer.Remove(deelnermer); + db.SaveChanges(); + + return deelnermer; + } + + } +} diff --git a/dotnet/AlfaPrentice/Repositorys/implementaties/AgendaRepository.cs b/dotnet/AlfaPrentice/Repositorys/implementaties/AgendaRepository.cs new file mode 100644 index 0000000..d693dcf --- /dev/null +++ b/dotnet/AlfaPrentice/Repositorys/implementaties/AgendaRepository.cs @@ -0,0 +1,115 @@ +using AlfaPrentice.Data; +using AlfaPrentice.Models; +using AlfaPrentice.Repositorys.Interfaces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Repositorys.implementaties +{ + public class AgendaRepository : IAgendaRepository + { + AlfaPrenticeContext db; + public AgendaRepository(AlfaPrenticeContext db) + { + this.db = db; + } + + /// + /// get list of all agendas + /// + /// ListAgenda + public List GetAggendas() + { + return db.Agenda.ToList(); + } + + /// + /// Get Agenda by Gebruiker_ID + /// + /// + /// Agenda + public Agenda GetAgenda(int Gebruiker_ID) + { + return db.Agenda.Where(A => A.Gebruiker_ID == Gebruiker_ID).FirstOrDefault(); + } + + /// + /// Add agenda for a Gebruiker + /// + /// + /// agenda + public Agenda AddAgenda(Agenda agenda) + { + db.Agenda.Add(agenda); + db.SaveChanges(); + + return agenda; + } + + /* + querys for agendablock + */ + + /// + /// Get Agendablock by Gebruiker_ID + /// + /// + /// GetBlokken + public List GetBlokken(int Gebruierk_ID) + { + return db.AgendaBlock.Where(G => G.Gebruiker_ID == Gebruierk_ID).ToList(); + } + + /// + /// Get 1 Agendablock on Gebruiker_ID + /// + /// + /// GetBlok + public AgendaBlok GetBlok(int Gebruiker_ID) + { + return db.AgendaBlock.Where(G => G.Gebruiker_ID == Gebruiker_ID).FirstOrDefault(); + } + + /// + /// Add Agendablock for a gebruiker + /// + /// + /// AddBlok + public AgendaBlok AddBlok(AgendaBlok agendablok) + { + db.AgendaBlock.Add(agendablok); + db.SaveChanges(); + + return agendablok; + } + + /// + /// Update agendablok of a gebruiker + /// + /// + /// UpdateBlok + public AgendaBlok UpdateBlok(AgendaBlok agendablok) + { + db.AgendaBlock.Update(agendablok); + db.SaveChanges(); + + return agendablok; + } + + /// + /// Delete AgendaBlok of a Gebruiker + /// + /// + /// + /// DeleteBlok + public AgendaBlok DeleteBlok(int Agendablok_ID, int Gebruiker_ID, AgendaBlok agendablok) + { + db.AgendaBlock.Remove(agendablok); //.Where(A => A.AgendaBlok_ID == Agendablok_ID && A.Gebruiker_ID == Gebruiker_ID); + db.SaveChanges(); + + return null; + } + } +} diff --git a/dotnet/AlfaPrentice/Repositorys/implementaties/BedrijfRepository.cs b/dotnet/AlfaPrentice/Repositorys/implementaties/BedrijfRepository.cs new file mode 100644 index 0000000..aa75627 --- /dev/null +++ b/dotnet/AlfaPrentice/Repositorys/implementaties/BedrijfRepository.cs @@ -0,0 +1,50 @@ +using AlfaPrentice.Data; +using AlfaPrentice.Models; +using AlfaPrentice.Repositorys.Interfaces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Repositorys.implementaties +{ + public class BedrijfRepository : IBedrijfRepository + { + AlfaPrenticeContext db; + public BedrijfRepository(AlfaPrenticeContext db) + { + this.db = db; + } + + //get list of bedrijfven + public List GetBedrijven() + { + return db.Bedrijf.ToList(); + } + + //get bedrijf by ID + public Bedrijf GetBedrijf(int Bedrijf_ID) + { + return db.Bedrijf.Where(B => B.Bedrijf_ID == Bedrijf_ID).FirstOrDefault(); + } + + //add geheel bedrijf + public Bedrijf AddBedrijf(Bedrijf bedrijf) + { + db.Bedrijf.Add(bedrijf); + db.SaveChanges(); + + return bedrijf; + } + + //update a complete bedrijf + public Bedrijf UpdateBedrijf(Bedrijf bedrijf) + { + db.Bedrijf.Update(bedrijf); + db.SaveChanges(); + + return bedrijf; + } + + } +} diff --git a/dotnet/AlfaPrentice/Repositorys/implementaties/SollicitatieRepository.cs b/dotnet/AlfaPrentice/Repositorys/implementaties/SollicitatieRepository.cs new file mode 100644 index 0000000..2712eb8 --- /dev/null +++ b/dotnet/AlfaPrentice/Repositorys/implementaties/SollicitatieRepository.cs @@ -0,0 +1,39 @@ +using AlfaPrentice.Data; +using AlfaPrentice.Models; +using AlfaPrentice.Repositorys.Interfaces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice.Repositorys.implementaties +{ + public class SollicitatieRepository : ISollicitatieRepository + { + AlfaPrenticeContext db; + public SollicitatieRepository(AlfaPrenticeContext db) + { + this.db = db; + } + //get list of sollicitaties + public List GetSollicitaties() + { + return db.Sollicitatie.ToList(); + } + + //get sollicitatie by Student_ID + public Sollicitatie GetSollicitatie(int Student_ID) + { + return db.Sollicitatie.Where(S => S.Student_ID == Student_ID).FirstOrDefault(); + } + + //Add complete sollicitatie + public Sollicitatie AddSollicitatie(Sollicitatie sollicitatie) + { + db.Sollicitatie.Add(sollicitatie); + db.SaveChanges(); + + return sollicitatie; + } + } +} diff --git a/dotnet/AlfaPrentice/Startup.cs b/dotnet/AlfaPrentice/Startup.cs new file mode 100644 index 0000000..d71493b --- /dev/null +++ b/dotnet/AlfaPrentice/Startup.cs @@ -0,0 +1,71 @@ +using AlfaPrentice.Data; +using AlfaPrentice.Repositorys.implementaties; +using AlfaPrentice.Repositorys.Interfaces; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using Microsoft.OpenApi.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace AlfaPrentice +{ + public class Startup + { + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + public IConfiguration Configuration { get; } + + + // This method gets called by the runtime. Use this method to add services to the container. + public void ConfigureServices(IServiceCollection services) + { + + services.Configure(Configuration); + services.AddDbContext(options => options.UseMySQL(Configuration.GetConnectionString("AlfaPrentice"))); + + //depencies for interface and repos + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + + services.AddControllers(); + services.AddSwaggerGen(c => + { + c.SwaggerDoc("v1", new OpenApiInfo { Title = "AlfaPrentice", Version = "v1" }); + }); + } + + // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + app.UseSwagger(); + app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "AlfaPrentice v1")); + } + + app.UseHttpsRedirection(); + + app.UseRouting(); + + app.UseAuthorization(); + + app.UseEndpoints(endpoints => + { + endpoints.MapControllers(); + }); + } + } +} diff --git a/dotnet/AlfaPrentice/WeatherForecast.cs b/dotnet/AlfaPrentice/WeatherForecast.cs new file mode 100644 index 0000000..2154d35 --- /dev/null +++ b/dotnet/AlfaPrentice/WeatherForecast.cs @@ -0,0 +1,15 @@ +using System; + +namespace AlfaPrentice +{ + public class WeatherForecast + { + public DateTime Date { get; set; } + + public int TemperatureC { get; set; } + + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + + public string Summary { get; set; } + } +} diff --git a/dotnet/AlfaPrentice/appsettings.Development.json b/dotnet/AlfaPrentice/appsettings.Development.json new file mode 100644 index 0000000..8983e0f --- /dev/null +++ b/dotnet/AlfaPrentice/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + } +} diff --git a/dotnet/AlfaPrentice/appsettings.json b/dotnet/AlfaPrentice/appsettings.json new file mode 100644 index 0000000..442a2d1 --- /dev/null +++ b/dotnet/AlfaPrentice/appsettings.json @@ -0,0 +1,17 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + }, + "ConnectionStrings": { + "AlfaPrentice": "Server=localhost;User Id=root; Database=AlfaPrentice" + }, + + "emailsmtp": "mail.incapabel.com", + "emailusername": "info@incapabel.com", + "emailpassword": "@Alfa2019", + "AllowedHosts": "*" +}