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