Exemplo n.º 1
0
        public override void InitByDataLink(DataLink link)
        {
            base.InitByDataLink(link);

            var hasher   = System.Security.Cryptography.MD5.Create();
            var hashdata = hasher.ComputeHash(System.Text.Encoding.Default.GetBytes($"procedure_unjoin_{TriggerKey}"));

            ProcedureName = string.Concat(hashdata.Select(b => b.ToString("x2")).ToArray());

            Chain = new Chain(RootType, BasePrefix);

            GenerateCreateObjectTrigger = link.CreateObject;

            foreach (var p in link.DataLinkParameter.Cast <DataLinkParameter>().Where(p => !p.LinkField))
            {
                if (!string.IsNullOrEmpty(p.ObjectField) && string.IsNullOrEmpty(p.Expression))
                {
                    Chain.Add(p.ObjectField);

                    if (!SimpleFields.ContainsKey(p.LayerField))
                    {
                        SimpleFields.Add(p.LayerField, p.ObjectField);
                    }
                }
                else
                {
                    var expressionField = new MapExpressionField(RootType, p.LayerField, p.Expression);
                    ExpressionFields.Add(expressionField);
                    foreach (var path in expressionField.Paths)
                    {
                        Chain.Add(path);
                    }
                }
            }
        }
Exemplo n.º 2
0
        public override void InitByDataLink(DataLink link)
        {
            base.InitByDataLink(link);

            foreach (var p in link.DataLinkParameter.Cast <DataLinkParameter>().Where(p => !p.LinkField))
            {
                if (!string.IsNullOrEmpty(p.ObjectField) && string.IsNullOrEmpty(p.Expression))
                {
                    var path = p.ObjectField.LastIndexOf('.') > -1 ? p.ObjectField.Substring(0, p.ObjectField.LastIndexOf('.')) : "";
                    if (!SimpleFields.Keys.Contains(path))
                    {
                        SimpleFields.Add(path, new MapSimpleField(RootType, p.LayerField, p.ObjectField, BasePrefix));
                    }
                    else
                    {
                        SimpleFields[path].Add(p.LayerField, p.ObjectField);
                    }
                }
                else
                {
                    var expressionField = new MapExpressionField(RootType, p.LayerField, p.Expression, BasePrefix);
                    ExpressionFields.Add(expressionField);
                }
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// </summary>
 public override string SetStatement(MapExpressionField field)
 {
     return($"SET {field.LayerField}={field.Chain.ReplacePath(field.Paths, field.Expression)}{Environment.NewLine}");
 }
Exemplo n.º 4
0
 /// <summary>
 /// </summary>
 public abstract string SetStatement(MapExpressionField field);