using AsbCloudApp.Data;
using AsbCloudApp.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudWebApi.Controllers
{
[Route("api/driller")]
[ApiController]
[Authorize]
public class DrillerController : ControllerBase
{
private readonly IDrillerService drillerService;
public DrillerController(IDrillerService drillerService)
{
this.drillerService = drillerService;
}
///
///Добавить бурильщика
///
/// Объект, описывающий бурильщика
///
/// Идентификатор добавленого бурильщика
[HttpPost]
public async Task> InsertAsync([FromBody] DrillerDto value, CancellationToken token = default)
{
var result = await drillerService.InsertAsync(value, token).ConfigureAwait(false);
return Ok(result);
}
///
/// Получить весь список бурильщиков
///
///
/// Список бурильщиков
[HttpGet]
public async Task> GetAllAsync(CancellationToken token = default)
{
var result = await drillerService.GetAllAsync(token);
return Ok(result);
}
///
/// Получить бурильщика по идентификатору
///
/// Идентификатор
///
/// Объект, описывающий бурильщика
[HttpGet("{drillerId}")]
public async Task GetAsync(int drillerId, CancellationToken token = default)
{
var driller = await drillerService.GetAsync(drillerId, token)
.ConfigureAwait(false);
return Ok(driller);
}
///
/// Обновить данные о бурильщике
///
/// Идентификатор
/// Объект с измененными данными
///
/// Количество измененых записей
[HttpPut("{drillerId}")]
public async Task UpdateAsync(int drillerId, DrillerDto dto,
CancellationToken token = default)
{
var result = await drillerService.UpdateAsync(drillerId, dto, token)
.ConfigureAwait(false);
return Ok(result);
}
///
/// Удалить бурильщика
///
/// Идентификатор бурильщика
///
/// Количество удаленных записей
[HttpDelete("{drillerId}")]
public async Task> DeleteAsync(int drillerId, CancellationToken token = default)
{
var result = await drillerService.DeleteAsync(drillerId, token)
.ConfigureAwait(false);
return Ok(result);
}
}
}