using Microsoft.AspNetCore.Mvc; using ComputerHardwareStoreContracts.BindingModels; using ComputerHardwareStoreContracts.SearchModels; using ComputerHardwareStoreContracts.StorageContracts; namespace ComputerHardwareStoreREST.Controllers { [ApiController] [Route("[controller]")] public class StoreKeepersController : Controller { private readonly ILogger _logger; private readonly IStoreKeeperStorage _storage; public StoreKeepersController(ILogger logger, IStoreKeeperStorage storage) { _logger = logger; _storage = storage; } [HttpPost("get/filter")] public IActionResult GetByFilter([FromBody] StoreKeeperSearchModel model) { try { var result = _storage.GetFilteredList(model); return Ok(result); } catch (Exception ex) { return BadRequest(ex.Message); } } [HttpPost("get")] public IActionResult GetById([FromBody] StoreKeeperSearchModel model) { try { var result = _storage.GetElement(model); return Ok(result); } catch (Exception ex) { return BadRequest(ex.Message); } } [HttpPost("create")] public IActionResult Create([FromBody] StoreKeeperBindingModel model) { try { var result = _storage.Insert(model); return Ok(result); } catch (Exception ex) { return BadRequest(ex.Message); } } [HttpPut("update")] public IActionResult Update([FromBody] StoreKeeperBindingModel model) { try { var result = _storage.Update(model); return Ok(result); } catch (Exception ex) { return BadRequest(ex.Message); } } [HttpPost("delete")] public IActionResult Delete([FromBody] StoreKeeperBindingModel model) { try { var result = _storage.Delete(model); return Ok(result); } catch (Exception ex) { return BadRequest(ex.Message); } } } }