public async Task <IActionResult> Post([FromBody] OrderCreateModel model) { try { if (ModelState.IsValid) { var newOrder = _mapper.Map <OrderCreateModel, Order>(model); newOrder.UserId = CurrentUserId; _repository.AddOrder(newOrder); if (await _repository.SaveAllAsync()) { newOrder = _repository.GetOrderByUserId(CurrentUserId, newOrder.Id); await _trackOrderService.ProcessNewOder(newOrder); var orderVm = _mapper.Map <Order, OrderViewModel>(newOrder); return(Created($"/api/orders/{orderVm.OrderId}", orderVm)); } } else { return(BadRequest(ModelState)); } } catch (Exception ex) { _logger.LogError($"Failed to save a new order: {ex}"); } return(BadRequest("Failed to save new order")); }
public async Task <IActionResult> Post(int productId, [FromBody] ReviewCreateModel model) { try { if (ModelState.IsValid) { var review = _mapper.Map <ReviewCreateModel, Review>(model); review.ProductId = productId; //var currentUser = await _userManager.FindByNameAsync(User.Identity.Name); //review.User = currentUser; review.UserId = CurrentUserId; _repository.AddReview(review); if (await _repository.SaveAllAsync()) { var result = await _repository.GetReviewAsync(review.Id); await _trackReviewService.ProcessReview(result); var dto = _mapper.Map <Review, ReviewViewModel>(result); return(CreatedAtRoute("GetReview", new { productId = dto.ProductId, id = dto.Id }, dto)); } } else { return(BadRequest(ModelState)); } } catch (Exception ex) { _logger.LogError($"Failed to save a new review: {ex}"); } return(BadRequest("Failed to save new review")); }