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, IMethodSharingService sharingService) : base() { _Repository = repo; _sharingService = sharingService; } #endregion #region Private Variables private Participant? _ParticipantObject = new(); private ObservableCollection _ParticipantList = new(); private readonly IRepository? _Repository; private readonly IMethodSharingService _sharingService; #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() { ParticipantList = _sharingService.Get(); return ParticipantList; } #endregion #region Get(id) Method public Participant? Get(int id) { try { ParticipantObject = _Repository?.Get(id).GetAwaiter().GetResult(); } 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 tmpTask = _Repository.Save(ParticipantObject); int tmp = tmpTask.GetAwaiter().GetResult(); if (tmp != -1) { ParticipantObject = new Participant(); this.Get(); } return tmp != -1; } #endregion }