コード例 #1
0
ファイル: OrScenarioStep.cs プロジェクト: svLimones/SOLIDex
 public void SetViewForCondition(StepAffectCondition condition, IView view)
 {
     foreach (var scenarioStep in Steps.Where(scenarioStep => scenarioStep.IsStepAffected(condition)))
     {
         scenarioStep.SetViewForCondition(condition, view);
     }
 }
コード例 #2
0
ファイル: ScenarioService.cs プロジェクト: svLimones/SOLIDex
    //private bool ViewIsScreenOrDialog( ViewBase view )
    //{
    //    return true;
    //    //return view.ViewType == ViewType.Dialog || view.ViewType == ViewType.Screen||view.ViewType==ViewType.ChildComponent;
    //}

    private void ProcessScenarioStep(Type key, IView view, StepCondition condition)
    {
        var step = _currentScenarioSteps[key].Current;

        if (step == null)
        {
            // добавлена эта проверка для вот какого кейса:
            // если у нас работают 2 сценария одновременно, в одном нету елдов, другой сценарий ждет евенты и когда он их получает,
            // евенты вынуждают проверять текущий стип у всех сценариев, в сценарии где нету елдов стип будет нуллом, отсюда нуллреф
            return;
        }
        var stepAffectCondition = new StepAffectCondition(condition, view == null?null: view.GetType());

        if (step.IsStepAffected(stepAffectCondition))
        {
            step.SetViewForCondition(stepAffectCondition, view);
            MoveNextStep(key);
        }
    }
コード例 #3
0
ファイル: OrScenarioStep.cs プロジェクト: svLimones/SOLIDex
 public bool IsStepAffected(StepAffectCondition condition)
 {
     return(Steps.Any(a => a.IsStepAffected(condition)));
 }