GetSyncStatusQuery.cs 552 B

123456789101112131415161718192021222324
  1. namespace RackPeek.Domain.Git.Queries;
  2. public interface IGetSyncStatusQuery
  3. {
  4. GitSyncStatus Execute();
  5. }
  6. public class GetSyncStatusQuery(IGitRepository repo) : IGetSyncStatusQuery
  7. {
  8. public GitSyncStatus Execute()
  9. {
  10. if (!repo.IsAvailable || !repo.HasRemote())
  11. return new GitSyncStatus(0, 0, false);
  12. try
  13. {
  14. return repo.FetchAndGetSyncStatus();
  15. }
  16. catch (Exception ex)
  17. {
  18. return new GitSyncStatus(0, 0, true, $"Fetch failed: {ex.Message}");
  19. }
  20. }
  21. }