protected override void Load()
        {
            var cancel = Close();

            if (cancel)
            {
                return;
            }
            var fileDialog = new OpenFileDialog {
                Filter = "XML Files (*.xml)| *.xml", Multiselect = false
            };
            var dial = fileDialog.ShowDialog(Application.Current.MainWindow);

            if (dial == true)
            {
                var fileInfo = new FileInfo(fileDialog.FileName);
                if (fileInfo.Exists)
                {
                    Platter = PlatterSerializer.Deserialize(fileInfo.FullName);
                    if (Platter != null)
                    {
                        IsCreated = true;
                        IsSaved   = true;
                    }
                }
            }
        }
 protected override bool Close()
 {
     //If already create and not saved
     if (IsCreated && !IsSaved)
     {
         var result = MessageBox.Show($"Save file {Platter.PathFile} ?", "Confirmation", MessageBoxButton.YesNoCancel);
         if (result == MessageBoxResult.Yes)
         {
             if (!Platter.AlreadySerialize)
             {
                 SaveAs();
             }
             if (new FileInfo(Platter.PathFile).Exists)
             {
                 PlatterSerializer.Serialize(Platter);
                 Reset();
             }
         }
         else if (result == MessageBoxResult.No)
         {
             Reset();
         }
         else
         {
             return(true);
         }
     }
     else if (IsCreated && IsSaved)
     {
         Reset();
     }
     return(false);
 }
        protected override void Save()
        {
            if (!Platter.AlreadySerialize)
            {
                SaveAs();
            }
            var directoryInfo = new FileInfo(Platter.PathFile).Directory;

            if (directoryInfo != null && directoryInfo.Exists)
            {
                PlatterSerializer.Serialize(Platter);
            }
        }