public static void ClearCache(this ProcedureContext procedureContext) { #region Argument exceptions if (procedureContext == null) { throw new ArgumentNullException(nameof(procedureContext)); } if (procedureContext.ClearCacheMode == ClearCacheMode.Default) { throw new ArgumentException("Invalid ClearCacheMode[ClearCacheMode.Default]"); } #endregion if (procedureContext.IsCancellationRequested) { return; } if (procedureContext.ClearCacheMode != ClearCacheMode.Nothing) { EventsNotifier.Instance.Notify(ProcedureEvents.ProcedureAnalyzeStepClearCache); } if (procedureContext.ClearCacheMode == ClearCacheMode.CurrentCube || procedureContext.ClearCacheMode == ClearCacheMode.CurrentCubeAndFileSystem || procedureContext.ClearCacheMode == ClearCacheMode.CurrentDatabase || procedureContext.ClearCacheMode == ClearCacheMode.CurrentDatabaseAndFileSystem || procedureContext.ClearCacheMode == ClearCacheMode.AllDatabases || procedureContext.ClearCacheMode == ClearCacheMode.AllDatabasesAndFileSystem) { XmlaHelper.ClearCache(procedureContext); } if (procedureContext.ClearCacheMode == ClearCacheMode.FileSystemOnly || procedureContext.ClearCacheMode == ClearCacheMode.CurrentCubeAndFileSystem || procedureContext.ClearCacheMode == ClearCacheMode.CurrentDatabaseAndFileSystem || procedureContext.ClearCacheMode == ClearCacheMode.AllDatabasesAndFileSystem) { FileSystemHelper.ClearFileSystemCache(clearStandbyCache: true); } }