ChangeEntry.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System;
  2. namespace Unity.Cloud.Collaborate.Models.Structures
  3. {
  4. internal struct ChangeEntry : IChangeEntry
  5. {
  6. public ChangeEntry(string path = default, string originalPath = default, ChangeEntryStatus status = default, bool staged = default, bool unmerged = default, object tag = default)
  7. {
  8. Path = path;
  9. OriginalPath = originalPath;
  10. Status = status;
  11. Staged = staged;
  12. Unmerged = unmerged;
  13. Tag = tag;
  14. }
  15. public string Path { get; }
  16. public string OriginalPath { get; }
  17. public ChangeEntryStatus Status { get; }
  18. public bool Staged { get; }
  19. public bool Unmerged { get; }
  20. public object Tag { get; }
  21. /// <inheritdoc />
  22. public string StatusToString()
  23. {
  24. switch (Status)
  25. {
  26. case ChangeEntryStatus.Added:
  27. case ChangeEntryStatus.Untracked:
  28. return "added";
  29. case ChangeEntryStatus.Modified:
  30. case ChangeEntryStatus.TypeChange:
  31. return "edited";
  32. case ChangeEntryStatus.Deleted:
  33. return "deleted";
  34. case ChangeEntryStatus.Renamed:
  35. case ChangeEntryStatus.Copied:
  36. return "moved";
  37. case ChangeEntryStatus.Unmerged:
  38. return "conflicted";
  39. case ChangeEntryStatus.None:
  40. break;
  41. case ChangeEntryStatus.Ignored:
  42. break;
  43. case ChangeEntryStatus.Unknown:
  44. break;
  45. case ChangeEntryStatus.Broken:
  46. break;
  47. default:
  48. throw new ArgumentOutOfRangeException();
  49. }
  50. // TODO: find a way to handle/display the unexpected/broken status types.
  51. return null;
  52. }
  53. }
  54. }