public object LoadFromFile(string filePath) { if (filePath == null) { throw new InvalidOperationException("Cannot load from a null file path."); } if (!File.Exists(filePath)) { throw new InvalidOperationException("File does not exist."); } IFileReader fileReader = FileReaderFactory.Instance.CreateBinaryFileReader(); if (fileReader == null) { return(null); } IObjectContentWriter contentWriter = ObjectContentWriterFactory.Instance.CreateSequenceCacheContentWriter(filePath); if (contentWriter == null) { return(null); } ISequenceCache sequenceCache = SequenceService.Instance.CreateNewCache(filePath); if (sequenceCache == null) { return(null); } object content = fileReader.ReadFile(sequenceCache.CacheFilePath); if (content == null) { return(null); } var cacheContainer = new CacheContainer(); cacheContainer.SequenceCache = sequenceCache; contentWriter.WriteContentToObject(content, cacheContainer); return(cacheContainer.SequenceCache); }
public void WriteContentToObject(byte[] content, CacheContainer cacheContainer) { using(Stream stream = new MemoryStream(content)) { try { BinaryFormatter reader = new BinaryFormatter(); Object obj = reader.Deserialize(stream); cacheContainer.SequenceCache = obj as ISequenceCache; } catch (Exception e) { Logging.ErrorException("Error deserializing cache instance", e); } } }
public object LoadFromFile(string filePath) { if (filePath == null) throw new InvalidOperationException("Cannot load from a null file path."); if (!File.Exists(filePath)) throw new InvalidOperationException("File does not exist."); IFileReader fileReader = FileReaderFactory.Instance.CreateBinaryFileReader(); if (fileReader == null) return null; IObjectContentWriter contentWriter = ObjectContentWriterFactory.Instance.CreateSequenceCacheContentWriter(filePath); if (contentWriter == null) return null; ISequenceCache sequenceCache = SequenceService.Instance.CreateNewCache(filePath); if (sequenceCache == null) return null; object content = fileReader.ReadFile(sequenceCache.CacheFilePath); if (content == null) return null; var cacheContainer = new CacheContainer(); cacheContainer.SequenceCache = sequenceCache; contentWriter.WriteContentToObject(content, cacheContainer); return cacheContainer.SequenceCache; }