1
0

83 lines
1.9 KiB
C#

using System;
using System.Collections.ObjectModel;
using Flawless.Client.Remote;
using ReactiveUI.SourceGenerators;
namespace Flawless.Client.Models;
public partial class RepositoryModel : ReactiveModel
{
public static string GetStandaloneName(string name, string ownerName)
{
return $"{ownerName}/{name}";
}
[Reactive] private string _standaloneName;
[Reactive] private string _ownerName;
[Reactive] private string _name;
[Reactive] private bool _archived;
[Reactive] private string _description;
[Reactive] private bool _ownByCurrentUser;
[Reactive] private bool _isDownloaded;
public ObservableCollection<Member> Members { get; } = new();
public ObservableCollection<Commit> Commits { get; } = new();
public ObservableCollection<Depot> Depots { get; } = new();
public ObservableCollection<Lock> Locks { get; } = new();
public enum RepositoryRole : byte
{
Guest = 0,
Reporter = 1,
Developer = 2,
Owner = 3,
}
public partial class Member : ReactiveModel
{
[Reactive] private string _username;
[Reactive] private RepositoryRole _role;
[Reactive] private bool _canEdit;
}
public partial class Commit : ReactiveModel
{
[Reactive] private Guid _commitId;
[Reactive] private string _author;
[Reactive] private DateTime _committedOn;
[Reactive] private string _message;
[Reactive] private Guid _depotId;
}
public partial class Lock : ReactiveModel
{
[Reactive] private string _path;
[Reactive] private string _ownerName;
}
public partial class Depot : ReactiveModel
{
[Reactive] private Guid _depotId;
[Reactive] private long _length;
public ObservableCollection<Guid> Dependencies { get; } = new();
}
}