public static Lut LoadCarTorque(IDataWrapper data, bool considerLimiter = true, int detalization = 100) { /* read torque curve and engine params */ var torqueFile = data.GetLutFile("power.lut"); if (torqueFile.IsEmptyOrDamaged()) throw new FileNotFoundException("Cannot load power.lut", "data/power.lut"); var engine = data.GetIniFile("engine.ini"); if (engine.IsEmptyOrDamaged()) throw new FileNotFoundException("Cannot load engine.ini", "data/engine.ini"); /* prepare turbos and read controllers */ var turbos = ReadTurbos(engine); for (var i = 0; i < turbos.Count; i++) { turbos[i].Controllers = ReadControllers(data.GetIniFile($"ctrl_turbo{i}.ini")); } /* prepare torque curve and limits */ var torque = torqueFile.Values; torque.UpdateBoundingBox(); var limit = considerLimiter && engine.ContainsKey("ENGINE_DATA") ? engine["ENGINE_DATA"].GetDouble("LIMITER", torque.MaxX) : torque.MaxX; var startFrom = considerLimiter ? 0d : torque.MinX; /* build smoothed line */ var result = new Lut(); var previousTorquePoint = 0; var previousRpm = 0d; for (var i = 0; i <= detalization; i++) { var rpm = detalization == 0 ? limit : (limit - startFrom) * i / detalization + startFrom; for (var j = previousTorquePoint; j < torque.Count; j++) { var p = torque[j]; if (p.X > rpm) { previousTorquePoint = j > 0 ? j - 1 : 0; break; } if ((i == 0 || p.X > previousRpm) && p.X < rpm && p.X >= 0) { result.Add(new LutPoint(p.X, ConsiderTurbo(turbos, p.X, p.Y))); } } var baseTorque = torque.InterpolateLinear(rpm); result.Add(new LutPoint(rpm, ConsiderTurbo(turbos, rpm, baseTorque))); previousRpm = rpm; } return result.Optimize(); }
public bool BuildScript(Table table, IDataWrapper data, IDataFilter filter, out object script) { if (data.Read()) { if (table is MaskingTable) { BuildScriptWithMaskSQL(table, data, filter, out script); } else if (table.WriteMode == WriteModes.Append) { if (isSupportCSV) { BuildScriptWithCSV(table, data, filter, out script); } else { BuildScriptWithInsertSQL(table, table.DestName, data, filter, out script); } } else if (!isSupportCSV) { BuildScriptWithReplaceSQL(table, table.DestName, data, filter, out script); } else { BuildScriptWithMergeSQL(table, data, filter, out script); } return(true); } else { script = null; return(false); } }
private void BuildScriptWithMaskSQL(Table table, IDataWrapper data, IDataFilter filter, out object script) { string destTable = ProcessTableName(table.DestName, table.DestSchema); string tmpTable = ProcessTableName($"{ExtractTableName(table.DestName)}_{Guid.NewGuid():N}", table.DestSchema); StringBuilder sb = new StringBuilder(); string[] fields = ExcludeFields(table.DestFields, table.KeyFields, table.SkipFields); string field = ProcessFieldName(table.KeyFields[0]); sb.Append($"MERGE INTO {destTable} A USING {tmpTable} B ON (A.{field} = B.{field}"); for (int i = 1; i < table.KeyFields.Length; i++) { field = ProcessFieldName(table.KeyFields[i]); sb.Append($" AND A.{field} = B.{field}"); } sb.Append(")"); field = ProcessFieldName(fields[0]); sb.AppendLine().Append($" WHEN MATCHED THEN UPDATE SET A.{field} = B.{field}"); for (int i = 1; i < fields.Length; i++) { field = ProcessFieldName(fields[i]); sb.Append($", A.{field} = B.{field}"); } sb.Append(";"); // 语句以分号结尾 BuildScriptWithInsertSQL(table, tmpTable, data, filter, out script); script = new MergeScript() { PrepareSQL = $"CREATE GLOBAL TEMPORARY TABLE {tmpTable} ON COMMIT PRESERVE ROWS AS" + $" SELECT {ProcessFieldNames(table.DestFields)} FROM {destTable} WHERE 1 = 0", InsertSQL = script as string, MergeSQL = sb.ToString(), CleanSQL = $"TRUNCATE TABLE {tmpTable}", CleanSQL2 = $"DROP TABLE {tmpTable}" }; }
private void BuildScriptWithUpdate(IDataWrapper data, IDataFilter filter, out object script) { UpdateScript upd = new UpdateScript(); if (data.GetValueByOriName(DocumentField) is BsonDocument doc) { object obj = filter.GetValue(data, -1, DocumentField); if (obj != DBNull.Value && obj != null) { doc = obj as BsonDocument; } upd.Filter = $"{{\"{IDField}\":\"{doc["_id"]}\"}}"; upd.Data.AddRange(doc); upd.Data.Remove(IDField); } else { for (int i = 0; i < data.FieldCount; i++) { string field = data.GetFieldName(i); if (IDField.Equals(field)) { upd.Filter = $"{{\"{IDField}\":\"{filter.GetValue(data, i, data.GetFieldName(i))}\"}}"; } else { upd.Data[data.GetFieldName(i)] = GetValue(filter.GetValue(data, i, data.GetFieldName(i))); } } } script = upd; }
private void BuildScriptWithInsertSQL(Table table, string tableName, IDataWrapper data, IDataFilter filter, out object script) { StringBuilder sb = new StringBuilder(); string[] fields = ExcludeFields(table.DestFields, table.SkipFields); string fieldsSQL = ProcessFieldNames(fields); string tableSQL = ProcessTableName(tableName, table.DestSchema); data.MapFields(fields); sb.Append("INSERT ALL").AppendLine().Append($"INTO {tableSQL} ({fieldsSQL}) VALUES (") .Append(GetFmtValue(filter.GetValue(data, 0, fields[0]))); for (int i = 1; i < fields.Length; i++) { sb.Append(", ").Append(GetFmtValue(filter.GetValue(data, i, fields[i]))); } sb.Append(")"); int r = 1; while (r < table.PageSize && data.Read()) { r++; sb.AppendLine().Append($"INTO {tableSQL} ({fieldsSQL}) VALUES (") .Append(GetFmtValue(filter.GetValue(data, 0, fields[0]))); for (int i = 1; i < fields.Length; i++) { sb.Append(", ").Append(GetFmtValue(filter.GetValue(data, i, fields[i]))); } sb.Append(")"); } sb.AppendLine().Append("SELECT * FROM DUAL"); script = sb.ToString(); }
private void BuildScriptWithMaskSQL(Table table, IDataWrapper data, IDataFilter filter, out object script) { string destTable = ProcessTableName(table.DestName, table.DestSchema); string tmpTable = $"{ExtractTableName(table.DestName)}_{Guid.NewGuid():N}"; string processedTmpTable = ProcessTableName(tmpTable, table.DestSchema); StringBuilder sb = new StringBuilder(); string[] fields = ExcludeFields(table.DestFields, table.KeyFields, table.SkipFields); string field = ProcessFieldName(fields[0]); sb.Append($"update {destTable} A set {field} = B.{field}"); for (int i = 1; i < fields.Length; i++) { field = ProcessFieldName(fields[i]); sb.Append($", {field} = B.{field}"); } field = ProcessFieldName(table.KeyFields[0]); sb.Append($" from {processedTmpTable} B where A.{field} = B.{field}"); for (int i = 1; i < table.KeyFields.Length; i++) { field = ProcessFieldName(table.KeyFields[i]); sb.Append($" and A.{field} = B.{field}"); } BuildScriptWithDataTable(table, data, filter, out script); script = new MergeScript() { TableName = tmpTable, PrepareSQL = $"select {ProcessFieldNames(table.DestFields)} into {processedTmpTable} from {destTable} where 1 = 0", Data = (DataTable)script, UpdateSQL = sb.ToString(), InsertSQL = "", CleanSQL = $"drop table {processedTmpTable}" }; }
private void BuildScriptWithMaskSQL(Table table, IDataWrapper data, IDataFilter filter, out object script) { string destTable = ProcessTableName(table.DestName, table.DestSchema); string tmpTable = ProcessTableName($"{ExtractTableName(table.DestName)}_{Guid.NewGuid():N}", table.DestSchema); BuildScriptWithDataTable(table, data, filter, out script); StringBuilder sb = new StringBuilder(); string[] fields = ExcludeFields(table.DestFields, table.KeyFields, table.SkipFields); string field = ProcessFieldName(fields[0]); sb.Append($"UPDATE {destTable} SET {field} = B.{field}"); for (int i = 1; i < fields.Length; i++) { field = ProcessFieldName(fields[i]); sb.Append($", {field} = B.{field}"); } field = ProcessFieldName(table.KeyFields[0]); sb.Append($" FROM {tmpTable} B WHERE {destTable}.{field} = B.{field}"); for (int i = 1; i < table.KeyFields.Length; i++) { field = ProcessFieldName(table.KeyFields[i]); sb.Append($" AND {destTable}.{field} = B.{field}"); } script = new MergeScript() { TableName = tmpTable, PrepareSQL = $"SELECT {ProcessFieldNames(table.DestFields)} INTO {tmpTable} FROM {destTable} WHERE 1 = 0", Data = ((AppendScript)script).Data, MergeSQL = sb.ToString(), MergeSQL2 = "", CleanSQL = $"DROP TABLE {tmpTable}" }; }
private void IntegrateTaskWithScript(IntegrationTask task, Dictionary <string, object> parms, IDBMSWriter dest, out string failReason) { ConcurrentQueue <object> scripts = new ConcurrentQueue <object>(); bool read = false; string reason = "取消操作"; Parallel.ForEach(CreateThreadAction(), act => { try { // “读”线程:个别数据源读取失败,容错继续执行 if ("read".Equals(act)) { uint bufSize = task.ReadPages * 3; IDataFilter filter = DataFilterFactory.GetFilterByName(task.Table.Filter); IDataWrapper data = null; foreach (Database db in task.Sources) { if (status.Stopped || task.Status == DataStates.Error) { break; } uint fromRow = 1, toRow = task.ReadPages * task.Table.PageSize; Dictionary <string, object> tmpParams = new Dictionary <string, object>(parms); // 连接数据源 if (!Connect(task, db, out IDBMSReader source, null, out _)) { task.Status = DataStates.RunningError; reason = task.ErrorMsg; break; } while (true) { // 等待缓冲区可用 while (scripts.Count > bufSize && !status.Stopped && task.Status != DataStates.Error) { Thread.Sleep(50); } if (status.Stopped || task.Status == DataStates.Error) { break; } // 取数 if (source.QueryPage(task.Table, fromRow, toRow, WithEnums.NoLock, tmpParams, out data)) { try { object script = null; data.MapFields(task.Table.DestFields); while (dest.BuildScript(task.Table, data, filter, out script) && !status.Stopped && task.Status != DataStates.Error) { scripts.Enqueue(script); } // 获取不到预期的记录数,作最后一页处理 if (data.ReadCount != task.ReadPages * task.Table.PageSize || status.Stopped) { break; } } finally { data.Close(); } } else { task.Status = DataStates.RunningError; reason = source.LastError; break; } fromRow = toRow + 1; toRow += task.ReadPages * task.Table.PageSize; } source.Close(); }
public FlowServer UsingWrapper <T>(IDataWrapper <T> wrapper) { flowBinder.Using(wrapper); return(this); }
public bool QueryPage(Table table, uint fromRow, uint toRow, WithEnums with, Dictionary <string, object> parms, out IDataWrapper reader) { StringBuilder sb = new StringBuilder(); // 如果存在主键: // SELECT <B.fieldsSQL> FROM <tableName> B JOIN (SELECT <keyFields> FROM // (SELECT <keyFields>, ROW_NUMBER() OVER (ORDER BY <orderSQL>) AS "_RowNum_" // FROM <tableName> // {WHERE <whereSQL>} // ) A WHERE "_RowNum_" BETWEEN <fromRow> AND <toRow>) A ON <B.keyFields> = <A.keyFields> if (table.KeyFields.Length > 0) { string fieldsSQL = ProcessFieldNames(table.SourceFields, "B"); string tableName = ProcessTableName(table.SourceName, table.SourceSchema); string tableNameWithB = ProcessTableName(table.SourceName, table.SourceSchema, "B"); string keyFields = ProcessFieldNames(table.KeyFields); string keyFieldsWithAlias = ProcessFieldNames(table.KeyFields, ProcessTableName(table.SourceName, table.SourceSchema)); string keyField = ProcessFieldName(table.KeyFields[0]); sb.Append($"SELECT {fieldsSQL} FROM {tableNameWithB} JOIN (SELECT {keyFields} FROM") .Append($" (SELECT {keyFieldsWithAlias}, ROW_NUMBER() OVER (ORDER BY {table.OrderSQL})") .Append($" AS \"_RowNum_\" FROM {tableName}"); if (!string.IsNullOrEmpty(table.WhereSQL)) { if (table.WhereSQL.IndexOf(" WEHRE ", StringComparison.OrdinalIgnoreCase) < 0) { sb.Append(" WHERE"); } sb.Append($" {table.WhereSQL}"); } sb.Append($") A WHERE A.\"_RowNum_\" BETWEEN {fromRow} AND {toRow}) A ON B.{keyField} = A.{keyField}"); for (int i = 1; i < table.KeyFields.Length; i++) { keyField = ProcessFieldName(table.KeyFields[i]); sb.Append($" AND B.{keyField} = A.{keyField}"); } return(Query(sb.ToString(), parms, out reader)); } else { // 语法格式形如: // SELECT <fieldsSQL> FROM (SELECT ROW_NUMBER() OVER (ORDER BY <orderSQL>) // AS "_RowNum_", <fieldsSQL> FROM <tableName> // {WHERE <whereSQL>} // ) A WHERE A."_RowNum_" BETWEEN <fromRow> AND <toRow> string fieldsSQL = ProcessFieldNames(table.SourceFields); string fieldsWithAlias = ProcessFieldNames(table.SourceFields, ProcessTableName(table.SourceName, table.SourceSchema)); sb.Append($"SELECT {fieldsSQL} FROM (SELECT ROW_NUMBER() OVER (ORDER BY {table.OrderSQL})") .Append($" AS \"_RowNum_\", {fieldsWithAlias} FROM {ProcessTableName(table.SourceName, table.SourceSchema)}"); if (!string.IsNullOrEmpty(table.WhereSQL)) { if (table.WhereSQL.IndexOf(" WHERE ", StringComparison.OrdinalIgnoreCase) < 0) { sb.Append(" WHERE"); } sb.Append($" {table.WhereSQL}"); } sb.Append($") A WHERE A.\"_RowNum_\" BETWEEN {fromRow} AND {toRow}"); return(Query(sb.ToString(), parms, out reader)); } }
public static Lut LoadCarTorque([NotNull] IDataWrapper data, bool considerLimiter = true, int detalization = 100) { /* read torque curve and engine params */ var torqueFile = data.GetLutFile("power.lut"); if (torqueFile.IsEmptyOrDamaged()) { throw new FileNotFoundException("Cannot load power.lut", "data/power.lut"); } var engine = data.GetIniFile("engine.ini"); if (engine.IsEmptyOrDamaged()) { throw new FileNotFoundException("Cannot load engine.ini", "data/engine.ini"); } /* prepare turbos and read controllers */ var turbos = ReadTurbos(engine); for (var i = 0; i < turbos.Count; i++) { turbos[i].Controllers = ReadControllers(data.GetIniFile($"ctrl_turbo{i}.ini")); } /* prepare torque curve and limits */ var torque = torqueFile.Values; torque.UpdateBoundingBox(); var limit = considerLimiter && engine.ContainsKey("ENGINE_DATA") ? engine["ENGINE_DATA"].GetDouble("LIMITER", torque.MaxX) : torque.MaxX; var startFrom = considerLimiter ? 0d : torque.MinX; /* build smoothed line */ var result = new Lut(); var previousTorquePoint = 0; var previousRpm = 0d; for (var i = 0; i <= detalization; i++) { var rpm = detalization == 0 ? limit : (limit - startFrom) * i / detalization + startFrom; for (var j = previousTorquePoint; j < torque.Count; j++) { var p = torque[j]; if (p.X > rpm) { previousTorquePoint = j > 0 ? j - 1 : 0; break; } if ((i == 0 || p.X > previousRpm) && p.X < rpm && p.X >= 0) { result.Add(new LutPoint(p.X, ConsiderTurbo(turbos, p.X, p.Y))); } } var baseTorque = torque.InterpolateLinear(rpm); result.Add(new LutPoint(rpm, ConsiderTurbo(turbos, rpm, baseTorque))); previousRpm = rpm; } return(Result(result)); }
public DeleteCommandBase(IDataWrapper <TViewData> source, ICatalog <TViewData> target, Func <bool> condition) : base(new DeleteControllerBase <TViewData>(source, target), condition) { }
bool ICollection <IDataWrapper <T> > .Remove(IDataWrapper <T> item) { throw new NotImplementedException(); }
protected PageViewModelBase(ICatalog <TViewData> catalog) { Catalog = catalog ?? throw new ArgumentNullException(nameof(catalog)); _itemSelected = null; _itemDetails = null; }
int IList <IDataWrapper <T> > .IndexOf(IDataWrapper <T> item) { throw new NotImplementedException(); }
void ICollection <IDataWrapper <T> > .Add(IDataWrapper <T> item) { throw new NotImplementedException(); }
public bool QueryPage(Table table, uint fromRow, uint toRow, WithEnums with, Dictionary <string, object> parms, out IDataWrapper reader) { StringBuilder sb = new StringBuilder(); // 如果主键字段只有一个: // SELECT <fieldsSQL> FROM <tableName> WHERE ROWNUM <= <toRow - fromRow + 1> // { AND <keyField> > @LastMaxKey}{ AND {<whereSQL>}} ORDER BY <keyField> ASC // 其中 // @LastMaxKey = SELECT MAX(<keyField>) AS "_MaxKey_" FROM ( // SELECT <keyField> FROM <tableName> WHERE ROWNUM <= <toRow - fromRow + 1> // { AND <keyField> > @LastMaxKey}{ AND {<whereSQL>}} ORDER BY <keyField> ASC if (table.KeyFields.Length == 1) { string tableName = ProcessTableName(table.SourceName, table.SourceSchema); string keyField = ProcessFieldName(table.KeyFields[0]); string keyFieldWithPrefix = ProcessFieldName(table.KeyFields[0], ProcessTableName(table.SourceName, table.SourceSchema)); // 查询最大键值 sb.Append($"SELECT MAX({keyField}) AS \"_MaxKey_\" FROM (") .Append($"SELECT {keyFieldWithPrefix} FROM {tableName}"); if (!string.IsNullOrEmpty(table.WhereSQL)) { if (table.WhereSQL.IndexOf(" WHERE ", StringComparison.OrdinalIgnoreCase) < 0) { sb.Append(" WHERE"); } sb.Append(" ").Append(table.WhereSQL); if (parms.ContainsKey("LastMaxKey")) { sb.Append($" AND {keyFieldWithPrefix} > @LastMaxKey"); } sb.Append(" AND"); } else if (parms.ContainsKey("LastMaxKey")) { sb.Append($" WHERE {keyFieldWithPrefix} > @LastMaxKey AND"); } else { sb.Append(" WHERE"); } sb.Append($" ROWNUM <= {toRow - fromRow + 1} ORDER BY {keyFieldWithPrefix} ASC) A"); if (QueryMaxKey(sb.ToString(), parms, out object maxValue)) { string fieldsSQL = ProcessFieldNames(table.SourceFields, ProcessTableName(table.SourceName, table.SourceSchema)); sb.Length = 0; sb.Append($"SELECT {fieldsSQL} FROM {tableName}"); if (!string.IsNullOrEmpty(table.WhereSQL)) { if (table.WhereSQL.IndexOf(" WHERE ", StringComparison.OrdinalIgnoreCase) < 0) { sb.Append(" WHERE"); } sb.Append(" ").Append(table.WhereSQL); if (parms.ContainsKey("LastMaxKey")) { sb.Append($" AND {keyFieldWithPrefix} > @LastMaxKey"); } sb.Append(" AND"); } else if (parms.ContainsKey("LastMaxKey")) { sb.Append($" WHERE {keyFieldWithPrefix} > @LastMaxKey AND"); } else { sb.Append(" WHERE"); } sb.Append($" ROWNUM <= {toRow - fromRow + 1} ORDER BY {keyFieldWithPrefix} ASC"); bool rst = Query(sb.ToString(), parms, out reader); parms["LastMaxKey"] = maxValue; return(rst); } else { reader = null; return(false); } } // 如果存在复合主键: // SELECT <B.fieldsSQL> FROM <tableName> B JOIN (SELECT <keyFields> FROM // (SELECT <keyFields>, ROW_NUMBER() OVER (ORDER BY <orderSQL>) AS "_RowNum_" // FROM <tableName> // {WHERE <whereSQL>} // ) A WHERE "_RowNum_" BETWEEN <fromRow> AND <toRow>) A ON <B.keyFields> = <A.keyFields> else if (table.KeyFields.Length > 1) { string fieldsSQL = ProcessFieldNames(table.SourceFields, "B"); string tableName = ProcessTableName(table.SourceName, table.SourceSchema); string tableNameWithB = ProcessTableName(table.SourceName, table.SourceSchema, "B"); string keyFields = ProcessFieldNames(table.KeyFields); string keyFieldsWithAlias = ProcessFieldNames(table.KeyFields, ProcessTableName(table.SourceName, table.SourceSchema)); string keyField = ProcessFieldName(table.KeyFields[0]); sb.Append($"SELECT {fieldsSQL} FROM {tableNameWithB} JOIN (SELECT {keyFields} FROM") .Append($" (SELECT {keyFieldsWithAlias}, ROW_NUMBER() OVER (ORDER BY {table.OrderSQL})") .Append($" AS \"_RowNum_\" FROM {tableName}"); if (!string.IsNullOrEmpty(table.WhereSQL)) { if (table.WhereSQL.IndexOf(" WEHRE ", StringComparison.OrdinalIgnoreCase) < 0) { sb.Append(" WHERE"); } sb.Append($" {table.WhereSQL}"); } sb.Append($") A WHERE A.\"_RowNum_\" BETWEEN {fromRow} AND {toRow}) A ON B.{keyField} = A.{keyField}"); for (int i = 1; i < table.KeyFields.Length; i++) { keyField = ProcessFieldName(table.KeyFields[i]); sb.Append($" AND B.{keyField} = A.{keyField}"); } return(Query(sb.ToString(), parms, out reader)); } else { // 语法格式形如: // SELECT <fieldsSQL> FROM (SELECT ROW_NUMBER() OVER (ORDER BY <orderSQL>) // AS "_RowNum_", <fieldsSQL> FROM <tableName> // {WHERE <whereSQL>} // ) A WHERE A."_RowNum_" BETWEEN <fromRow> AND <toRow> string fieldsSQL = ProcessFieldNames(table.SourceFields); string fieldsWithAlias = ProcessFieldNames(table.SourceFields, ProcessTableName(table.SourceName, table.SourceSchema)); sb.Append($"SELECT {fieldsSQL} FROM (SELECT ROW_NUMBER() OVER (ORDER BY {table.OrderSQL})") .Append($" AS \"_RowNum_\", {fieldsWithAlias} FROM {ProcessTableName(table.SourceName, table.SourceSchema)}"); if (!string.IsNullOrEmpty(table.WhereSQL)) { if (table.WhereSQL.IndexOf(" WHERE ", StringComparison.OrdinalIgnoreCase) < 0) { sb.Append(" WHERE"); } sb.Append($" {table.WhereSQL}"); } sb.Append($") A WHERE A.\"_RowNum_\" BETWEEN {fromRow} AND {toRow}"); return(Query(sb.ToString(), parms, out reader)); } }
public WrapperInfo(Type type, IDataWrapper <object> wrapper) { Type = type; DataWrapper = wrapper; }
protected CRUDControllerBase(IDataWrapper <TData> source, ICatalog <TData> target) { Source = source; Target = target; }
bool ICollection <IDataWrapper <T> > .Contains(IDataWrapper <T> item) { throw new NotImplementedException(); }
void ICollection <IDataWrapper <T> > .Add(IDataWrapper <T> item) { throw new NotSupportedException(); }
void IList <IDataWrapper <T> > .Insert(int index, IDataWrapper <T> item) { throw new NotImplementedException(); }
bool ICollection <IDataWrapper <T> > .Contains(IDataWrapper <T> item) { throw new NotSupportedException(); }
public virtual void OnItemSelectionChanged(IDataWrapper <TViewData> vmoWrapper) { ItemSelectionChanged?.Invoke(vmoWrapper); }
bool ICollection <IDataWrapper <T> > .Remove(IDataWrapper <T> item) { throw new NotSupportedException(); }
public CRUDCommandManagerViewStateDependent(IDataWrapper <TViewData> source, ICatalog <TViewData> target, IHasViewState viewStateObject) : base(source, target) { _viewStateObject = viewStateObject ?? throw new ArgumentException(nameof(_viewStateObject)); }
public IEnumerable <T> ExecutePaginatedQuery <T, TU, TK>(Uri url, List <IUrlParameter> urlParameters, bool includeApiHeaders, TK pageData, IDataWrapper <T, TU> dataWrapper) { return(new FilesEnumator <T, TU, TK>(this, url, urlParameters, includeApiHeaders, pageData, dataWrapper)); }
public PublishedPostController(IDataWrapper dataWrapper) { _data = dataWrapper; }
public IniFileSection([CanBeNull] IDataWrapper wrapper, IniFileSection original) : base(original) { _wrapper = wrapper; Commentary = original.Commentary; Commentaries = original.Commentaries == null ? null : new Dictionary <string, string>(original.Commentaries); }
public DeleteControllerBase(IDataWrapper <TVMO> source, ICatalog <TVMO> target) : base(source, target) { }
public IniFileSection([CanBeNull] IDataWrapper wrapper) { _wrapper = wrapper; }