--- /dev/null
+//-----------------------------------------------------------------------
+// <copyright file="IBackupInfo.cs" company="Takayoshi Matsuyama">
+// Copyright (c) Takayoshi Matsuyama. All rights reserved.
+// </copyright>
+//-----------------------------------------------------------------------
+
+// This file is part of Simple Backup.
+//
+// Simple Backup is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Simple Backup is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Simple Backup. If not, see <http://www.gnu.org/licenses/>.
+
+namespace SimpleBackup.Core.Models
+{
+ using System;
+ using System.ComponentModel;
+ using System.Xml.Linq;
+
+ /// <summary>
+ /// A interface of single backup information.
+ /// </summary>
+ public interface IBackupInfo : INotifyPropertyChanged
+ {
+ /// <summary>
+ /// Occurs when a property which has to be saved in setting file is changed.
+ /// </summary>
+ event EventHandler<EventArgs> SettingFilePropertyChanged;
+
+ /// <summary>
+ /// Gets or sets the identifier.
+ /// </summary>
+ Guid Id { get; set; }
+
+ /// <summary>
+ /// Gets or sets the label.
+ /// </summary>
+ string Label { get; set; }
+
+ /// <summary>
+ /// Gets or sets the type of the backup source.
+ /// </summary>
+ BackupSourceType BackupSourceType { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether the backup is enabled.
+ /// </summary>
+ bool IsEnabled { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether the backup is zip archive.
+ /// </summary>
+ bool IsZipArchive { get; set; }
+
+ /// <summary>
+ /// Gets or sets the source path.
+ /// </summary>
+ string SourcePath { get; set; }
+
+ /// <summary>
+ /// Gets or sets the destination folder path.
+ /// </summary>
+ string DestinationFolderPath { get; set; }
+
+ /// <summary>
+ /// Gets or sets the state of the backup.
+ /// </summary>
+ BackupState BackupState { get; set; }
+
+ /// <summary>
+ /// Gets or sets the name of the latest successful backup target.
+ /// </summary>
+ string LatestSuccessfulBackupTargetName { get; set; }
+
+ /// <summary>
+ /// Saves this instance to a XElement.
+ /// </summary>
+ /// <returns>The generated XElement.</returns>
+ XElement ToXml();
+
+ /// <summary>
+ /// Gets the binary representation of this instance.
+ /// </summary>
+ /// <returns>The binary representation of this instance.</returns>
+ byte[] ToBinary();
+
+ /// <summary>
+ /// Gets the formatted text representation of this instance.
+ /// </summary>
+ /// <returns>The text representation of this instance.</returns>
+ string ToFormattedText();
+ }
+}