PullUseCase.cs 580 B

1234567891011121314151617181920
  1. using RackPeek.Domain;
  2. using RackPeek.Domain.Git;
  3. public class PullUseCase(IGitRepository repo) : IUseCase {
  4. public Task<string?> ExecuteAsync() {
  5. if (!repo.IsAvailable)
  6. return Task.FromResult<string?>("Git is not available.");
  7. if (!repo.HasRemote())
  8. return Task.FromResult<string?>("No remote configured.");
  9. try {
  10. repo.Pull();
  11. return Task.FromResult<string?>(null);
  12. }
  13. catch (Exception ex) {
  14. return Task.FromResult<string?>($"Pull failed: {ex.Message}");
  15. }
  16. }
  17. }