async Task IUserService.DeleteUser(DeleteUserCommand command) { Check.NotNull(command, name: "Command"); await validationService.Validate(command); var user = await userRepository.GetUserById(command.UserId); if (user == null) { return; } var currentPrincipal = await currentUserResolver.ResolveCurrentClaimsPrincipalAsync(); var operation = command.ForceDelete ? Operation.ForceDelete : Operation.Delete; await authorizationService.AuthorizeResource(currentPrincipal, operation, user); try { await userRepository.DeleteUser(user, command.ForceDelete); } catch (RelationshipException ex) { throw new DeleteUserException("There are time entries associated with this user, try force delete.", ex); } await userManager.RemoveUser(user.Id); }
async Task ITimeEntryService.DeleteTimeEntry(DeleteTimeEntryCommand command) { var currentPrincipal = await currentUserResolver.ResolveCurrentClaimsPrincipalAsync(); await authorizationService.AuthorizeResourceType(currentPrincipal, Operation.Delete, typeof(TimeEntry)); Check.NotNull(command, errorMessage: "Command can not be null."); await validationService.Validate(command); var existingTimeEntry = await timeEntryRepository.GetTimeEntryById(command.TimeEntryId); if (existingTimeEntry == null) { return; } await authorizationService.AuthorizeResource(currentPrincipal, Operation.Delete, existingTimeEntry); await timeEntryRepository.DeleteTimeEntry(existingTimeEntry); }