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)))); }
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); }
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); }
private static bool SameUser(IUserProfile user, Guid id) { return(user.GetPrimaryKey() == id); }