Exemple #1
0
        Task <bool> IRoommates.HasUserAsync(IUserProfile user)
        {
            if (null == user)
            {
                throw new ArgumentNullException(nameof(user));
            }

            var id = user.GetPrimaryKey();

            return(Task.FromResult(State.Users.Exists(roommate => SameUser(roommate, id))));
        }
Exemple #2
0
        async Task <bool> IRoommates.AddUserAsync(IUserProfile user)
        {
            if (null == user)
            {
                throw new ArgumentNullException(nameof(user));
            }

            var id = user.GetPrimaryKey();

            if (State.Users.Exists(roommate => SameUser(roommate, id)))
            {
                return(false);
            }

            State.Users.Add(user);

            await WriteStateAsync();

            return(true);
        }
Exemple #3
0
        async Task <bool> IRoommates.RemoveUserAsync(IUserProfile user)
        {
            if (null == user)
            {
                throw new ArgumentNullException(nameof(user));
            }

            var id    = user.GetPrimaryKey();
            var index = State.Users.FindIndex(roommate => SameUser(roommate, id));

            if (index < 0)
            {
                return(false);
            }

            State.Users.RemoveAt(index);

            await WriteStateAsync();

            return(true);
        }
Exemple #4
0
 private static bool SameUser(IUserProfile user, Guid id)
 {
     return(user.GetPrimaryKey() == id);
 }