using CaseAccountingBusinessLogic.BusinessLogics; using CaseAccountingContracts.BindingModels; using CaseAccountingContracts.BusinessLogicContracts; using CaseAccountingContracts.SearchModels; using CaseAccountingContracts.ViewModels; using Microsoft.AspNetCore.Mvc; namespace CaseAccountingRestApi.Controllers { [Route("api/[controller]/[action]")] [ApiController] public class SpecializationController : Controller { private readonly ISpecializationLogic specializationLogic; public SpecializationController(ISpecializationLogic logic) { specializationLogic = logic; } [HttpGet] public SpecializationViewModel? Get(int id) { try { return specializationLogic.ReadElement(new SpecializationSearchModel { Id = id }); } catch (Exception) { throw; } } [HttpGet] public List? GetAllByUser(int userId) { try { return specializationLogic.ReadList(new SpecializationSearchModel { UserId = userId }) ; } catch (Exception) { throw; } } [HttpGet] public List? GetAll() { try { return specializationLogic.ReadList(null); } catch (Exception) { throw; } } [HttpPost] public void Create(SpecializationBindingModel model) { try { specializationLogic.Create(model); } catch (Exception) { throw; } } [HttpPost] public void Update(SpecializationBindingModel model) { try { specializationLogic.Update(model); } catch (Exception) { throw; } } [HttpPost] public void Delete(SpecializationBindingModel model) { try { specializationLogic.Delete(new() { Id = model.Id }); } catch (Exception) { throw; } } } }