From 30291cc6ef469e266afaf9657a3645b6341c961f Mon Sep 17 00:00:00 2001 From: Niggl1999 Date: Thu, 4 Jun 2020 17:54:26 +0200 Subject: [PATCH] Added basic controller for users --- ScrumTaskboard/Controllers/UsersController.cs | 114 ++++++++++++++++++ ScrumTaskboard/TaskContext.cs | 7 ++ 2 files changed, 121 insertions(+) create mode 100644 ScrumTaskboard/Controllers/UsersController.cs diff --git a/ScrumTaskboard/Controllers/UsersController.cs b/ScrumTaskboard/Controllers/UsersController.cs new file mode 100644 index 0000000..d8895f1 --- /dev/null +++ b/ScrumTaskboard/Controllers/UsersController.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; + +namespace ScrumTaskboard.Controllers +{ + [Route("[controller]")] + [ApiController] + public class UsersController : ControllerBase + { + private readonly TaskContext _context; + + public UsersController(TaskContext context) + { + _context = context; + } + + // GET: api/sprint + [HttpGet] + public async Task>> GetUser() + { + return await _context.Users.ToListAsync(); + } + + // GET: api/sprint/5 + [HttpGet("{id}")] + public async Task> GetUser(int id) + { + var User = await _context.Users.FindAsync(id); + + if (User == null) + { + return NotFound(); + } + + return User; + } + + // PUT: api/sprint/5 + [HttpPut("{id}")] + public async Task PutUser(int id, ScrumUser sprint) + { + // Die ID des Users darf nicht geändert werden + if (id != sprint.id) + { + return BadRequest(); + } + + // Speichere den geänderten User im Context + _context.Entry(sprint).State = EntityState.Modified; + + try + { + // Übernehme die Änderungen in die Datenbank + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + // Wenn der User nicht existiert, gib Statuscode 404 zurück + if (!UserExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return NoContent(); + } + + // POST: api/User + [HttpPost] + public async Task> PostUser(ScrumUser sprint) + { + _context.Users.Add(sprint); + await _context.SaveChangesAsync(); + + // Der neue User wurde erstellt und kann über die GetUser Methode abgerufen werden. + return CreatedAtAction("GetUser", new { id = sprint.id }, sprint); + } + + // DELETE: api/User/5 + [HttpDelete("{id}")] + public async Task> DeleteUser(int id) + { + var scrumUser = await _context.Users.FindAsync(id); + if (scrumUser == null) + { + return NotFound(); + } + + // Entferne den User aus dem Context + _context.Users.Remove(scrumUser); + // Speichere die Änderungen in der Datenbank + await _context.SaveChangesAsync(); + + return scrumUser; + } + + /// + /// Prüft, ob ein User mit der angegebenen ID bereits existiert. + /// + private bool UserExists(int id) + { + return _context.Users.Any(e => e.id == id); + } + } +} \ No newline at end of file diff --git a/ScrumTaskboard/TaskContext.cs b/ScrumTaskboard/TaskContext.cs index f01fea3..12762b2 100644 --- a/ScrumTaskboard/TaskContext.cs +++ b/ScrumTaskboard/TaskContext.cs @@ -11,6 +11,7 @@ namespace ScrumTaskboard public DbSet Sprints { get; set; } public DbSet Status { get; set; } public DbSet Projects { get; set; } + public DbSet Users { get; set; } public TaskContext() { } @@ -79,4 +80,10 @@ namespace ScrumTaskboard public string title { get; set; } public bool isprivate { get; set; } } + + public class ScrumUser + { + public int id { get; set; } + public string name { get; set; } + } }