public override void Synchronize(TemplateSynchronizationContext sc)
 {
     foreach (var item in Nodes)
     {
         item.Synchronize(sc);
     }
 }
Exemple #2
0
    public static string Synchronize(string text, TemplateSynchronizationContext sc)
    {
        BlockNode node = new TextTemplateParserImp(text, sc.QueryDescription, sc.ModelType).ParseSync();

        node.Synchronize(sc);

        return(node.ToString());
    }
Exemple #3
0
    public override void Synchronize(TemplateSynchronizationContext sc, string remainingText)
    {
        this.ValueProvider !.Synchronize(sc, remainingText);

        if (Operation != null)
        {
            sc.SynchronizeValue(this.ValueProvider !.Type !, ref Value, Operation.Value.IsList());
        }
    }
        public override void Synchronize(TemplateSynchronizationContext sc)
        {
            ValueProvider !.Synchronize(sc, "@foreach[]");

            using (sc.NewScope())
            {
                ValueProvider.Declare(sc.Variables);

                Block.Synchronize(sc);
            }
        }
        public override void Synchronize(TemplateSynchronizationContext sc)
        {
            Condition.Synchronize(sc, "if[]");

            using (sc.NewScope())
            {
                Condition.Declare(sc.Variables);

                IfBlock.Synchronize(sc);
            }

            if (ElseBlock != null)
            {
                using (sc.NewScope())
                {
                    Condition.Declare(sc.Variables);

                    ElseBlock.Synchronize(sc);
                }
            }
        }
        public override void Synchronize(TemplateSynchronizationContext sc)
        {
            Condition.Synchronize(sc, "@any[]");

            using (sc.NewScope())
            {
                Condition.Declare(sc.Variables);

                AnyBlock.Synchronize(sc);
            }

            if (NotAnyBlock != null)
            {
                using (sc.NewScope())
                {
                    Condition.Declare(sc.Variables);

                    NotAnyBlock.Synchronize(sc);
                }
            }
        }
 public override void Synchronize(TemplateSynchronizationContext sc)
 {
     ValueProvider !.Synchronize(sc, "@declare");
 }
 public override void Synchronize(TemplateSynchronizationContext sc)
 {
     return;
 }
 public abstract void Synchronize(TemplateSynchronizationContext sc);
 public override void Synchronize(TemplateSynchronizationContext sc)
 {
     ValueProvider !.Synchronize(sc, IsRaw ? "@raw[]" : "@[]");
 }
Exemple #11
0
    public override void Synchronize(TemplateSynchronizationContext sc)
    {
        ValueProvider.Synchronize(sc, "@");

        ValueProvider.Declare(sc.Variables);
    }
 public abstract void Synchronize(TemplateSynchronizationContext sc, string remainingText);
    internal static SqlPreCommand?ProcessEmailTemplate(Replacements replacements, Table table, EmailTemplateEntity et, StringDistance sd)
    {
        Console.Write(".");
        try
        {
            var queryName = QueryLogic.ToQueryName(et.Query.Key);

            QueryDescription qd = QueryLogic.Queries.QueryDescription(queryName);

            using (DelayedConsole.Delay(() => SafeConsole.WriteLineColor(ConsoleColor.White, "EmailTemplate: " + et.Name)))
                using (DelayedConsole.Delay(() => Console.WriteLine(" Query: " + et.Query.Key)))
                {
                    if (et.From != null && et.From.Token != null)
                    {
                        QueryTokenEmbedded token = et.From.Token;
                        switch (QueryTokenSynchronizer.FixToken(replacements, ref token, qd, SubTokensOptions.CanElement, " From", allowRemoveToken: false, allowReCreate: et.Model != null))
                        {
                        case FixTokenResult.Nothing: break;

                        case FixTokenResult.DeleteEntity: return(table.DeleteSqlSync(et, e => e.Name == et.Name));

                        case FixTokenResult.SkipEntity: return(null);

                        case FixTokenResult.Fix: et.From.Token = token; break;

                        case FixTokenResult.ReGenerateEntity: return(Regenerate(et, replacements, table));

                        default: break;
                        }
                    }

                    if (et.Recipients.Any(a => a.Token != null))
                    {
                        using (DelayedConsole.Delay(() => Console.WriteLine(" Recipients:")))
                        {
                            foreach (var item in et.Recipients.Where(a => a.Token != null).ToList())
                            {
                                QueryTokenEmbedded token = item.Token !;
                                switch (QueryTokenSynchronizer.FixToken(replacements, ref token, qd, SubTokensOptions.CanElement, " Recipient", allowRemoveToken: false, allowReCreate: et.Model != null))
                                {
                                case FixTokenResult.Nothing: break;

                                case FixTokenResult.DeleteEntity: return(table.DeleteSqlSync(et, e => e.Name == et.Name));

                                case FixTokenResult.RemoveToken: et.Recipients.Remove(item); break;

                                case FixTokenResult.SkipEntity: return(null);

                                case FixTokenResult.Fix: item.Token = token; break;

                                case FixTokenResult.ReGenerateEntity: return(Regenerate(et, replacements, table));

                                default: break;
                                }
                            }
                        }
                    }

                    try
                    {
                        foreach (var item in et.Messages)
                        {
                            var sc = new TemplateSynchronizationContext(replacements, sd, qd, et.Model?.ToType());

                            item.Subject = TextTemplateParser.Synchronize(item.Subject, sc);
                            item.Text    = TextTemplateParser.Synchronize(item.Text, sc);
                        }

                        using (replacements.WithReplacedDatabaseName())
                            return(table.UpdateSqlSync(et, e => e.Name == et.Name, includeCollections: true, comment: "EmailTemplate: " + et.Name));
                    }
                    catch (TemplateSyncException ex)
                    {
                        if (ex.Result == FixTokenResult.SkipEntity)
                        {
                            return(null);
                        }

                        if (ex.Result == FixTokenResult.DeleteEntity)
                        {
                            return(table.DeleteSqlSync(et, e => e.Name == et.Name));
                        }

                        if (ex.Result == FixTokenResult.ReGenerateEntity)
                        {
                            return(Regenerate(et, replacements, table));
                        }

                        throw new UnexpectedValueException(ex.Result);
                    }
                }
        }
        catch (Exception e)
        {
            return(new SqlPreCommandSimple("-- Exception on {0}. {1}\r\n{2}".FormatWith(et.BaseToString(), e.GetType().Name, e.Message.Indent(2, '-'))));
        }
    }
Exemple #14
0
 public override void Synchronize(TemplateSynchronizationContext sc, string remainingText)
 {
     this.LeftNode.Synchronize(sc, remainingText);
     this.RightNode.Synchronize(sc, remainingText);
 }