public void Notify(ProcedureEvents @event) { _notified.Add(@event, DateTime.UtcNow); using (var accessor = _memoryMappedFile.CreateViewAccessor(0, _size, MemoryMappedFileAccess.Write)) accessor.Write <ProcedureEvents>(0, ref @event); }
public ProcedureEvent this[ProcedureEvents @event] { get { return(this.Where((e) => e.Event == @event).FirstOrDefault()); } }
private void UpdateProgress(ProcedureEvents @event) { try { if (_coldCacheExecution) { #region Cold execution if (@event == ProcedureEvents.ProcedureAnalyzeStepValidateStatement) { #region step panelExecutionBandPre.Visible = true; panelExecutionTaskPre.Visible = true; SetInProgress(labelName_Pre_VerifyMDX, labelResult_Pre_VerifyMDX); return; #endregion } if (@event == ProcedureEvents.ProcedureAnalyzeStepClearCache) { #region step panelExecutionBandPre.Visible = true; panelExecutionTaskPre.Visible = true; SetCompleted(labelName_Pre_VerifyMDX, labelResult_Pre_VerifyMDX); SetInProgress(labelName_Pre_ClearCache, labelResult_Pre_ClearCache); return; #endregion } if (@event == ProcedureEvents.ProcedureAnalyzeStepLoadCubeScript) { #region step panelExecutionBandPre.Visible = true; panelExecutionTaskPre.Visible = true; SetCompleted(labelName_Pre_VerifyMDX, labelResult_Pre_VerifyMDX); SetCompleted(labelName_Pre_ClearCache, labelResult_Pre_ClearCache); SetInProgress(labelName_Pre_LoadCubeMDXScript, labelResult_Pre_LoadCubeMDXScript); return; #endregion } if (@event == ProcedureEvents.ProcedureAnalyzeStepStartAnalyzerTask) { #region step panelExecutionBandPre.Visible = true; panelExecutionTaskPre.Visible = true; SetCompleted(labelName_Pre_VerifyMDX, labelResult_Pre_VerifyMDX); SetCompleted(labelName_Pre_ClearCache, labelResult_Pre_ClearCache); SetCompleted(labelName_Pre_LoadCubeMDXScript, labelResult_Pre_LoadCubeMDXScript); pictureBoxArrowDownTop.Visible = true; panelExecutionBandColdCache.Visible = true; panelExecutionTaskColdCache.Visible = true; SetInProgress(labelName_Cold_RunTraces, labelResult_Cold_RunTraces); return; #endregion } if (@event == ProcedureEvents.ProcedureAnalyzeStepExecuteStatement) { #region step panelExecutionBandPre.Visible = true; panelExecutionTaskPre.Visible = true; SetCompleted(labelName_Pre_VerifyMDX, labelResult_Pre_VerifyMDX); SetCompleted(labelName_Pre_ClearCache, labelResult_Pre_ClearCache); SetCompleted(labelName_Pre_LoadCubeMDXScript, labelResult_Pre_LoadCubeMDXScript); pictureBoxArrowDownTop.Visible = true; panelExecutionBandColdCache.Visible = true; panelExecutionTaskColdCache.Visible = true; SetCompleted(labelName_Cold_RunTraces, labelResult_Cold_RunTraces); SetInProgress(labelName_Cold_ExecuteMDX, labelResult_Cold_ExecuteMDX); return; #endregion } if (@event == ProcedureEvents.ProcedureAnalyzeStepPendingOutcome) { #region step panelExecutionBandPre.Visible = true; panelExecutionTaskPre.Visible = true; SetCompleted(labelName_Pre_VerifyMDX, labelResult_Pre_VerifyMDX); SetCompleted(labelName_Pre_ClearCache, labelResult_Pre_ClearCache); SetCompleted(labelName_Pre_LoadCubeMDXScript, labelResult_Pre_LoadCubeMDXScript); pictureBoxArrowDownTop.Visible = true; panelExecutionBandColdCache.Visible = true; panelExecutionTaskColdCache.Visible = true; SetCompleted(labelName_Cold_RunTraces, labelResult_Cold_RunTraces); SetInProgress(labelName_Cold_ExecuteMDX, labelResult_Cold_ExecuteMDX); // this task run always with the next one (CollectData) SetInProgress(labelName_Cold_CollectData, labelResult_Cold_CollectData); return; #endregion } if (@event == ProcedureEvents.ProcedureAnalyzeStepCalculateResult) { #region step panelExecutionBandPre.Visible = true; panelExecutionTaskPre.Visible = true; SetCompleted(labelName_Pre_VerifyMDX, labelResult_Pre_VerifyMDX); SetCompleted(labelName_Pre_ClearCache, labelResult_Pre_ClearCache); SetCompleted(labelName_Pre_LoadCubeMDXScript, labelResult_Pre_LoadCubeMDXScript); pictureBoxArrowDownTop.Visible = true; panelExecutionBandColdCache.Visible = true; panelExecutionTaskColdCache.Visible = true; SetCompleted(labelName_Cold_RunTraces, labelResult_Cold_RunTraces); SetCompleted(labelName_Cold_ExecuteMDX, labelResult_Cold_ExecuteMDX); SetCompleted(labelName_Cold_CollectData, labelResult_Cold_CollectData); SetInProgress(labelName_Cold_CalculateMetrics, labelResult_Cold_CalculateMetrics); return; #endregion } if (@event == ProcedureEvents.ProcedureAnalyzeStepSendResult) { #region step panelExecutionBandPre.Visible = true; panelExecutionTaskPre.Visible = true; SetCompleted(labelName_Pre_VerifyMDX, labelResult_Pre_VerifyMDX); SetCompleted(labelName_Pre_ClearCache, labelResult_Pre_ClearCache); SetCompleted(labelName_Pre_LoadCubeMDXScript, labelResult_Pre_LoadCubeMDXScript); pictureBoxArrowDownTop.Visible = true; panelExecutionBandColdCache.Visible = true; panelExecutionTaskColdCache.Visible = true; SetCompleted(labelName_Cold_RunTraces, labelResult_Cold_RunTraces); SetCompleted(labelName_Cold_ExecuteMDX, labelResult_Cold_ExecuteMDX); SetCompleted(labelName_Cold_CollectData, labelResult_Cold_CollectData); SetCompleted(labelName_Cold_CalculateMetrics, labelResult_Cold_CalculateMetrics); pictureBoxArrowDownCenter1.Visible = true; panelExecutionBandPostCold.Visible = true; panelExecutionTaskPostCold.Visible = true; SetInProgress(labelName_PostCold_RetrieveData, labelResult_PostCold_RetrieveData); return; #endregion } #endregion } else { #region Warm execution if (@event == ProcedureEvents.ProcedureAnalyzeStepStartAnalyzerTask) { #region step panelExecutionBandPre.Visible = true; panelExecutionTaskPre.Visible = true; SetCompleted(labelName_Pre_VerifyMDX, labelResult_Pre_VerifyMDX); SetCompleted(labelName_Pre_ClearCache, labelResult_Pre_ClearCache); SetCompleted(labelName_Pre_LoadCubeMDXScript, labelResult_Pre_LoadCubeMDXScript); pictureBoxArrowDownTop.Visible = true; panelExecutionBandColdCache.Visible = true; panelExecutionTaskColdCache.Visible = true; pictureBoxArrowDownCenter1.Visible = true; SetCompleted(labelName_Cold_RunTraces, labelResult_Cold_RunTraces); SetCompleted(labelName_Cold_ExecuteMDX, labelResult_Cold_ExecuteMDX); SetCompleted(labelName_Cold_CollectData, labelResult_Cold_CollectData); SetCompleted(labelName_Cold_CalculateMetrics, labelResult_Cold_CalculateMetrics); panelExecutionBandPostCold.Visible = true; panelExecutionTaskPostCold.Visible = true; SetCompleted(labelName_PostCold_RetrieveData, labelResult_PostCold_RetrieveData); pictureBoxArrowDownCenter2.Visible = true; panelExecutionBandWarmCache.Visible = true; panelExecutionTaskWarmCache.Visible = true; SetInProgress(labelName_Warm_RunTraces, labelResult_Warm_RunTraces); return; #endregion } if (@event == ProcedureEvents.ProcedureAnalyzeStepExecuteStatement) { #region step panelExecutionBandPre.Visible = true; panelExecutionTaskPre.Visible = true; SetCompleted(labelName_Pre_VerifyMDX, labelResult_Pre_VerifyMDX); SetCompleted(labelName_Pre_ClearCache, labelResult_Pre_ClearCache); SetCompleted(labelName_Pre_LoadCubeMDXScript, labelResult_Pre_LoadCubeMDXScript); pictureBoxArrowDownTop.Visible = true; panelExecutionBandColdCache.Visible = true; panelExecutionTaskColdCache.Visible = true; pictureBoxArrowDownCenter1.Visible = true; SetCompleted(labelName_Cold_RunTraces, labelResult_Cold_RunTraces); SetCompleted(labelName_Cold_ExecuteMDX, labelResult_Cold_ExecuteMDX); SetCompleted(labelName_Cold_CollectData, labelResult_Cold_CollectData); SetCompleted(labelName_Cold_CalculateMetrics, labelResult_Cold_CalculateMetrics); panelExecutionBandPostCold.Visible = true; panelExecutionTaskPostCold.Visible = true; SetCompleted(labelName_PostCold_RetrieveData, labelResult_PostCold_RetrieveData); pictureBoxArrowDownCenter2.Visible = true; panelExecutionBandWarmCache.Visible = true; panelExecutionTaskWarmCache.Visible = true; SetCompleted(labelName_Warm_RunTraces, labelResult_Warm_RunTraces); SetInProgress(labelName_Warm_ExecuteMDX, labelResult_Warm_ExecuteMDX); return; #endregion } if (@event == ProcedureEvents.ProcedureAnalyzeStepPendingOutcome) { #region step panelExecutionBandPre.Visible = true; panelExecutionTaskPre.Visible = true; SetCompleted(labelName_Pre_VerifyMDX, labelResult_Pre_VerifyMDX); SetCompleted(labelName_Pre_ClearCache, labelResult_Pre_ClearCache); SetCompleted(labelName_Pre_LoadCubeMDXScript, labelResult_Pre_LoadCubeMDXScript); pictureBoxArrowDownTop.Visible = true; panelExecutionBandColdCache.Visible = true; panelExecutionTaskColdCache.Visible = true; pictureBoxArrowDownCenter1.Visible = true; SetCompleted(labelName_Cold_RunTraces, labelResult_Cold_RunTraces); SetCompleted(labelName_Cold_ExecuteMDX, labelResult_Cold_ExecuteMDX); SetCompleted(labelName_Cold_CollectData, labelResult_Cold_CollectData); SetCompleted(labelName_Cold_CalculateMetrics, labelResult_Cold_CalculateMetrics); panelExecutionBandPostCold.Visible = true; panelExecutionTaskPostCold.Visible = true; SetCompleted(labelName_PostCold_RetrieveData, labelResult_PostCold_RetrieveData); pictureBoxArrowDownCenter2.Visible = true; panelExecutionBandWarmCache.Visible = true; panelExecutionTaskWarmCache.Visible = true; SetCompleted(labelName_Warm_RunTraces, labelResult_Warm_RunTraces); SetInProgress(labelName_Warm_ExecuteMDX, labelResult_Warm_ExecuteMDX); // this task run always with the next one (CollectData) SetInProgress(labelName_Warm_CollectData, labelResult_Warm_CollectData); return; #endregion } if (@event == ProcedureEvents.ProcedureAnalyzeStepCalculateResult) { #region step panelExecutionBandPre.Visible = true; panelExecutionTaskPre.Visible = true; SetCompleted(labelName_Pre_VerifyMDX, labelResult_Pre_VerifyMDX); SetCompleted(labelName_Pre_ClearCache, labelResult_Pre_ClearCache); SetCompleted(labelName_Pre_LoadCubeMDXScript, labelResult_Pre_LoadCubeMDXScript); pictureBoxArrowDownTop.Visible = true; panelExecutionBandColdCache.Visible = true; panelExecutionTaskColdCache.Visible = true; pictureBoxArrowDownCenter1.Visible = true; SetCompleted(labelName_Cold_RunTraces, labelResult_Cold_RunTraces); SetCompleted(labelName_Cold_ExecuteMDX, labelResult_Cold_ExecuteMDX); SetCompleted(labelName_Cold_CollectData, labelResult_Cold_CollectData); SetCompleted(labelName_Cold_CalculateMetrics, labelResult_Cold_CalculateMetrics); panelExecutionBandPostCold.Visible = true; panelExecutionTaskPostCold.Visible = true; SetCompleted(labelName_PostCold_RetrieveData, labelResult_PostCold_RetrieveData); pictureBoxArrowDownCenter2.Visible = true; panelExecutionBandWarmCache.Visible = true; panelExecutionTaskWarmCache.Visible = true; SetCompleted(labelName_Warm_RunTraces, labelResult_Warm_RunTraces); SetCompleted(labelName_Warm_ExecuteMDX, labelResult_Warm_ExecuteMDX); SetCompleted(labelName_Warm_CollectData, labelResult_Warm_CollectData); SetInProgress(labelName_Warm_CalculateMetrics, labelResult_Warm_CalculateMetrics); return; #endregion } if (@event == ProcedureEvents.ProcedureAnalyzeStepSendResult) { #region step panelExecutionBandPre.Visible = true; panelExecutionTaskPre.Visible = true; SetCompleted(labelName_Pre_VerifyMDX, labelResult_Pre_VerifyMDX); SetCompleted(labelName_Pre_ClearCache, labelResult_Pre_ClearCache); SetCompleted(labelName_Pre_LoadCubeMDXScript, labelResult_Pre_LoadCubeMDXScript); pictureBoxArrowDownTop.Visible = true; panelExecutionBandColdCache.Visible = true; panelExecutionTaskColdCache.Visible = true; pictureBoxArrowDownCenter1.Visible = true; SetCompleted(labelName_Cold_RunTraces, labelResult_Cold_RunTraces); SetCompleted(labelName_Cold_ExecuteMDX, labelResult_Cold_ExecuteMDX); SetCompleted(labelName_Cold_CollectData, labelResult_Cold_CollectData); SetCompleted(labelName_Cold_CalculateMetrics, labelResult_Cold_CalculateMetrics); panelExecutionBandPostCold.Visible = true; panelExecutionTaskPostCold.Visible = true; SetCompleted(labelName_PostCold_RetrieveData, labelResult_PostCold_RetrieveData); pictureBoxArrowDownCenter2.Visible = true; panelExecutionBandWarmCache.Visible = true; panelExecutionTaskWarmCache.Visible = true; SetCompleted(labelName_Warm_RunTraces, labelResult_Warm_RunTraces); SetCompleted(labelName_Warm_ExecuteMDX, labelResult_Warm_ExecuteMDX); SetCompleted(labelName_Warm_CollectData, labelResult_Warm_CollectData); SetCompleted(labelName_Warm_CalculateMetrics, labelResult_Warm_CalculateMetrics); pictureBoxArrowDownBottom.Visible = true; panelExecutionBandPostWarm.Visible = true; panelExecutionTaskPostWarm.Visible = true; SetInProgress(labelName_PostWarm_RetrieveData, labelResult_PostWarm_RetrieveData); return; #endregion } #endregion } } finally { tableLayoutPanelMain.Refresh(); } }