Workflow Giriş 1 deki örnek entityler üstünden konuyu biraz daha detaylandıralım
Peşpeşe işlemler yapacak bir workflow örneği yapalım
Bunun için Toolboxtan — >Control Flow– >Sequence activity Activity Builderımız içine(Activity1.xaml diye oluşturduğumuz xaml dosyası içine) sürükle bırak yapıyoruz
Şöyle bir senaryomuz olsun;
Bir üniversitede eğer gelen kişi öğrenci ise 5 lira ,öğretmen ise 10 lira olarak ödenecek menü
bedeli olsun.Bunun için Scope Sequence olacak şekilde bir variable tanımlayalım ve ismi OdenecekTutar olsun.Ve workflowa değer alabilmek için PersonArgument isimli bir bir argüman tanımlayalım.(Argüman ve variable arasındaki farkları WORKFLOW FOUNDATION (WWF) 4.0 GİRİŞ – 1 makalesinde mevcuttur)
Daha sonra Sequence içine yine Toolbox– >Control Flow– >If kontrolü sürekle bırak yapıyoruz.Ifin içindeki then ve else kısımlarında koşulumuza göre OdenecekTutar ımızın değerini belirleyeceğimiz için Toolbox — >Primitives içinden Assign kontrolünü atıyoruz
If Condition kısmının expressionına PersonArgument.PersonType = 1
Yazıyoruz.Ve bizim senaryomuza göre PersonType 1 se Öğrenci,2 seyse Öğretmen olsun ve OdenecekTutar Variables da buna göre 5 veya 10 olacak.Bunu belirlediğimiz kısım ise if kontrolün blokları içine yerleştirdiğimiz Assign kontrolünde To ve Value alanlarına gereken değeri vermektir.En son olarak ise WriteLine ödenecek tutarı ekrana yazdırıyoruz.
Program cs içerisinde ise yine workflowa gelecek Argumentin değerini ve invoke edeceğimiz xaml dosyamızın adını belirtiyoruz.
Student p = new Student { Name = “Bilgehan”, Age = 26, PersonType = 1,StudentNumber=”357″ };
Dictionary<string, object> argumentlist = new Dictionary<string, object>();
argumentlist.Add(“PersonArgument”,p);
//WorkflowInvoker.Invoke(new Workflow1(),argumentlist);
WorkflowInvoker.Invoke(new Activity1(), argumentlist);
Console.ReadLine();