using System.ComponentModel.DataAnnotations; using System.Threading.Tasks; namespace SourceGit.ViewModels { public class EditRepositoryNode : Popup { public RepositoryNode Node { get => _node; set => SetProperty(ref _node, value); } public string Id { get => _id; set => SetProperty(ref _id, value); } [Required(ErrorMessage = "Name is required!")] public string Name { get => _name; set => SetProperty(ref _name, value, true); } public int Bookmark { get => _bookmark; set => SetProperty(ref _bookmark, value); } public bool IsRepository { get => _isRepository; set => SetProperty(ref _isRepository, value); } public EditRepositoryNode(RepositoryNode node) { _node = node; _id = node.Id; _name = node.Name; _isRepository = node.IsRepository; _bookmark = node.Bookmark; View = new Views.EditRepositoryNode() { DataContext = this }; } public override Task Sure() { bool needSort = _node.Name != _name; _node.Name = _name; _node.Bookmark = _bookmark; if (needSort) Preference.SortByRenamedNode(_node); return null; } private RepositoryNode _node = null; private string _id = string.Empty; private string _name = string.Empty; private bool _isRepository = false; private int _bookmark = 0; } }