mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-12 11:56:30 +00:00
Workshop - Added release management
This commit is contained in:
1 parent
7030c7af2a
commit
cac44d748d
18 files changed
+578
-174
No files matched your search
@@ -1,13 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reactive;
|
||||
using System.Reactive.Disposables;
|
||||
using System.Threading.Tasks;
|
||||
using Artemis.UI.Shared;
|
||||
using Artemis.UI.Shared.Routing;
|
||||
using Artemis.WebClient.Workshop;
|
||||
using Artemis.WebClient.Workshop.Models;
|
||||
using PropertyChanged.SourceGenerator;
|
||||
using ReactiveUI;
|
||||
|
||||
@@ -24,7 +22,6 @@ public partial class EntryReleasesViewModel : ActivatableViewModelBase
|
||||
|
||||
Entry = entry;
|
||||
Releases = Entry.Releases.OrderByDescending(r => r.CreatedAt).Take(5).Select(r => getEntryReleaseItemViewModel(r)).ToList();
|
||||
NavigateToRelease = ReactiveCommand.CreateFromTask<IRelease>(ExecuteNavigateToRelease);
|
||||
|
||||
this.WhenActivated(d =>
|
||||
{
|
||||
@@ -35,30 +32,11 @@ public partial class EntryReleasesViewModel : ActivatableViewModelBase
|
||||
|
||||
this.WhenAnyValue(vm => vm.SelectedRelease)
|
||||
.WhereNotNull()
|
||||
.Subscribe(s => ExecuteNavigateToRelease(s.Release))
|
||||
.Subscribe(s => _router.Navigate($"/releases/{s.Release.Id}"))
|
||||
.DisposeWith(d);
|
||||
});
|
||||
}
|
||||
|
||||
public IEntryDetails Entry { get; }
|
||||
public List<EntryReleaseItemViewModel> Releases { get; }
|
||||
public ReactiveCommand<IRelease, Unit> NavigateToRelease { get; }
|
||||
|
||||
private async Task ExecuteNavigateToRelease(IRelease release)
|
||||
{
|
||||
switch (Entry.EntryType)
|
||||
{
|
||||
case EntryType.Profile:
|
||||
await _router.Navigate($"workshop/entries/profiles/details/{Entry.Id}/releases/{release.Id}");
|
||||
break;
|
||||
case EntryType.Layout:
|
||||
await _router.Navigate($"workshop/entries/layouts/details/{Entry.Id}/releases/{release.Id}");
|
||||
break;
|
||||
case EntryType.Plugin:
|
||||
await _router.Navigate($"workshop/entries/plugins/details/{Entry.Id}/releases/{release.Id}");
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException(nameof(Entry.EntryType));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user