Files

74 lines
2.3 KiB
C#
Raw Permalink Normal View History

using Microsoft.AspNetCore.Mvc;
using WD7UVN_HFT_2023241.Logic;
using System.Linq;
2023-12-13 22:04:06 +01:00
using System;
using WD7UVN_HFT_2023241.Models;
2024-04-24 11:14:55 +02:00
using Microsoft.AspNetCore.SignalR;
using WD7UVN_HFT_2023241.Endpoint.Services;
namespace WD7UVN_HFT_2023241.Endpoint
{
[ApiController]
[Route("api/MaintainerTeam")]
public class MaintainerTeamController : ControllerBase
{
public ILogicServices LogicServices { get; set; }
2024-04-24 11:14:55 +02:00
IHubContext<SignalRHub> hub;
2024-04-24 11:14:55 +02:00
public MaintainerTeamController(ILogicServices LogicServices, IHubContext<SignalRHub> hub)
{
this.LogicServices = LogicServices;
2024-04-24 11:14:55 +02:00
this.hub = hub;
}
[HttpGet()]
2023-12-13 22:04:06 +01:00
public IQueryable<MaintainerTeam>? ReadAllMaintainerTeams()
{
2023-12-13 22:04:06 +01:00
try
{
return LogicServices.CRUDOperations.ReadAllMaintainerTeams();
}
catch (NullReferenceException)
{
return null;
}
}
[HttpGet("{id}")]
2023-12-13 22:04:06 +01:00
public MaintainerTeam? ReadMaintainerTeam(int id)
{
2023-12-13 22:04:06 +01:00
try
{
return LogicServices.CRUDOperations.ReadMaintainerTeam(id);
}
catch (NullReferenceException)
{
return null;
}
}
2023-12-13 22:04:06 +01:00
[HttpPut()]
public void PutMaintainerTeam([FromBody] MaintainerTeam e)
{
LogicServices.CRUDOperations.CreateMaintainerTeam(e);
2024-04-24 11:14:55 +02:00
hub.Clients.All.SendAsync("MaintainerTeamCreated", e);
}
2023-12-13 22:04:06 +01:00
[HttpPost()]
public void UpdateMaintainerTeam([FromBody] MaintainerTeam e)
{
LogicServices.CRUDOperations.UpdateMaintainerTeam(e);
2024-04-24 11:14:55 +02:00
hub.Clients.All.SendAsync("MaintainerTeamUpdated", e);
}
//HttpClient does not support sending data in the body of a DELETE request. Instead, we can send the data in the URL like with a GET request.
[HttpDelete("{id}")]
public void DeleteMaintainerTeam(int id)
{
2024-04-24 11:14:55 +02:00
MaintainerTeam maintainerTeam = LogicServices.CRUDOperations.ReadMaintainerTeam(id);
LogicServices.CRUDOperations.DeleteMaintainerTeam(id);
2024-04-24 11:14:55 +02:00
hub.Clients.All.SendAsync("MaintainerTeamDeleted", maintainerTeam);
}
}
}