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(); }
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(); }
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()); }