Browse Source

🚧 Models für Aufnahmeantrag und Rooms

develop
Tobi 7 years ago
parent
commit
4020b1464a
No known key found for this signature in database
GPG Key ID: 187C1244EA024329
  1. 134
      Backend/EVABackend/EVABackend/Controllers/EVAController.cs
  2. 42
      Backend/EVABackend/EVABackend/Models/Aufnahmeantrag.cs
  3. 13
      Backend/EVABackend/EVABackend/Models/CreateRooms.cs

134
Backend/EVABackend/EVABackend/Controllers/EVAController.cs

@ -1,5 +1,7 @@
using EVABackend.Areas.Identity.Data;
using EVABackend.Models;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
@ -27,6 +29,7 @@ namespace EVABackend.Controllers
[HttpGet]
[Route("login")]
[AllowAnonymous]
public ActionResult Login()
{
return Ok(new { status = "Nicht unterstützt" });
@ -34,22 +37,39 @@ namespace EVABackend.Controllers
[HttpGet]
[Route("create_dummy_data")]
[Authorize]
public async Task<ActionResult> CreateDummyData()
{
var user = new EVABackendUser
if (_userManager.FindByNameAsync("Test") == null)
{
UserName = "Test",
Email = "info@test.de"
};
if ((await _userManager.CreateAsync(user, "123Abc!&")).Succeeded)
return Ok();
var user = new EVABackendUser
{
UserName = "Test",
Email = "info@test.de"
};
await _userManager.CreateAsync(user, "123Abc!&");
}
var roleNames = new string[] { "Schueler", "Verwaltung", "Admin" };
return StatusCode(500);
foreach (var roleName in roleNames)
{
if (!(await _roleManager.RoleExistsAsync(roleName)))
{
await _roleManager.CreateAsync(new IdentityRole(roleName));
}
}
await _userManager.AddToRolesAsync((await _userManager.FindByNameAsync("Test")), roleNames);
return Ok();
}
[HttpPost]
[Route("login")]
[AllowAnonymous]
public async Task<ActionResult> Login([FromForm] string username, [FromForm] string password)
{
var result = await _signInManager.PasswordSignInAsync(username, password, false, false);
@ -61,6 +81,77 @@ namespace EVABackend.Controllers
return Unauthorized();
}
[HttpPost]
[Route("logout")]
[Authorize]
public async Task<ActionResult> Logout()
{
await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
return Ok();
}
[HttpPost]
[Route("aufnahmeantrag")]
[AllowAnonymous]
public async Task<ActionResult> Aufnahmeantrag(Aufnahmeantrag model)
{
var schueler = new Schueler
{
Name = model.Name,
Vorname = model.Vonname,
IstErmaessigt = model.IstErmaessigt,
Ort = model.Ort,
Bankname = model.Bankname,
BLZ = model.BLZ,
Geburtsdatum = model.Geburtsdatum,
Geburtsort = model.Geburtsort,
Telefon = model.Telefon,
EMail = model.EMail,
PLZ = model.PLZ,
KontoNr = model.KontoNr,
Strasse = model.StrasseHNR
};
await _context.Schueler.AddAsync(schueler);
await _context.SaveChangesAsync();
var instrumente = _context.Instrumente.Where(i => model.Instrumente.Contains(i.Id)).ToList();
var kurs = new Kurs
{
Bestaetigt = false,
Name = model.Name,
Kuendigungsfrist = 2,
UnterrichtsTyp = model.Typ,
Laufzeit = 6
};
await _context.Kurse.AddAsync(kurs);
await _context.SaveChangesAsync();
kurs.Instrumente = instrumente.Select(i => new KursInstrument { InstrumentId = i.Id, KursId = kurs.Id }).ToList();
await _context.KursSchueler.AddAsync(new KursSchueler { KursId = kurs.Id, SchuelerId = schueler.Id });
await _context.SaveChangesAsync();
var antrag = new Antrag
{
UnterrichtTyp = model.Typ,
Schueler = schueler,
KursId = kurs.Id
};
await _context.Antraege.AddAsync(antrag);
await _context.SaveChangesAsync();
antrag.Instrumente = instrumente.Select(i => new AntragInstrument { AntragId = antrag.Id, InstrumentId = i.Id }).ToList();
await _context.SaveChangesAsync();
return Ok();
}
[HttpGet]
[Route("instruments")]
[Authorize]
@ -70,5 +161,34 @@ namespace EVABackend.Controllers
return Ok(instruments.ToArray());
}
[HttpGet]
[Route("rooms")]
[Authorize(Roles = "Verwaltung")]
public ActionResult Rooms()
{
var rooms = _context.Raeume.ToList();
var model = rooms.Select(r => new
{
RaumID = r.Id,
RaumName= r.Name,
Instrumente = r.Instrumente.Select(i => new
{
InstrumentID = i.InstrumentId,
InstrumentName = i.Instrument.Name
})
});
return Ok(model.ToArray());
}
[HttpPut]
[Route("create_rooms")]
[Authorize(Roles = "Verwaltung")]
public async Task<ActionResult> CreateRooms(CreateRooms model)
{
}
}
}

42
Backend/EVABackend/EVABackend/Models/Aufnahmeantrag.cs

@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace EVABackend.Models
{
public class Aufnahmeantrag
{
[Required]
public string Name { get; set; }
[Required]
public string Vonname { get; set; }
public bool IstErmaessigt { get; set; }
public DateTime Geburtsdatum { get; set; }
[Required]
public string Geburtsort { get; set; }
[Range(1, 100000)]
public int PLZ { get; set; }
[Required]
public string Ort { get; set; }
[Required]
public string StrasseHNR { get; set; }
[Required]
public string Bankname { get; set; }
[Required]
public string BLZ { get; set; }
[Required]
public string KontoNr { get; set; }
[Required]
public UnterrichtTyp Typ { get; set; }
[Required]
public List<int> Instrumente { get; set; }
[Required]
public string Laufzeit { get; set; }
[Required]
public string KursId { get; set; }
[Required]
public string Telefon { get; set; }
[Required]
public string EMail { get; set; }
}
}

13
Backend/EVABackend/EVABackend/Models/CreateRooms.cs

@ -0,0 +1,13 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace EVABackend.Models
{
public class CreateRooms
{
[Required]
public string Name { get; set; }
[Required]
public List<string> InstrumentIDs { get; set; }
}
}
Loading…
Cancel
Save