Beispiel #1
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();
            }
Beispiel #2
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();
            }
Beispiel #3
0
      protected override void Execute(Csla.Rules.IRuleContext context)
      {
        var target = (ProjectEdit)context.Target;

        var started = target.ReadProperty(StartedProperty);
        var ended = target.ReadProperty(EndedProperty);
        if (started.HasValue && ended.HasValue && started > ended || !started.HasValue && ended.HasValue)
          context.AddErrorResult("Start date can't be after end date");
      }
Beispiel #4
0
            protected override void Execute(Csla.Rules.IRuleContext context)
            {
                var target = (LineItem)context.Target;

                if (!target.IsNew)
                {
                    context.AddErrorResult("Value may only be changed if item is new");
                }
            }
Beispiel #5
0
 protected override void Execute(Csla.Rules.IRuleContext context)
 {
   var target = (ProjectEdit)context.Target;
   foreach (var item in target.Resources)
   {
     var count = target.Resources.Count(r => r.ResourceId == item.ResourceId);
     if (count > 1)
     {
       context.AddErrorResult("Duplicate resources not allowed");
       return;
     }
   }
 }
Beispiel #6
0
            protected override void Execute(Csla.Rules.IRuleContext context)
            {
                var  ce     = (CustomerEdit)context.Target;
                bool result = string.IsNullOrEmpty(ce.Name) ||
                              !(from c in ce.Name.ToCharArray()
                                where char.IsDigit(c)
                                select c)
                              .Any();

                if (!result)
                {
                    context.AddErrorResult("Name must consist of only letters.");
                }
            }
Beispiel #7
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();
            }
Beispiel #8
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();
            }