diff --git a/cat_cafe/Controllers/CustomersController.cs b/cat_cafe/Controllers/CustomersController.cs index 398c9dd..bc62718 100644 --- a/cat_cafe/Controllers/CustomersController.cs +++ b/cat_cafe/Controllers/CustomersController.cs @@ -7,6 +7,8 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using cat_cafe.Entities; using cat_cafe.Repositories; +using cat_cafe.Dto; +using AutoMapper; namespace cat_cafe.Controllers { @@ -15,22 +17,25 @@ namespace cat_cafe.Controllers public class CustomersController : ControllerBase { private readonly CustomerContext _context; + private readonly IMapper _mapper; - public CustomersController(CustomerContext context) + public CustomersController(CustomerContext context,IMapper mapper) { _context = context; + _mapper = mapper; } // GET: api/Customers [HttpGet] - public async Task>> GetCustomers() + public async Task>> GetCustomers() { - return await _context.Customers.ToListAsync(); + var customers = await _context.Customers.ToListAsync(); + return Ok(_mapper.Map>(customers)); } // GET: api/Customers/5 [HttpGet("{id}")] - public async Task> GetCustomer(long id) + public async Task> GetCustomer(long id) { var customer = await _context.Customers.FindAsync(id); @@ -39,19 +44,21 @@ namespace cat_cafe.Controllers return NotFound(); } - return customer; + return _mapper.Map(customer); } // PUT: api/Customers/5 // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 [HttpPut("{id}")] - public async Task PutCustomer(long id, Customer customer) + public async Task PutCustomer(long id, CustomerDto customerDto) { - if (id != customer.Id) + if (id != customerDto.Id) { return BadRequest(); } + Customer customer = _mapper.Map(customerDto); + _context.Entry(customer).State = EntityState.Modified; try @@ -76,12 +83,13 @@ namespace cat_cafe.Controllers // POST: api/Customers // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 [HttpPost] - public async Task> PostCustomer(Customer customer) + public async Task> PostCustomer(CustomerDto customerDto) { + Customer customer = _mapper.Map(customerDto); _context.Customers.Add(customer); await _context.SaveChangesAsync(); - return CreatedAtAction("GetCustomer", new { id = customer.Id }, customer); + return CreatedAtAction("GetCustomer", new { id = customer.Id }, _mapper.Map( customer)); } // DELETE: api/Customers/5