You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.6 KiB
65 lines
1.6 KiB
using System;
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using CommunityToolkit.Mvvm.Input;
|
|
using Model;
|
|
using ViewModels;
|
|
|
|
namespace LolApp.ViewModels
|
|
{
|
|
[ObservableObject]
|
|
public partial class AddOrEditSkinPageVM
|
|
{
|
|
SkinsMgrVM SkinsMgrVM { get; }
|
|
|
|
private SkinVM oldSkin;
|
|
|
|
[ObservableProperty]
|
|
bool isNew = true;
|
|
|
|
[ObservableProperty]
|
|
EditableSkinVM skin;
|
|
|
|
public AddOrEditSkinPageVM(SkinsMgrVM skinsMgrVM, SkinVM oldSkin)
|
|
{
|
|
SkinsMgrVM = skinsMgrVM;
|
|
|
|
this.oldSkin = oldSkin;
|
|
IsNew = false;
|
|
this.skin = new EditableSkinVM(oldSkin);
|
|
}
|
|
|
|
public AddOrEditSkinPageVM(SkinsMgrVM skinsMgrVM, ChampionVM champion)
|
|
{
|
|
SkinsMgrVM = skinsMgrVM;
|
|
skin = new EditableSkinVM(champion);
|
|
}
|
|
|
|
[RelayCommand]
|
|
public async void PickIcon() => Skin.IconBase64 = await PickIconsAndImagesUtils.PickPhoto(42);
|
|
|
|
[RelayCommand]
|
|
public async void PickLargeImage() => Skin.LargeImageBase64 = await PickIconsAndImagesUtils.PickPhoto(1000);
|
|
|
|
[RelayCommand]
|
|
async Task Cancel()
|
|
=> await App.Current.MainPage.Navigation.PopAsync();
|
|
|
|
[RelayCommand]
|
|
async Task AddSkin()
|
|
{
|
|
SkinVM skinVM = Skin.ToSkinVM();
|
|
await SkinsMgrVM.AddSkin(skinVM);
|
|
await App.Current.MainPage.Navigation.PopAsync();
|
|
}
|
|
|
|
[RelayCommand]
|
|
async Task EditSkin()
|
|
{
|
|
SkinVM newSkin = Skin.ToSkinVM();
|
|
await SkinsMgrVM.EditSkin(oldSkin, newSkin);
|
|
await App.Current.MainPage.Navigation.PopAsync();
|
|
}
|
|
}
|
|
}
|
|
|