Пример #1
0
        public bool DisableUser(UserDto userDto)
        {
            if (userDto == null)
            {
                throw new ArgumentNullException("userDto");
            }
            User user;

            if (!IsEmptyGuidString(userDto.Id))
            {
                user = _userRepository.GetByKey(new Guid(userDto.Id));
            }
            else if (!string.IsNullOrEmpty(userDto.UserName))
            {
                user = _userRepository.GetByExpression(u => u.UserName == userDto.UserName);
            }
            else if (!string.IsNullOrEmpty(userDto.Email))
            {
                user = _userRepository.GetByExpression(u => u.Email == userDto.Email);
            }
            else
            {
                throw new ArgumentNullException("userDto", "Either ID, UserName or Email should be specified.");
            }
            user.Disable();
            _userRepository.Update(user);
            RepositorytContext.Commit();
            return(user.IsDisabled);
        }
Пример #2
0
        public void DeleteUsers(List <UserDto> userDtos)
        {
            if (userDtos == null)
            {
                throw new ArgumentNullException("userDtos");
            }
            foreach (var userDto in userDtos)
            {
                User user = null;
                if (!IsEmptyGuidString(userDto.Id))
                {
                    user = _userRepository.GetByKey(new Guid(userDto.Id));
                }
                else if (!string.IsNullOrEmpty(userDto.UserName))
                {
                    user = _userRepository.GetByExpression(u => u.UserName == userDto.UserName);
                }
                else if (!string.IsNullOrEmpty(userDto.Email))
                {
                    user = _userRepository.GetByExpression(u => u.Email == userDto.Email);
                }
                else
                {
                    throw new ArgumentNullException("userDtos", "Either ID, UserName or Email should be specified.");
                }
                var userRole = _userRoleRepository.GetBySpecification(Specification <UserRole> .Eval(ur => ur.UserId == user.Id));
                if (userRole != null)
                {
                    _userRoleRepository.Remove(userRole);
                }
                _userRepository.Remove(user);
            }

            RepositorytContext.Commit();
        }
        public void AddProductToCart(Guid customerId, Guid productId, int quantity)
        {
            var user = _userRepository.GetByKey(customerId);

            var shoppingCart = _shoppingCartRepository.GetBySpecification(new ExpressionSpecification <ShoppingCart>(s => s.User.Id == user.Id));

            if (shoppingCart == null)
            {
                throw new DomainException("用户{0}不存在购物车.", customerId);
            }

            var product          = _productRepository.GetByKey(productId);
            var shoppingCartItem = _shoppingCartItemRepository.FindItem(shoppingCart, product);

            if (shoppingCartItem == null)
            {
                shoppingCartItem = new ShoppingCartItem()
                {
                    Product      = product,
                    ShoopingCart = shoppingCart,
                    Quantity     = quantity
                };

                _shoppingCartItemRepository.Add(shoppingCartItem);
            }
            else
            {
                shoppingCartItem.UpdateQuantity(shoppingCartItem.Quantity + quantity);
                _shoppingCartItemRepository.Update(shoppingCartItem);
            }

            RepositorytContext.Commit();
        }
        public void DeleteShoppingCartItem(Guid shoppingCartItemId)
        {
            var shoppingCartItem = _shoppingCartItemRepository.GetByKey(shoppingCartItemId);

            _shoppingCartItemRepository.Remove(shoppingCartItem);
            RepositorytContext.Commit();
        }
        public void UpdateShoppingCartItem(Guid shoppingCartItemId, int quantity)
        {
            var shoppingCartItem = _shoppingCartItemRepository.GetByKey(shoppingCartItemId);

            shoppingCartItem.UpdateQuantity(quantity);
            _shoppingCartItemRepository.Update(shoppingCartItem);
            RepositorytContext.Commit();
        }
 public void Dispatch(Guid orderId)
 {
     using (var transactionScope = new TransactionScope())
     {
         var order = _orderRepository.GetByKey(orderId);
         order.Dispatch();
         _orderRepository.Update(order);
         RepositorytContext.Commit();
         _eventBus.Commit();
         transactionScope.Complete();
     }
 }