diff --git a/addons/EGFramework/Module/OtherTools/EGWebDav.cs b/addons/EGFramework/Module/OtherTools/EGWebDav.cs index 717e44a..4222347 100644 --- a/addons/EGFramework/Module/OtherTools/EGWebDav.cs +++ b/addons/EGFramework/Module/OtherTools/EGWebDav.cs @@ -202,7 +202,7 @@ namespace EGFramework{ } } - public struct WebDavFileMsg{ + public struct WebDavFileMsg : IEGFileMsg{ public string FileName { set; get; } public bool IsCollection { set; get; } @@ -212,6 +212,17 @@ namespace EGFramework{ public long? ContentLength { set; get; } public string Uri { set; get; } public DateTime? LastUpdateTime { set; get; } + + public DateTime? LastModify { set; get; } + + public void Init(string fileName, bool isCollection, string uri, long? contentLength = null, DateTime? lastModify = null) + { + this.FileName = fileName; + this.IsCollection = isCollection; + this.Uri = uri; + this.ContentLength = contentLength; + this.LastModify = lastModify; + } } public static class EGWebDavExtension{ diff --git a/addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs b/addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs index 01e64a0..049f83c 100644 --- a/addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs +++ b/addons/EGFramework/Module/SaveTools/SaveToolsInterface.cs @@ -1,40 +1,46 @@ using System; using System.Collections.Generic; using System.Data.Common; +using System.IO; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; namespace EGFramework { - #region Sync_Interface + #region SaveInit + public interface IEGSave{ void InitSave(string path); } - public interface IEGSaveReadOnly{ void InitReadOnly(string data); void InitReadOnly(byte[] data); } + public interface IEGSaveAsync{ + Task InitSaveFileAsync(string path); + } + public interface IEGSaveReadOnlyAsync{ + Task InitReadOnlyAsync(string data); + Task InitReadOnlyAsync(byte[] data); + } + + #endregion + + #region DBConnection public interface IEGCanGetDBConnection{ DbConnection GetConnection(); } + #endregion + #region Object public interface IEGSaveObjectReadOnly{ TObject GetObject(string objectKey) where TObject : new(); IEnumerable GetKeys(); bool ContainsKey(string objectKey); } - public interface IEGSaveDataReadOnly{ - TData GetData(string dataKey,object id) where TData : new(); - IEnumerable GetAll(string dataKey) where TData : new(); - IEnumerable FindData(string dataKey,Expression> expression) where TData : new(); - IEnumerable GetKeys(); - bool ContainsKey(string dataKey); - bool ContainsData(string dataKey,object id); - } - + public interface IEGSaveObject : IEGSaveObjectReadOnly{ /// /// SetObject will add a object if it not exisits, replace the object if it already exists. @@ -47,7 +53,24 @@ namespace EGFramework void AddObject(string objectKey,TObject obj); void UpdateObject(string objectKey,TObject obj); } + public interface IEGSaveObjectReadOnlyAsync{ + Task GetObjectAsync(string objectKey) where TObject : new(); + } + public interface IEGSaveObjectAsync : IEGSaveObjectReadOnlyAsync{ + Task SetObjectAsync(string objectKey,TObject obj); + } + #endregion + #region Data + public interface IEGSaveDataReadOnly{ + TData GetData(string dataKey,object id) where TData : new(); + IEnumerable GetAll(string dataKey) where TData : new(); + IEnumerable FindData(string dataKey,Expression> expression) where TData : new(); + IEnumerable GetKeys(); + bool ContainsKey(string dataKey); + bool ContainsData(string dataKey,object id); + } + public interface IEGSaveData : IEGSaveDataReadOnly{ void SetData(string dataKey,TData data,object id); void AddData(string dataKey,TData data); @@ -55,29 +78,45 @@ namespace EGFramework void RemoveData(string dataKey,object id); void UpdateData(string dataKey,TData data,object id); } - #endregion - - #region Async_Interface - public interface IEGSaveAsync{ - Task InitSaveFileAsync(string path); - } - public interface IEGSaveReadOnlyAsync{ - Task InitReadOnlyAsync(string data); - Task InitReadOnlyAsync(byte[] data); - } - public interface IEGSaveObjectReadOnlyAsync{ - Task GetObjectAsync(string objectKey) where TObject : new(); - } + public interface IEGSaveDataReadOnlyAsync{ Task GetDataAsync(string dataKey,object id) where TData : new(); Task> GetAllAsync(string dataKey) where TData : new(); Task> FindDataAsync(string dataKey,Expression> expression) where TData : new(); } - public interface IEGSaveObjectAsync : IEGSaveObjectReadOnlyAsync{ - Task SetObjectAsync(string objectKey,TObject obj); - } + public interface IEGSaveDataAsync : IEGSaveDataReadOnlyAsync{ Task SetDataAsync(string dataKey,TData data,object id); } #endregion + + #region File + public interface IEGFileMsg{ + public string FileName { get; } + public bool IsCollection { get; } + /// + /// unit is kb + /// + public long? ContentLength { get; } + public string Uri { get; } + public DateTime? LastModify { get; } + public void Init(string fileName,bool isCollection,string uri,long? contentLength,DateTime? lastmodify); + } + public interface IEGSaveFileReadOnly{ + IEnumerable ListRemoteFilePath(string remotePath); + IEnumerable ListLocalFilePath(string localPath); + bool IsRemoteFileExist(string remotePath); + void DownloadFile(string remotePath,string localPath); + Stream DownloadFile(string remotePath); + void SyncFile(string remotePath,string localPath); + } + public interface IEGSaveFile:IEGSaveFileReadOnly{ + void UploadFile(FileStream localFileStream,string remotePath); + void UploadFile(string localPath,string remotePath); + void RemoveRemote(string remotePath); + void MakeDictionaryRemote(string remotePath); + void CopyRemote(string sourcePath,string copyPath); + void MoveRemote(string sourcePath,string movePath); + } + #endregion } \ No newline at end of file