Example #1
0
            protected override async void Execute(Csla.Rules.IRuleContext context)
            {
                MyExpensiveCommand result = null;

                if (IsAsync)
                {
                    result = await MyExpensiveCommand.DoCommandAsync();
                }
                else
                {
                    result = MyExpensiveCommand.DoCommandAsync().Result;
                }
                if (result == null)
                {
                    context.AddErrorResult("Command failed to run");
                }
                else if (result.Result)
                {
                    context.AddInformationResult(result.ResultText);
                }
                else
                {
                    context.AddErrorResult(result.ResultText);
                }
                context.Complete();
            }
Example #2
0
            protected override void Execute(Csla.Rules.IRuleContext context)
            {
                var bw = new System.ComponentModel.BackgroundWorker();

                bw.DoWork += (o, e) =>
                {
                    var  name   = (string)context.InputPropertyValues[PrimaryProperty];
                    bool result = string.IsNullOrEmpty(name) ||
                                  !(from c in name.ToCharArray()
                                    where char.IsDigit(c)
                                    select c)
                                  .Any();
                    if (!result)
                    {
                        context.AddErrorResult("Name must consist of only letters.");
                    }
                };
                bw.RunWorkerCompleted += (o, e) =>
                {
                    if (e.Error != null)
                    {
                        context.AddErrorResult(e.Error.Message);
                    }
                    context.Complete();
                };
                bw.RunWorkerAsync();
            }
Example #3
0
            protected async override void Execute(Csla.Rules.IRuleContext context)
            {
                var tcs = new TaskCompletionSource <bool>();

                new Task(() =>
                {
                    var name = (string)context.InputPropertyValues[PrimaryProperty];
                    tcs.SetResult(string.IsNullOrEmpty(name) ||
                                  !(from c in name.ToCharArray()
                                    where char.IsDigit(c)
                                    select c)
                                  .Any());
                }).Start();
                var result = await tcs.Task;

                if (!result)
                {
                    context.AddErrorResult("Name must consist of only letters.");
                }
                context.Complete();
            }
Example #4
0
            protected override void Execute(Csla.Rules.IRuleContext context)
            {
                BackgroundWorker worker = new BackgroundWorker();

                worker.DoWork             += (o, e) => Thread.Sleep(3000);
                worker.RunWorkerCompleted += (o, e) =>
                {
                    string val = (string)context.InputPropertyValues[PrimaryProperty];
                    if (val == "Error")
                    {
                        context.AddErrorResult("Invalid data!");
                    }
                    else if (val == "Warning")
                    {
                        context.AddWarningResult("This might not be a great idea!");
                    }
                    else if (val == "Information")
                    {
                        context.AddInformationResult("Just an FYI!");
                    }
                    context.Complete();
                };
                worker.RunWorkerAsync();
            }