اکتیویتی DoWhile و IfElse

چاپ

استفاده ازاکتیویتی DoWhile و IfElse در Workflow

در اینجا قصد داریم، نحوه ی استفاده از اکتیویتی های DoWhile و IfElse را با یک تمرین ساده آموزش دهیم. در این تمرین در ابتدا یک عدد تصادفی بین 1 تا 100 تولید می شود، سپس کاربر باید حدس بزند که کدام عدد انتخاب شده است. هر بار که کاربر، عددی را حدس می زند، پیغامی مبنی بر "درست بودن" یا "نبودن" عدد نشان داده می شود و برای حدس عدد بعدی، برنامه کاربر را راهنمایی می کند...!

مراحل انجام کار

 پروژه گردش کار GuessNumberGameInSequence شامل 5 مرحله زیر است:

  1. ایجاد یک پروژه از نوع Workflow Console Application
  2. ایجاد کلاس ReadNumberActivity برای دریافت عدد حدس زده شده توسط کاربر
  3. طراحی Workflow و نحوه استفاده از اکتیویتی DoWhile و IfElse
  4. اجرای Workflow
  5. سیستم گردش کار GuessNumberGameInSequence  چگونه کار می کند؟

ایجاد یک پروژه از نوع Workflow Console Application

در پنل Solution Explorer روی Solution Chapter02 راست کلیک کرده و از گزینه ADD زیر منوی New Project را انتخاب نمایید. سپس در پنجره Add New Project گزینه workflow را انتخاب کرده و سپس از سمت راست پنجره گزینه Workflow Console Application را انتخاب نمایید. حالا قسمت Name را با مقدار GuessNumberGameInSequence تنظیم نمایید و نهایتاً روی دکمه OK کلیک کنید. 


ایجاد کلاس ReadNumberActivity برای دریافت عدد حدس زده شده توسط کاربر

در پنل Solution Explorer روی پروژه GuessNumberGameInSequence راست کلیک کرده و گزینه Add -> New Item را انتخاب نمایید.

در پنجره Add New Item، نام فایل را "ReadNumberActivity.cs" قرار داده و روی دکمه Add کلیک نمایید.

حالا فایل ReadNumberActivity.cs را باز نمایید و کدهای زیر را در آن پیست کنید، سپس آنرا Save و پروژه را Build نمایید:

ReadNumberActivity.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Activities;

namespace GuessNumberGameInSequence
{
    public sealed class ReadNumberActivity : CodeActivity
    {
        public OutArgument OutNumber { get; set; }
        protected override void Execute(CodeActivityContext context)
        {
            OutNumber.Set(context, Int32.Parse(Console.ReadLine()));
        }
    }
}

طراحی Workflow و نحوه استفاده از اکتیویتی DoWhile و IfElse

از پنل Solution Explorerr فایل Workflow1.xaml را باز کنید و Workflow را مطابق زیر طراحی نمایید:

  1. از پنل ToolBox، اکتیویتی DoWhile را انتخاب کرده و به داخل صفحه طراحی گردش کار بکشید و بقیه موارد را مطابق شکل زیر انجام دهید:


اجرای Workflow

پروژه GuessNumberGameInSequence را بعنوان پروژه StartUp تنظیم نمایید و در ادامه برای اجرای Workflow دکمه های میانبر Ctrl+F5 را فشار دهید. با این کار Workflow ذخیره شده و بدون عملیات debugging نتیجه نشان داده خواهد شد. همان طور که می بینید، با 5 بار حدس زدن توانستیم به عدد مورد نظر دست یابیم ...!


سیستم گردش کار GuessNumberGameInSequence  چگونه کار می کند؟

 زمانی که Workflow اجرا می شود، یک عدد تصادفی بین 1 تا 100 تولید شده و در متغییر RandomNumber ذخیره می شود.

اما در ابتدا Workflow، رشته "Input your number" را در کنسول چاپ می کند. زمانی که اجرای Workflow به اکتیویتی ReadNumberActivity می رسد، اجرای گردش کار متوقف شده و منتظر دریافت عدد حدس زده شده می ماند.

در ادامه Workflow عدد دریافتی را با متغییر RandomNumber مقایسه می کند و پیغام های مناسب را در کنسول چاپ می کند.

{module خرید و دانلود فصل دوم آموزش Workflow}