83 lines
1.9 KiB
C#
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();
|
|
}
|
|
}
|