113 lines
2.9 KiB
C#
Raw Normal View History

2024-03-30 14:49:59 +04:00
using HotelContracts.BindingModels;
using HotelContracts.BusinessLogicsContracts;
using HotelContracts.SearchModels;
using HotelContracts.ViewModels;
using Microsoft.AspNetCore.Mvc;
namespace HotelRestApi.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class LunchController : Controller
{
private readonly ILogger _logger;
private readonly ILunchLogic _lunch;
public LunchController(ILogger<ConferenceBookingController> logger, ILunchLogic lunch)
{
_logger = logger;
_lunch = lunch;
}
[HttpGet]
public List<LunchViewModel>? GetLunchList(int headwaiterId)
{
try
{
return _lunch.ReadList(new LunchSearchModel
{
HeadwaiterId = headwaiterId,
});
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения списка обедов");
throw;
}
}
[HttpGet]
public List<LunchViewModel>? GetLunches()
{
try
{
return _lunch.ReadList(null);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения списка обедов");
throw;
}
}
[HttpGet]
public LunchViewModel? GetLunchById(int lunchId)
{
try
{
return _lunch.ReadElement(new LunchSearchModel
{
Id = lunchId
});
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка получения обеда по id={Id}", lunchId);
throw;
}
}
[HttpPost]
public void CreateLunch(LunchBindingModel model)
{
try
{
_lunch.Create(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка создания обеда");
throw;
}
}
[HttpPost]
public void UpdateLunch(LunchBindingModel model)
{
try
{
_lunch.Update(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка обновления данных обеда");
throw;
}
}
[HttpPost]
public void DeleteLunch(LunchBindingModel model)
{
try
{
_lunch.Delete(model);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка удаления обеда");
throw;
}
}
}
}