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/admin/driller")]
[ApiController]
[Authorize]
public class AdminDrillerController : ControllerBase
{
private readonly IDrillerService drillerService;
public AdminDrillerController(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);
}
}
}