CommitAllUseCase.cs 641 B

123456789101112131415161718192021
  1. namespace RackPeek.Domain.Git.UseCases;
  2. public class CommitAllUseCase(IGitRepository repo) : IUseCase {
  3. public Task<string?> ExecuteAsync(string message) {
  4. if (!repo.IsAvailable)
  5. return Task.FromResult<string?>("Git is not available.");
  6. try {
  7. repo.StageAll();
  8. if (repo.GetStatus() != GitRepoStatus.Dirty)
  9. return Task.FromResult<string?>(null);
  10. repo.Commit(message);
  11. return Task.FromResult<string?>(null);
  12. }
  13. catch (Exception ex) {
  14. return Task.FromResult<string?>($"Commit failed: {ex.Message}");
  15. }
  16. }
  17. }