| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- using System;
- using System.Collections.Generic;
- using JetBrains.Annotations;
- using Unity.Cloud.Collaborate.Models.Structures;
- namespace Unity.Cloud.Collaborate.Models
- {
- internal interface IHistoryModel : IModel
- {
- /// <summary>
- /// Event triggered when the history list has been updated.
- /// </summary>
- event Action HistoryListUpdated;
- /// <summary>
- /// Event triggered when the requested page of revisions is received.
- /// </summary>
- event Action<IReadOnlyList<IHistoryEntry>> HistoryListReceived;
- /// <summary>
- /// Event triggered when the requested revision is received.
- /// </summary>
- event Action<IHistoryEntry> SelectedRevisionReceived;
- /// <summary>
- /// Event triggered when the busy status changes.
- /// </summary>
- event Action<bool> BusyStatusUpdated;
- /// <summary>
- /// Event triggered when the requested entry count is received.
- /// </summary>
- event Action<int?> EntryCountUpdated;
- /// <summary>
- /// Whether or not the model is busy with a request.
- /// </summary>
- bool Busy { get; }
- /// <summary>
- /// Current page number.
- /// </summary>
- int PageNumber { get; set; }
- /// <summary>
- /// Currently selected revision id.
- /// </summary>
- [NotNull]
- string SelectedRevisionId { get; }
- /// <summary>
- /// Revision saved before domain reload.
- /// </summary>
- [NotNull]
- string SavedRevisionId { get; }
- /// <summary>
- /// True if a revision is currently selected.
- /// </summary>
- bool IsRevisionSelected { get; }
- /// <summary>
- /// Request the current page of given size. Result returns via the HistoryListReceived event.
- /// </summary>
- /// <param name="pageSize"></param>
- void RequestPageOfRevisions(int pageSize);
- /// <summary>
- /// Request the revision with the given id. Result returned via the SelectedRevisionReceived event.
- /// </summary>
- /// <param name="revisionId"></param>
- void RequestSingleRevision([NotNull] string revisionId);
- /// <summary>
- /// Request the count of entries. Result returned via the EntryCountUpdated event.
- /// </summary>
- void RequestEntryNumber();
- /// <summary>
- /// Request to update the state of the project to a new provided revision.
- /// </summary>
- /// <param name="revisionId">New revision id of the project to go to.</param>
- void RequestUpdateTo([NotNull] string revisionId);
- /// <summary>
- /// Request to take the state of the project back to the given (and current) revision.
- /// </summary>
- /// <param name="revisionId">Current revision id of the project to go back to.</param>
- void RequestRestoreTo([NotNull] string revisionId);
- /// <summary>
- /// Request to take the state of the project back to the given revision, but do not change the current revision or history.
- /// </summary>
- /// <param name="revisionId">Revision id to go back to.</param>
- void RequestGoBackTo([NotNull] string revisionId);
- /// <summary>
- /// Returns true if revert is supported.
- /// </summary>
- bool SupportsRevert { get; }
- /// <summary>
- /// Request to revert the specified files to the given revision.
- /// </summary>
- /// <param name="revisionId">Revision to revert the files back to.</param>
- /// <param name="files">Files to revert back.</param>
- void RequestRevert([NotNull] string revisionId, [NotNull] IReadOnlyList<string> files);
- }
- }
|