public ActionResult ShowCart() { var cart = Session["GamesCart"] as ICollection <Game>; var games = mapper.Map <IEnumerable <Game>, IEnumerable <GameViewModel> >(cart); var model = CartViewModel.Create(games, games.Sum(x => x.Price)); return(View(model)); }
public async Task<IHttpActionResult> Get(long id) { var user = await _authRepository.FindUser(HttpContext.Current.User as ClaimsPrincipal); var entity = await _cartRepository.GetAsync(id); if (entity == null) { return NotFound(); } if (entity.UserId != user.Id) { return StatusCode(HttpStatusCode.Forbidden); } var viewModel = new CartViewModel(); viewModel.Create(entity); return Ok(viewModel); }
public async Task<IHttpActionResult> Delete(long id) { var user = await _authRepository.FindUser(HttpContext.Current.User as ClaimsPrincipal); var isAdmin = await _authRepository.IsAdmin(HttpContext.Current.User as ClaimsPrincipal); if (user == null) { return Unauthorized(); } var entity = await _cartRepository.GetAsync(id); if (entity == null) { return NotFound(); } if (user.Id != entity.UserId && !isAdmin) { return StatusCode(HttpStatusCode.Forbidden); } _cartRepository.Remove(entity); await _unitOfWork.CompleteAsync(); var viewModel = new CartViewModel(); viewModel.Create(entity); return Ok(viewModel); }
public async Task<IHttpActionResult> Post(CartItem entity) { var user = await _authRepository.FindUser(HttpContext.Current.User as ClaimsPrincipal); var cart = new CartItem { ProductId = entity.ProductId, Product = await _unitOfWork.Products.GetAsync(entity.ProductId), UserId = user.Id, User = user }; if (cart.Product == null) { return StatusCode(HttpStatusCode.BadRequest); } if (!ModelState.IsValid) { return BadRequest(ModelState); } _cartRepository.Add(cart); await _unitOfWork.CompleteAsync(); var viewModel = new CartViewModel(); viewModel.Create(cart); return CreatedAtRoute("DefaultApi", new { id = entity.Id }, viewModel); }