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."); } } }
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); }
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); }
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); }
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); } }
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); } }
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)); }