Beispiel #1
0
    public virtual void Execute(ExecutingProcess executingProcess)
    {
        PackageEntity package = (PackageEntity)executingProcess.Data !;

        var args = package.GetOperationArgs();

        executingProcess.ForEachLine(package.Lines().Where(a => a.FinishTime == null), line =>
        {
            ((T)(object)line.Target).Execute(Symbol, args);
            line.FinishTime = Clock.Now;
            line.Save();
        });
    }
Beispiel #2
0
        public virtual void Execute(ExecutingProcess executingProcess)
        {
            PackageEntity package = (PackageEntity)executingProcess.Data !;

            var args = package.GetOperationArgs();

            using (OperationLogic.AllowSave <T>())
                executingProcess.ForEachLine(package.Lines().Where(a => a.FinishTime == null), line =>
                {
                    ((T)(object)line.Target).Save();
                    line.FinishTime = TimeZoneManager.Now;
                    line.Save();
                });
        }
        public virtual void Execute(ExecutingProcess executingProcess)
        {
            PackageEntity package = (PackageEntity)executingProcess.Data !;

            var args     = package.GetOperationArgs();
            var template = args.GetArg <Lite <EmailTemplateEntity> >();

            executingProcess.ForEachLine(package.Lines().Where(a => a.FinishTime == null), line =>
            {
                var emails = template.CreateEmailMessage(line.Target).ToList();
                foreach (var email in emails)
                {
                    email.SendMailAsync();
                }

                line.Result     = emails.Only()?.ToLite();
                line.FinishTime = TimeZoneManager.Now;
                line.Save();
            });
        }
Beispiel #4
0
    public virtual void Execute(ExecutingProcess executingProcess)
    {
        PackageEntity package = (PackageEntity)executingProcess.Data !;

        var args = package.GetOperationArgs();

        executingProcess.ForEachLine(package.Lines().Where(a => a.FinishTime == null), line =>
        {
            var result = ((F)(object)line.Target).ConstructFrom(Symbol, args);
            if (result != null)
            {
                if (result.IsNew)
                {
                    using (OperationLogic.AllowSave <T>())
                        result.Save();
                }

                line.Result = ((Entity)(IEntity)result).ToLite();
            }

            line.FinishTime = Clock.Now;
            line.Save();
        });
    }