protected override void ProcessIntermediateStages(Entity entity, CommonStageData oldStageData,
                                                   CommonStageData newStageData)
 {
     if (newStageData.IsSuccessful && newStageData.IsEnd || !newStageData.IsEnd)
     {
         base.ProcessIntermediateStages(entity, oldStageData, newStageData);
     }
 }
        protected override void ProcessPreviousStages(Entity entity, CommonStageData oldStageData,
                                                      CommonStageData newStageData)
        {
            base.ProcessPreviousStages(entity, oldStageData, newStageData);
            if (!HasHistoricalColumn())
            {
                return;
            }
            Guid entityId         = entity.PrimaryColumnValue;
            var  historicalStages = EntityInStageRepository.GetHistoricalEntityInStage(entityId, newStageData.Number);

            EntityInStageRepository.BulkUpdate(historicalStages, new Dictionary <string, object> {
                { StageHistorySetting.StageHistoryHistoricalColumnName, true }
            });
        }