using Entities; using Microsoft.AspNetCore.Mvc; using ModeleToEntities; using StubbedContextLib; namespace API.Controllers { [ApiController] [Route("api/[controller]")] public class GroupController : ControllerBase { private readonly IService _groupService; private readonly ILogger _logger; public GroupController(IService groupService, ILogger logger) { _groupService = groupService; _logger = logger; } [HttpGet] public async Task>> GetGroups() { _logger.LogInformation("Getting groups "); var groups = await _groupService.Gets(); return Ok(groups); } [HttpGet("{id}")] public async Task> GetGroup(int id) { _logger.LogInformation("Getting a group with id {id}",id); var group = await _groupService.GetById(id); return Ok(group); } [HttpPut] public async Task> UpdateGroup([FromQuery]GroupEntity group) { _logger.LogInformation("Updating a group with id : {id}",group.Id); var updatedGroup = await _groupService.UpdateGroup(group); return Ok(updatedGroup); } [HttpPost] public async Task> AddGroup([FromQuery]GroupEntity group) { _logger.LogInformation("Adding a group with id : {id}",group.Id); group.Id = _groupService.Gets().Result.Count() + 1; var newGroup = await _groupService.AddGroup(group); return Ok(newGroup); } [HttpDelete("{id}")] public async Task> DeleteGroup(int id) { _logger.LogInformation("Deleting a group with id : {id}",id); var group = await _groupService.DeleteGroup(id); return Ok(group); } } }