1
0

94 lines
3.1 KiB
C#

using System;
using System.Collections.ObjectModel;
using System.Reactive;
using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.ReactiveUI;
using Flawless.Client.Models;
using Flawless.Client.Service;
using Flawless.Communication.Response;
using Flawless.Communication.Shared;
using ReactiveUI;
using ReactiveUI.SourceGenerators;
namespace Flawless.Client.ViewModels;
public partial class HomeViewModel : ViewModelBase, IRoutableViewModel
{
public string? UrlPathSegment { get; } = Guid.NewGuid().ToString();
public IScreen HostScreen { get; }
public ObservableCollection<RepositoryHomePageModel> Repositories { get; } = new(new[]
{
new RepositoryHomePageModel(
"cardidi", "test1", "Abc", false, true, ""),
new RepositoryHomePageModel(
"cardidi", "test2", "Abc", false, true, ""),
new RepositoryHomePageModel(
"cardidi", "test3", "Abc", false, true, ""),
new RepositoryHomePageModel(
"cardidi", "test4", "Abc", false, true, ""),
new RepositoryHomePageModel(
"cardidi", "test5", "Abc", false, true, ""),
new RepositoryHomePageModel(
"cardidi", "test6", "Abc", false, true, ""),
new RepositoryHomePageModel(
"cardidi", "test7", "Abc", false, true, ""),
new RepositoryHomePageModel(
"absyy", "test1", "Abc", false, true, ""),
new RepositoryHomePageModel(
"absyy", "test2", "Abc", false, true, ""),
new RepositoryHomePageModel(
"absyy", "test3", "Abc", false, true, ""),
new RepositoryHomePageModel(
"absyy", "test4", "Abc", false, true, ""),
new RepositoryHomePageModel(
"absyy", "test5", "Abc", false, true, ""),
new RepositoryHomePageModel(
"absyy", "test6", "Abc", false, true, ""),
new RepositoryHomePageModel(
"absyy", "test7", "Abc", false, true, ""),
new RepositoryHomePageModel(
"absyy", "test8", "Abc", false, true, ""),
new RepositoryHomePageModel(
"absyy", "test9", "Abc", false, true, ""),
new RepositoryHomePageModel(
"absyy", "test10", "Abc", false, true, ""),
new RepositoryHomePageModel(
"absyy", "test11", "Abc", false, true, ""),
new RepositoryHomePageModel(
"absyy", "test12", "Abc", false, true, ""),
});
[Reactive] private RepositoryHomePageModel? _selectedRepository;
[Reactive] private string _serverFriendlyName;
public HomeViewModel(IScreen hostScreen)
{
HostScreen = hostScreen;
Api.Current.ServerUrl.SubscribeOn(AvaloniaScheduler.Instance)
.Subscribe(v => ServerFriendlyName = v ?? "Unknown Server");
}
[ReactiveCommand]
private async Task RefreshRepositoriesAsync()
{
}
[ReactiveCommand]
private async Task CreateRepositoryAsync()
{
}
[ReactiveCommand]
private async Task OpenRepositoryAsync()
{
}
[ReactiveCommand]
private async Task DeleteRepositoryAsync()
{
}
}