public async Task <Order> PlaceCurrentUserCartAsync() { var newOrder = PrepareNewOrder(); AddCartItemsToOrder(newOrder); CalculatePrices(newOrder); await _orderDataService.AddAsync(newOrder); await _currentUserService.SaveCustomAttributeAsync(UserAttributes.PaymentProccessingOrderId, newOrder.Id.ToString()); await _currentUserService.ClearCartAsync(); await _currentUserService.ClearCouponCodeUsagesAsync(); return(newOrder); }