Example #1
0
        public bool RemoveCard(IList <Card> cards, int userId)
        {
            if (cards == null || !cards.Any())
            {
                throw new ArgumentNullException("Invalid cards");
            }

            if (IsAnAdmin(userId))
            {
                var cardsToBeDeleted = _catalogRepository.GetCards(cards, this.Id);
                if (cardsToBeDeleted == null || !cardsToBeDeleted.Any())
                {
                    throw new ArgumentException(string.Format("Invalid cards provided"));
                }
                var deletionSuccess = _catalogRepository.DeleteCards(cardsToBeDeleted);
                if (deletionSuccess)
                {
                    cardsToBeDeleted.ToList().ForEach(d => _cardEventHandler.Raise(new CardUnlinkedEvent(Id, d.Id, d.Version)));
                    return(deletionSuccess);
                }
            }
            return(false);
        }