public Task Complete(TestTasksStateDTO state) { var user = UpdateStateForCurrentUser(state); user.StartTime = user.StartTime ?? DateTimeOffset.Now; user.Duration = DateTimeOffset.Now - user.StartTime.Value; return(Clients.Groups(AdminGroup).SendAsync(nameof(Complete), user)); }
private SessionUserDTO UpdateStateForCurrentUser(TestTasksStateDTO state) { if (!(Context.User.GetUserId() is string userId)) { throw new UnauthorizedAccessException(); } if (!users.TryGetValue(userId, out var user)) { throw new InvalidOperationException("Attempt to update not connected user"); } user.TasksState = state; users.TryUpdate(userId, user, user); return(user); }
public Task UpdateState(TestTasksStateDTO state) { var user = UpdateStateForCurrentUser(state); return(Clients.Groups(AdminGroup).SendAsync(nameof(UpdateState), user)); }