コード例 #1
0
ファイル: FrameDR.cs プロジェクト: zeta1999/Sylvester
 public dynamic this[string column]
 {
     get
     {
         if (FrameColumns.ContainsKey(column))
         {
             return(FrameColumns[column].GetVal(Index));;
         }
         else if (CustomColumns.ContainsKey(column))
         {
             return(CustomColumns[column]);
         }
         else
         {
             throw new IndexOutOfRangeException($"Column {column} does not exist.");
         }
     }
     set
     {
         if (FrameColumns.ContainsKey(column))
         {
             FrameColumns[column].SetVal(Index, value);;
         }
         else if (CustomColumns.ContainsKey(column))
         {
             CustomColumns[column] = value;
         }
         else
         {
             throw new IndexOutOfRangeException($"Column {column} does not exist.");
         }
     }
 }
コード例 #2
0
ファイル: FrameDR.cs プロジェクト: zeta1999/Sylvester
        public FrameDR Sel(params string[] columns)
        {
            var notfound = columns.Where(c => !FrameColumns.ContainsKey(c) || !CustomColumns.ContainsKey(c));

            if (notfound.Count() != 0)
            {
                throw new ArgumentException($"The following columns do not exist in the row: {notfound.Aggregate((s1, s2) => s1 + "," + s2)}.");
            }
            var     frameColumns = FrameColumns.Where(c => columns.Contains(c.Key));
            FrameDR dr           = null;

            if (columns.Count() != 0)
            {
                dr = new FrameDR(this.Frame, this.Index, frameColumns.Select(c => c.Value).ToArray());
            }
            else
            {
                dr = new FrameDR();
            }
            var customColumns = CustomColumns.Where(c => columns.Contains(c.Key));

            foreach (var c in customColumns)
            {
                dr.Add((c.Key, c.Value));
            }

            return(dr);
        }
コード例 #3
0
ファイル: FrameDR.cs プロジェクト: zeta1999/Sylvester
 public FrameDR Add(Dictionary <string, dynamic> values)
 {
     foreach (var kv in values)
     {
         if (CustomColumns.ContainsKey(kv.Key))
         {
             CustomColumns[kv.Key] = kv.Value;
         }
         else
         {
             CustomColumns.Add(kv.Key, kv.Value);
         }
     }
     return(this);
 }
コード例 #4
0
ファイル: FrameDR.cs プロジェクト: zeta1999/Sylvester
 public FrameDR Add(params ValueTuple <string, dynamic>[] values)
 {
     for (int i = 0; i < values.Length; i++)
     {
         if (CustomColumns.ContainsKey(values[i].Item1))
         {
             CustomColumns[values[i].Item1] = values[i].Item2;
         }
         else
         {
             CustomColumns.Add(values[i].Item1, values[i].Item2);
         }
     }
     return(this);
 }
コード例 #5
0
ファイル: FrameDR.cs プロジェクト: zeta1999/Sylvester
 public override bool TrySetMember(SetMemberBinder binder, object value)
 {
     if (FrameColumns.ContainsKey(binder.Name))
     {
         IColumn s = (IColumn)CallSites[binder.Name].Target(CallSites[binder.Name], this.Frame);
         return(s.SetVal(Index, value));
     }
     else if (CustomColumns.ContainsKey(binder.Name))
     {
         return(CustomColumns[binder.Name] = value);
     }
     else
     {
         CustomColumns.Add(binder.Name, value);
         return(true);
     }
 }
コード例 #6
0
ファイル: FrameDR.cs プロジェクト: zeta1999/Sylvester
 public override bool TryGetMember(GetMemberBinder binder, out object result)
 {
     result = null;
     if (FrameColumns.ContainsKey(binder.Name))
     {
         if (!CallSites.ContainsKey(binder.Name))
         {
             AddCallSite(binder.Name);
         }
         result = GetFrameColumnMember(binder.Name);
         return(true);
     }
     else if (CustomColumns.ContainsKey(binder.Name))
     {
         result = CustomColumns[binder.Name];
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #7
0
ファイル: SqlDataProvider.cs プロジェクト: eduprog/Audit.NET
        private string GetSetForUpdate(AuditEvent auditEvent)
        {
            var jsonColumnName = JsonColumnNameBuilder?.Invoke(auditEvent);
            var ludColumn      = LastUpdatedDateColumnNameBuilder?.Invoke(auditEvent);
            var sets           = new List <string>();

            if (jsonColumnName != null)
            {
                sets.Add($"[{jsonColumnName}] = @json");
            }
            if (ludColumn != null)
            {
                sets.Add($"[{ludColumn}] = GETUTCDATE()");
            }
            if (CustomColumns != null && CustomColumns.Any())
            {
                for (int i = 0; i < CustomColumns.Count; i++)
                {
                    sets.Add($"[{CustomColumns[i].Name}] = @c{i}");
                }
            }
            return(string.Join(", ", sets));
        }