using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using BankContracts.BindingModels; using BankContracts.BusinessLogicsContracts; using BankContracts.SearchModels; using BankContracts.ViewModels; using BankDatabaseImplement.Models; namespace BankRestApi.Controllers { [Route("api/[controller]/[action]")] [ApiController] public class TermController : ControllerBase { private readonly ILogger _logger; private readonly ITermLogic _term; public TermController(ILogger logger, ITermLogic term) { _logger = logger; _term = term; } [HttpGet] public TermViewModel GetTerm(int termId) { try { var elem = _term.ReadElement(new TermSearchModel { Id = termId }); return elem; } catch (Exception ex) { _logger.LogError(ex, "Ошибка получения периода по id={Id}", termId); throw; } } [HttpPost] public void CreateTerm(TermBindingModel model) { try { _term.Create(model); } catch (Exception ex) { _logger.LogError(ex, "Ошибка создания периода"); throw; } } [HttpPost] public bool UpdateTerm(TermBindingModel model) { try { return _term.Update(model); } catch (Exception ex) { _logger.LogError(ex, "Не удалось обновить периоды"); throw; } } [HttpPost] public bool DeleteTerm(TermBindingModel model) { try { return _term.Delete(model); } catch (Exception ex) { _logger.LogError(ex, "Ошибка удаления периода"); throw; } } } }