예제 #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();
        }
예제 #2
0
        public int SaveTwitterUser(TwitterUserDto twitterUser)
        {
            if (twitterUser == null)
            {
                return -1;
            }

            if (twitterUsers.All.Any(x => x.TwitterId == twitterUser.TwitterId))
            {
                return 1;
            }

            var user = new TwitterUser
            {
                TwitterId = twitterUser.TwitterId,
                Name = twitterUser.Name,
                ScreenName = twitterUser.ScreenName,
                Description = twitterUser.Description,
                ProfileImageUrl = twitterUser.ProfileImageUrl
            };

            twitterUsers.Add(user);

            return this.saver.SaveChanges();
        }
예제 #3
0
        public int SaveTweet(TweetDto tweetDto, TwitterUserDto twitterUser)
        {
            if (tweetDto == null)
            {
                return(-1);
            }

            if (tweets.All.Any(x => x.TwitterId.Equals(tweetDto.TwitterId)))
            {
                return(1);
            }

            var tweet = this.mappingProvider.MapTo <Tweet>(tweetDto);
            var user  = this.mappingProvider.MapTo <TwitterUser>(twitterUser);

            tweet.TwitterUser   = user;
            tweet.TwitterUserId = user.Id;
            tweet.RetweetCount  = 0;

            //var tweetToAdd = new Tweet
            //{
            //    TwitterId = tweet.TwitterId,
            //    Text = tweet.Text,
            //    CreatedAt = tweet.CreatedAt,
            //    TwitterUser = user,
            //    TwitterUserId = user.Id
            //};

            this.tweets.Add(tweet);

            return(this.saver.SaveChanges());
        }
예제 #4
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();
        }