From 6b103b33a23329fbfe190965a2ba5c16c67f4bc6 Mon Sep 17 00:00:00 2001
From: chylex <info@chylex.com>
Date: Tue, 14 Apr 2015 00:03:52 +0200
Subject: [PATCH] Serialization of history entries

---
 .../Backup/History/HistoryEntry.cs            | 30 +++++++++++++++----
 1 file changed, 25 insertions(+), 5 deletions(-)

diff --git a/BackupEssentials/Backup/History/HistoryEntry.cs b/BackupEssentials/Backup/History/HistoryEntry.cs
index 721d2e8..d15407c 100644
--- a/BackupEssentials/Backup/History/HistoryEntry.cs
+++ b/BackupEssentials/Backup/History/HistoryEntry.cs
@@ -1,9 +1,29 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
+using BackupEssentials.Utils;
+using System;
 
 namespace BackupEssentials.Backup.History{
-    class HistoryEntry{
+    class HistoryEntry : StringDictionarySerializer.IObjectToDictionary{
+        public string LocationName = "";
+        public DateTime BackupTime = DateTime.MinValue;
+        public int EntriesAdded = 0, EntriesUpdated = 0, EntriesRemoved = 0;
+        public string Filename = "";
+
+        void StringDictionarySerializer.IObjectToDictionary.ToDictionary(SafeDictionary<string,string> dict){
+            dict["Name"] = LocationName;
+            dict["Time"] = Convert.ToBase64String(BitConverter.GetBytes(BackupTime.ToBinary()));
+            dict["EnA"] = EntriesAdded.ToString();
+            dict["EnU"] = EntriesUpdated.ToString();
+            dict["EnR"] = EntriesRemoved.ToString();
+            dict["File"] = Filename;
+        }
+
+        void StringDictionarySerializer.IObjectToDictionary.FromDictionary(SafeDictionary<string,string> dict){
+            LocationName = dict["Name"] ?? "";
+            BackupTime = DateTime.FromBinary(BitConverter.ToInt64(Convert.FromBase64String(dict["Time"] ?? ""),0));
+            int.TryParse(dict["EnA"] ?? "0",out EntriesAdded);
+            int.TryParse(dict["EnU"] ?? "0",out EntriesUpdated);
+            int.TryParse(dict["EnR"] ?? "0",out EntriesRemoved);
+            Filename = dict["File"] ?? "";
+        }
     }
 }