Esempio n. 1
0
        public static long CopyFile(IFileStorageProviderDataProvider dataProvider, Guid oldPhysicalFileID, Guid newPhysicalFileID, string extensionName)
        {
            long result = 0;
            IFileStorageProvider oldProvider = FileStorageProviderFactory.CreateFileStorageProvider(dataProvider, oldPhysicalFileID, extensionName);
            IFileStorageProvider newProvider = FileStorageProviderFactory.CreateFileStorageProvider(dataProvider, CurrentConfigSetting, newPhysicalFileID, extensionName);

            if (oldProvider != null && newProvider != null)
            {
                try
                {
                    byte[] buffer = GetCacheBuffer(DefaultBufferSize);

                    int readLen = oldProvider.Read(buffer, 0, DefaultBufferSize);
                    while (readLen > 0)
                    {
                        newProvider.Write(buffer, 0, readLen);
                        readLen = oldProvider.Read(buffer, 0, DefaultBufferSize);
                    }
                    result = newProvider.Length;
                }
                finally
                {
                    oldProvider.Close();
                    newProvider.Close();
                }
            }
            return(result);
        }
Esempio n. 2
0
        public static long WriteFile(IFileStorageProviderDataProvider dataProvider, Guid physicalFileID, string extensionName, long position, byte[] writeData)
        {
            long result = 0;
            IFileStorageProvider provider = FileStorageProviderFactory.CreateFileStorageProvider(dataProvider, physicalFileID, extensionName);

            if (provider != null)
            {
                try
                {
                    int length = 0;
                    if (writeData != null)
                    {
                        length = writeData.Length;
                    }
                    if (length > 0)
                    {
                        provider.Seek(position, System.IO.SeekOrigin.Begin);
                        provider.Write(writeData, 0, length);
                        result = provider.Length;
                    }
                }
                finally
                {
                    provider.Close();
                }
            }
            return(result);
        }
