Exemplo n.º 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();
        }
Exemplo n.º 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();
        }