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.
133 lines
3.3 KiB
133 lines
3.3 KiB
using System;
|
|
using Model;
|
|
using System.ComponentModel;
|
|
using System.Runtime.CompilerServices;
|
|
using static System.Net.Mime.MediaTypeNames;
|
|
using System.Collections.ObjectModel;
|
|
|
|
namespace ViewModel
|
|
{
|
|
public class EditChampionVm : INotifyPropertyChanged
|
|
{
|
|
public ChampionVm Model { get; set; }
|
|
public EditChampionVm(ChampionVm vm)
|
|
{
|
|
IsNew = vm is null;
|
|
Model = IsNew ? null : vm;
|
|
_bio = IsNew ? string.Empty : Model.Bio;
|
|
icon = IsNew ? string.Empty : Model.Icon;
|
|
_name = IsNew ? string.Empty : Model.Name;
|
|
image = IsNew ? string.Empty : Model.Image.Base64;
|
|
_classe = IsNew ? ChampionClass.Unknown : Model.Class;
|
|
ListClasses = Enum.GetValues<ChampionClass>().Where(c => c != ChampionClass.Unknown).ToArray();
|
|
}
|
|
|
|
public bool IsNew { get; private set; }
|
|
|
|
public IEnumerable<ChampionClass> ListClasses { get; }
|
|
|
|
private string _name;
|
|
public string Name
|
|
{
|
|
get => _name;
|
|
set
|
|
{
|
|
if (_name == value) return;
|
|
_name = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
private string icon;
|
|
|
|
public string Icon
|
|
{
|
|
get => icon;
|
|
set
|
|
{
|
|
if (icon == value) return;
|
|
icon = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
private string _bio;
|
|
public string Bio
|
|
{
|
|
get => _bio;
|
|
set
|
|
{
|
|
if (_bio == value) return;
|
|
_bio = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private string image;
|
|
public string Image
|
|
{
|
|
get => image;
|
|
set
|
|
{
|
|
if (image == value) return;
|
|
image = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
private ChampionClass _classe;
|
|
public ChampionClass Class
|
|
{
|
|
get => _classe;
|
|
set
|
|
{
|
|
if (_classe == null) return;
|
|
_classe = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
private int index;
|
|
public int Index
|
|
{
|
|
get => index;
|
|
set
|
|
{
|
|
if (index == value) return;
|
|
index = value;
|
|
OnPropertyChanged();
|
|
}
|
|
}
|
|
|
|
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
|
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
|
|
|
public ReadOnlyDictionary<string, int> Characteristics
|
|
{
|
|
get => Model.Characteristics;
|
|
}
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
|
|
public void SaveChampion()
|
|
{
|
|
if (!IsNew)
|
|
{
|
|
Model.Bio = Bio;
|
|
Model.Icon = Icon;
|
|
Model.Class = Class;
|
|
Model.Image.Base64 = Image;
|
|
|
|
else
|
|
{
|
|
|
|
Model = new ChampionVm(new Champion(Name, ChampionClass.Unknown, Icon, "", Bio));
|
|
var data = "";
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|