OrderItemsController.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using AutoMapper;
  2. using DutchTreat.Data;
  3. using DutchTreat.Data.Entities;
  4. using DutchTreat.ViewModels;
  5. using Microsoft.AspNetCore.Authentication.JwtBearer;
  6. using Microsoft.AspNetCore.Authorization;
  7. using Microsoft.AspNetCore.Mvc;
  8. using Microsoft.Extensions.Logging;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. namespace DutchTreat.Controllers
  15. {
  16. [Route("api/orders/{orderid}/items")]
  17. [Authorize(AuthenticationSchemes=JwtBearerDefaults.AuthenticationScheme)]
  18. public class OrderItemsController : Controller
  19. {
  20. private readonly IDutchRepository _repository;
  21. private readonly ILogger<OrderItemsController> _logger;
  22. private readonly IMapper _mapper;
  23. public OrderItemsController(IDutchRepository repository, ILogger<OrderItemsController> logger, IMapper mapper)
  24. {
  25. _repository = repository;
  26. _logger = logger;
  27. _mapper = mapper;
  28. }
  29. [HttpGet]
  30. public IActionResult Get(int orderId)
  31. {
  32. var order = _repository.GetOrderById(User.Identity.Name, orderId);
  33. if (order != null) return Ok(_mapper.Map<IEnumerable<OrderItem>, IEnumerable<OrderItemViewModel>>(order.Items));
  34. return NotFound();
  35. }
  36. [HttpGet("{id}")]
  37. public IActionResult Get(int orderId, int id)
  38. {
  39. var order = _repository.GetOrderById(User.Identity.Name, orderId);
  40. if (order != null)
  41. {
  42. var item = order.Items.Where(i => i.Id == id).FirstOrDefault();
  43. if (item != null)
  44. return Ok(_mapper.Map<IEnumerable<OrderItem>, IEnumerable<OrderItemViewModel>>(order.Items));
  45. }
  46. return NotFound();
  47. }
  48. }
  49. }