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);
        }