public async Task <ServiceResponseDto> SubscribeToCollectionAsync(int userId, int collectionId) { ServiceResponseDto serviceResponseDto = new ServiceResponseDto(); if (await _collectionSubscriberRepository.ExistsAsync(collSubscriber => collSubscriber.CollectionId.Equals(collectionId) && collSubscriber.UserId.Equals(userId))) { serviceResponseDto.Message = "User is already subscribed to collection."; return(serviceResponseDto); } CollectionSubscriber collectionSubscriber = new CollectionSubscriber { CollectionId = collectionId, UserId = userId }; if (await _collectionSubscriberRepository.CreateAsync(collectionSubscriber)) { serviceResponseDto.Success = true; serviceResponseDto.Message = "Successfully subscribed to collection."; } else { serviceResponseDto.Message = "Failed to subscribe to collection."; } return(serviceResponseDto); }
public async Task <ServiceResponseDto> UnSubscribeFromCollectionAsync(int userId, int collectionId) { ServiceResponseDto serviceResponseDto = new ServiceResponseDto(); if (!await _collectionSubscriberRepository.ExistsAsync(collSubscriber => collSubscriber.CollectionId.Equals(collectionId) && collSubscriber.UserId.Equals(userId))) { serviceResponseDto.Message = "User is not subscribed to collection."; return(serviceResponseDto); } CollectionSubscriber collectionSubscriber = await _collectionSubscriberRepository .FindSingleByExpressionAsync(collectSub => collectSub.CollectionId.Equals(collectionId) && collectSub.UserId.Equals(userId)); if (await _collectionSubscriberRepository.DeleteAsync(collectionSubscriber)) { serviceResponseDto.Success = true; serviceResponseDto.Message = "Successfully unsubscribed from collection."; } else { serviceResponseDto.Message = "Failed to unsubscribe from collection."; } return(serviceResponseDto); }
public async Task <ServiceResponseDto> DeAuthorizeSubscriberFromCollectionAsync(int userId, int collectionId) { ServiceResponseDto serviceResponseDto = new ServiceResponseDto(); CollectionSubscriber actualCollectionSubscriber = await _collectionSubscriberRepository .FindSingleByExpressionAsync(collectionSubscriber => collectionSubscriber.CollectionId.Equals(collectionId) && collectionSubscriber.UserId.Equals(userId)); actualCollectionSubscriber.IsAuthorized = false; if (await _collectionSubscriberRepository.UpdateAsync(actualCollectionSubscriber)) { serviceResponseDto.Success = true; serviceResponseDto.Message = "Successfully de-authorized user from collection."; } else { serviceResponseDto.Message = "Failed to de-authorize user from collection."; } return(serviceResponseDto); }