using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.ComponentModel;
using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;

namespace PortfolioManager.ViewModels
{
  public abstract class ViewModelBase : ModelBase, IDisposable, IPersistentViewModel
  {
    protected ViewModelBase()
    {
    }
    public abstract SaveParameters GetSaveParameters();

    public abstract void SetSaveParameters(SaveParameters saveParameters);

    public abstract bool CanPersist();

    public virtual void Dispose()
    {
      this.OnDispose();
    }

    protected virtual void OnDispose()
    {
    }

#if DEBUG
    ~ViewModelBase()
    {
    }
#endif
  }
}