Esempio n. 3
0
        public static byte[] ReadFile(IFileStorageProviderDataProvider dataProvider, Guid physicalFileID, string extensionName, long position, int readCount)
        {
            LogHelper.Log.ErrorFormat("FileStorageManager.ReadFile(IFileStorageProviderDataProvider dataProvider='{0}', Guid physicalFileID='{1}', string extensionName='{2}', long position='{3}', int readCount='{4}')", dataProvider, physicalFileID, extensionName, position, readCount);

            byte[] result = null;
            IFileStorageProvider provider = FileStorageProviderFactory.CreateFileStorageProvider(dataProvider, physicalFileID, extensionName);

            if (provider != null)
            {
                try
                {
                    if (readCount > 0)
                    {
                        provider.Seek(position, System.IO.SeekOrigin.Begin);
                        byte[] buffer  = GetCacheBuffer(readCount);
                        int    readLen = provider.Read(buffer, 0, readCount);
                        if (readLen > 0)
                        {
                            result = new byte[readLen];
                            Buffer.BlockCopy(buffer, 0, result, 0, readLen);
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.Log.Error(ex.Message, ex);
                }
                finally
                {
                    provider.Close();
                }
            }
            LogHelper.Log.ErrorFormat("FileStorageManager.ReadFile Result Bytes Length='{0}'", result.Length);
            return(result);
        }
Esempio n. 4
0
        public static ConfigSettingData GetConfigSetting(IFileStorageProviderDataProvider dataProvider, Guid physicalFileID)
        {
            ConfigSettingData result = _settingsCacheByID[physicalFileID];

            if (result != null)
            {
                return(result.Clone());
            }
            lock (_settingsCacheByID)
            {
                result = _settingsCacheByID[physicalFileID];
            }
            if (result != null)
            {
                return(result.Clone());
            }
            if (dataProvider == null)
            {
                dataProvider = DataProvider;
            }
            StoreModeData storeData = dataProvider.GetStoreModeByFileID(physicalFileID);

            if (storeData != null)
            {
                if (!_settingsCache.TryGetValue(storeData.StoreParams, out result))
                {
                    lock (_settingsCache)
                    {
                        if (!_settingsCache.TryGetValue(storeData.StoreParams, out result))
                        {
                            result = ObjectFactory.XmlDeserializeObject(typeof(ConfigSettingData), storeData.StoreParams) as ConfigSettingData;
                            _settingsCache[storeData.StoreParams] = result;
                        }
                    }
                }
                if (result != null)
                {
                    lock (_settingsCacheByID)
                    {
                        _settingsCacheByID.Add(physicalFileID, result);
                    }
                    return(result.Clone());
                }
            }
            else
            {
                result = CurrentConfigSetting.Clone();
            }
            return(result);
        }
Esempio n. 5
0
        public static void CreateNewFile(IFileStorageProviderDataProvider dataProvider, Guid physicalFileID, string extensionName)
        {
            IFileStorageProvider provider = FileStorageProviderFactory.CreateFileStorageProvider(dataProvider, CurrentConfigSetting, physicalFileID, extensionName);

            if (provider != null)
            {
                try
                {
                    provider.SetLength(0);
                }
                finally
                {
                    provider.Close();
                }
            }
        }
Esempio n. 6
0
        public static void SetFileLength(IFileStorageProviderDataProvider dataProvider, Guid physicalFileID, string extensionName, long length)
        {
            IFileStorageProvider provider = FileStorageProviderFactory.CreateFileStorageProvider(dataProvider, physicalFileID, extensionName);

            if (provider != null)
            {
                try
                {
                    provider.SetLength(length);
                }
                finally
                {
                    provider.Close();
                }
            }
        }
Esempio n. 7
0
        public static void Initialize(IFileStorageProviderDataProvider dataProvider)
        {
            if (_currentStoreModeID == Guid.Empty || _lastDate != DateTime.UtcNow.Date)
            {
                lock (_inializeLock)
                {
                    if (_currentStoreModeID == Guid.Empty || _lastDate != DateTime.UtcNow.Date)
                    {
                        _lastDate = DateTime.UtcNow.Date;
                        Refresh();
                        ConfigSettingData configData = CurrentConfigSetting;
                        if (configData != null)
                        {
                            if (dataProvider == null)
                            {
                                dataProvider = DataProvider;
                            }
                            StoreModeData oldData = dataProvider.GetStoreModeByID(Guid.Empty);

                            StoreModeData data = new StoreModeData();
                            data.StoreParams = ObjectFactory.XmlSerializerObject(configData);
                            if (oldData != null && oldData.StoreParams == data.StoreParams)
                            {
                                _currentStoreModeID = oldData.ID;
                                return;
                            }
                            Guid id = CombineGuid.NewComboGuid();
                            data.ID = id;
                            dataProvider.SaveStoreMode(data);
                            if (!_settingsCache.ContainsKey(data.StoreParams))
                            {
                                lock (_settingsCache)
                                {
                                    if (!_settingsCache.ContainsKey(data.StoreParams))
                                    {
                                        _settingsCache[data.StoreParams] = configData;
                                    }
                                }
                            }
                            _currentStoreModeID = id;
                        }
                    }
                }
            }
        }
Esempio n. 8
0
        public static IFileStorageProvider CreateFileStorageProvider(IFileStorageProviderDataProvider dataProvider, ConfigSettingData configData, Guid physicalFileID, string extendsionName)
        {
            IFileStorageProvider provider = null;

            if (configData == null)
            {
                configData = FileStorageManager.GetConfigSetting(dataProvider, physicalFileID);
            }
            if (configData != null && configData.FileStorage != null)
            {
                provider = ObjectFactory.CreateObject(configData.FileStorage.Provider) as IFileStorageProvider;
                if (provider != null)
                {
                    provider.Initialize(configData, physicalFileID, extendsionName);
                }
            }
            return(provider);
        }
Esempio n. 9
0
 public static Guid GetCurrentStoreModeID(IFileStorageProviderDataProvider dataProvider)
 {
     Initialize(dataProvider);
     return(_currentStoreModeID);
 }
Esempio n. 10
0
        public static IFileStorageProviderDataProvider CreateFileStorageProvider()
        {
            IFileStorageProviderDataProvider result = FMPDataProviderFactory.CreateDataProvider(FileStorageProviderName) as IFileStorageProviderDataProvider;

            return(result);
        }
Esempio n. 11
0
 public static IFileStorageProvider CreateFileStorageProvider(IFileStorageProviderDataProvider dataProvider, Guid physicalFileID, string extendsionName)
 {
     return(CreateFileStorageProvider(dataProvider, null, physicalFileID, extendsionName));
 }