Initial Commit

This commit is contained in:
Sebastian Cabrera 2021-08-02 05:44:37 -04:00
parent 53eb92e9af
commit 270ab7d11f
15341 changed files with 700234 additions and 0 deletions

View file

@ -0,0 +1,108 @@
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);
}
}