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

            if (IsAnAdmin(userId))
            {
                if (CardAlreadyExist(cards))
                {
                    throw new InvalidOperationException("Duplicate cards are not allowed to be added");
                }

                foreach (var card in cards)
                {
                    card.LinkToCatalog(Id);
                }
                var addedCards = _catalogRepository.AddCards(cards);
                addedCards.ToList().ForEach(d => _cardEventHandler.Raise(new CardLinkedEvent(Id, d.Id, d.Version)));
                return(cards);
            }
            return(null);
        }