PullUseCase.cs 570 B

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