public async Task <bool> AddCardToCollectionAsync(string collectionName, Guid cardId, Guid userId)
        {
            FieldsAreFilled(userId, collectionName);

            if (cardId == Guid.Empty)
            {
                throw new AppException(nameof(userId) + " is required");
            }

            var desiredCollection = await repository.FindByNameAsync(collectionName, userId);

            if (desiredCollection.CardItems.Contains(cardId))
            {
                throw new AppException("Collection doesn't contain this card");
            }

            desiredCollection.CardItems.Add(cardId);

            try
            {
                await repository.UpdateAsync(desiredCollection);
            }
            catch
            {
                return(false);
            }

            return(true);
        }
Example #2
0
        public async Task <CardsCollection> FindCollectionByNameAsync(string collectionName, Guid userId)
        {
            FieldsAreFilled(userId, collectionName);

            return(await repository.FindByNameAsync(collectionName, userId));
        }