Created
June 4, 2023 06:52
-
-
Save huseyinafsin/a0f7961d57efc8745c1d2ce9ca77b08d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Route("api/[controller]")] | |
[ApiController] | |
public class BasketController : ControllerBase | |
{ | |
private readonly IBasketRepository _basketRepository; | |
public BasketController(IBasketRepository basketRepository) | |
{ | |
_basketRepository = basketRepository; | |
} | |
[HttpGet("GetBasket/{customerId}")] | |
public async Task<ActionResult> GetCustomerBasket(string customerId) | |
{ | |
var basket =await _basketRepository.GetCustomerBasketAsync(customerId); | |
if (basket == null) | |
{ | |
return BadRequest(); | |
} | |
return Ok(basket); | |
} | |
[HttpPost] | |
public async Task<ActionResult> UpdateCustomerBasket(string customerId, List<BasketItem> basketItems) | |
{ | |
var customeerBasket = await _basketRepository.GetCustomerBasketAsync(customerId); | |
if (customeerBasket == null) | |
{ | |
var basket = new Basket | |
{ | |
CustomerId = customerId, | |
Items = basketItems, | |
TotalAmount = basketItems.Sum(x => (x.Price * x.Quantity)) | |
}; | |
customeerBasket = await _basketRepository.UpdateBasketAsync(basket); | |
} | |
else | |
{ | |
customeerBasket.Items.AddRange(basketItems); | |
customeerBasket.TotalAmount += basketItems.Sum(x => (x.Price * x.Quantity)); | |
} | |
customeerBasket = await _basketRepository.UpdateBasketAsync(customeerBasket); | |
return Ok(customeerBasket); | |
} | |
[HttpDelete("deleteBasket/{basketId}")] | |
public async Task<ActionResult> DeleteBasket(string basketId) | |
{ | |
await _basketRepository.DeleteBasketAsync(basketId); | |
return Ok(); | |
} | |
[HttpDelete("removeItem")] | |
public async Task<ActionResult> RemoveItemFromBasket(string customerId, string itemId) | |
{ | |
await _basketRepository.RemoveItemFromBasket(customerId, itemId); | |
return Ok(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment