public FileData GetFile(string path, ref BuildInitializeFileDetail result) { var cacheDataController = InitializeFile(path, ref result); if (cacheDataController == null) { return(null); } return(cacheDataController.Data as FileData); }
public CacheDataController InitializeFile(string path, ref BuildInitializeFileDetail result) { var _result = new BuildInitializeFileDetail(); var start = DateTime.Now; CacheDataController cacheDataController; var lockWait = DateTime.Now; lock (Controller) { _result.LockWaitDuration = (DateTime.Now - lockWait); var startGetData = DateTime.Now; cacheDataController = Controller.GetData(path, typeof(FileData)).FirstOrDefault() ?? CacheFactory.CreateCacheData(Controller, typeof(FileData)); _result.GetDataDuration = DateTime.Now - startGetData; } if (cacheDataController == null) { return(null); } #region Initialize var start2 = DateTime.Now; var internalFile = cacheDataController.InternalData as FileData; // If the Data is not cached then create a FileData for first time use // Otherwise use the Cached version - Sara if (internalFile == null || internalFile.Path == null) { internalFile = new FileData { Path = path } } ; cacheDataController.Initialize(internalFile); PrepareFileEvents(cacheDataController); _result.InitializeDuration = DateTime.Now - start2; #endregion _result.InitializeFileDuration = DateTime.Now - start; result = _result; return(cacheDataController); }
/// <summary> /// Returns a reference to a FileData in the Cache. /// If the file does not exists in the Cache, then one will be added. /// </summary> /// <param name="path">Path of the file that is being loaded</param> /// <returns></returns> public FileData GetFile(string path) { var result = new BuildInitializeFileDetail(); return(GetFile(path, ref result)); }
/// <summary> /// Initializes a FileData in the Cache /// Does not Load the file /// </summary> /// <param name="path"></param> public CacheDataController InitializeFile(string path) { var result = new BuildInitializeFileDetail(); return(InitializeFile(path, ref result)); }