Example #1
0
        public int RemoveTwitterUserFromFavourites(UserDTO userDto, TwitterUserDto twitterUserDto)
        {
            if (userDto.IsNull())
            {
                throw new NullUserException(nameof(userDto));
            }

            if (twitterUserDto.IsNull())
            {
                throw new NullTwitterUserException(nameof(twitterUserDto));
            }

            var user = this.mapper.MapTo<User>(userDto);
            var twitterUser = this.mapper.MapTo<TwitterUser>(twitterUserDto);

            if (!IsFavourite(user.Id, twitterUser.Id))
            {
                // TODO: throw adequate exception
                throw new ArgumentException();
                // return -1;
            }

            var userTwitterUserToRemove = this.userTwitterUsers
                .All
                .SingleOrDefault(x =>
                    x.UserId.Equals(user.Id)
                    && x.TwitterUserId.Equals(twitterUser.Id)
                );

            userTwitterUsers.Delete(userTwitterUserToRemove);

            return this.saver.SaveChanges();
        }
Example #2
0
        public int AddTwitterUserToFavourites(UserDTO userDto, TwitterUserDto twitterUserDto)
        {
            if (userDto.IsNull())
            {
                throw new NullUserException(nameof(userDto));
            }

            if (twitterUserDto.IsNull())
            {
                throw new NullTwitterUserException(nameof(twitterUserDto));
            }

            var user = this.mapper.MapTo<User>(userDto);
            var twitterUser = this.mapper.MapTo<TwitterUser>(twitterUserDto);

            UserTwitterUser userTwitterUser = null;

            if (this.IsActuallyFavourite(user.Id, twitterUser.Id))
            {
                if (!this.IsDeleted(user.Id, twitterUser.Id))
                {
                    // TODO: throw adequate exception
                    throw new ArgumentException();
                    // return -1;
                }

                userTwitterUser = this.userTwitterUsers
                    .AllAndDeleted
                    .SingleOrDefault(x =>
                        x.UserId.Equals(user.Id)
                        && x.TwitterUserId.Equals(twitterUser.Id)
                    );

                userTwitterUser.IsDeleted = false;

                userTwitterUsers.Update(userTwitterUser);
            }
            else
            {
                userTwitterUser = new UserTwitterUser
                {
                    User = user,
                    UserId = user.Id,
                    TwitterUser = twitterUser,
                    TwitterUserId = twitterUser.Id
                };

                userTwitterUsers.Add(userTwitterUser);
            }

            return this.saver.SaveChanges();
        }
Example #3
0
        public int AddTweetToFavourites(string tweetId, UserDTO userDto)
        {
            if (tweetId.IsNullOrWhitespace())
            {
                throw new InvalidTweetIdException(nameof(tweetId));
            }

            if (userDto.IsNull())
            {
                throw new NullUserException(nameof(userDto));
            }

            var tweet = GetSavedTweetById(tweetId);
            var user  = this.mappingProvider.MapTo <User>(userDto);

            UserTweet userTweet = null;

            if (this.IsActuallyFavourite(tweet.Id, user.Id))
            {
                if (!this.IsDeleted(tweet.Id, user.Id))
                {
                    throw new ArgumentException();
                }

                userTweet = this.userTweets
                            .AllAndDeleted
                            .SingleOrDefault(x =>
                                             x.TweetId.Equals(tweet.Id)
                                             &&
                                             x.UserId.Equals(user.Id)
                                             );

                userTweet.IsDeleted = false;

                this.userTweets.Update(userTweet);
            }
            else
            {
                userTweet = new UserTweet
                {
                    User    = user,
                    UserId  = user.Id,
                    Tweet   = tweet,
                    TweetId = tweet.TwitterId
                };

                userTweets.Add(userTweet);
            }

            return(this.saver.SaveChanges());
        }