WF4 Пока условие активности в коде - PullRequest
2 голосов
/ 09 ноября 2011

Я строю рабочий процесс в своем коде, и я не знаю, как я могу добавить простое (Пока) условие.Пытался выяснить, как, но не повезло, искать в Интернете, но тоже не повезло.

Это упрощенная версия того, что я пытаюсь сделать:

ActivityBuilder ab = new ActivityBuilder();
ab.Implementation = new Sequence()
{
  Variables = 
  {
     new Variable<int>("StepNo", 0)
  },

  Activities =
  {
    new While()
    {
      Condition = <the_condition>

      Body = 
      {
        //Some logic here and the StepNo is increased
      }
    }
  }   
}

Пока условие должно быть что-то вроде «StepNo <10».Есть идеи, как это сделать?</p>

1 Ответ

4 голосов
/ 09 ноября 2011
var stepNo = new Variable<int>("stepNo", 0);

var activity = new Sequence
{
    Variables = 
    {
        stepNo
    },

    Activities = 
    {
        new While
        {
            Condition = new LessThan<int,int,bool>
            {
                Left = stepNo,
                Right = 10
            },

            Body = new Sequence
            {
                Activities = 
                {
                    new Assign<int>
                    {
                        To = stepNo,
                        Value = new Add<int, int, int>
                        {
                            Left = stepNo,
                            Right = 1
                        }
                    },

                    new WriteLine
                    { 
                        Text = new VisualBasicValue<string>("\"Step: \" & stepNo") 
                    }
                }
            }
        }
    }
};

Или версия без выражений , но только с VisualBasicValue , которая также является действием:

var stepNo = new Variable<int>("stepNo", 0);

var activity = new Sequence
{
    Variables = 
    {
        stepNo
    },

    Activities = 
    {
        new While
        {
            Condition = new VisualBasicValue<bool>("stepNo < 10"),

            Body = new Sequence
            {
                Activities = 
                {
                    new Assign<int>
                    {
                        To = stepNo,
                        Value = new VisualBasicValue<int>("stepNo + 1")
                    },

                    new WriteLine
                    { 
                        Text = new VisualBasicValue<string>("\"Step: \" & stepNo") 
                    }
                }
            }
        }
    }
};
...