Uploading and downloading with hashes
[pithos-ms-client] / trunk / Pithos.Core / Agents / CloudAction.cs
index 05173c8..90f2455 100644 (file)
@@ -21,14 +21,17 @@ namespace Pithos.Core.Agents
         public CloudActionType Action { get; set; }
         public FileInfo LocalFile { get; set; }
         public ObjectInfo CloudFile { get; set; }
+        public FileState FileState { get; set; }
 
         public Lazy<string> LocalHash { get; private set; }
+        public Lazy<string> TopHash { get; set; }
 
         public string OldFileName { get; set; }
         public string OldPath { get; set; }
         public string NewFileName { get; set; }
         public string NewPath { get; set; }
 
+
         public CloudAction(CloudActionType action, string oldPath, string oldFileName, string newFileName, string newPath)
         {
             Action = action;
@@ -39,14 +42,24 @@ namespace Pithos.Core.Agents
             LocalHash = new Lazy<string>(() => Signature.CalculateMD5(NewFileName), LazyThreadSafetyMode.ExecutionAndPublication);
         }
 
-        public CloudAction(CloudActionType action, FileInfo localFile, ObjectInfo cloudFile)
+        public CloudAction(CloudActionType action, FileInfo localFile, ObjectInfo cloudFile,FileState state)
         {
             Action = action;
             LocalFile = localFile;
             CloudFile = cloudFile;
-            //Skip Hash calculation for folders
+            FileState = state;
             if (LocalFile != null)
-                LocalHash = new Lazy<string>(() => Signature.CalculateMD5(LocalFile.FullName), LazyThreadSafetyMode.ExecutionAndPublication);
+            {
+                LocalHash = new Lazy<string>(() => Signature.CalculateMD5(LocalFile),
+                                             LazyThreadSafetyMode.ExecutionAndPublication);
+            }
+        }
+
+        //Constructor for downloading files
+        public CloudAction(CloudActionType action, ObjectInfo cloudFile)
+        {
+            Action = action;
+            CloudFile = cloudFile;
         }
 
     }