using Common.Library; using GreadyPoang.EntityLayer; using System.Collections.ObjectModel; namespace GreadyPoang.ViewModelLayer; public class ParticipantViewModel : ViewModelBase { #region Constructors public ParticipantViewModel() : base() { } public ParticipantViewModel(IRepository repo) : base() { Repository = repo; } #endregion #region Private Variables private Participant? _ParticipantObject = new(); private ObservableCollection _ParticipantList = new(); private readonly IRepository? Repository; #endregion #region public Properties public Participant? ParticipantObject { get { return _ParticipantObject; } set { _ParticipantObject = value; RaisePropertyChanged(nameof(ParticipantObject)); } } public ObservableCollection ParticipantList { get { return _ParticipantList; } set { _ParticipantList = value; RaisePropertyChanged(nameof(ParticipantList)); } } #endregion #region Get Method public ObservableCollection Get() { if (Repository != null) { ParticipantList = new ObservableCollection(Repository.Get()); } return new(); } #endregion #region Get(id) Method public Participant? Get(int id) { try { ParticipantObject = Repository.Get(id); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine($"Error in Get method: {ex.Message}"); } return ParticipantObject; } public virtual bool Save() { if (Repository == null || ParticipantObject == null) { return false; } var tmp = Repository.Save(ParticipantObject); if (tmp) { ParticipantObject = new Participant(); this.Get(); } return tmp; } #endregion }