﻿namespace RMS.ViewModels
{
    using System.ComponentModel;
    using System.Runtime.CompilerServices;

    using RMS.ViewModels.Annotations;
    using RMS.ViewModels.Interfaces;
    public abstract class ViewModelBase : IReset, INotifyPropertyChanged
    {
        public abstract void Reset(object obj);

        public event PropertyChangedEventHandler PropertyChanged;

        [NotifyPropertyChangedInvocator]
        public void OnPropertyChanged([CallerMemberName]string propertyName = null)
        {
            this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}