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