} // ctor internal static bool TryResolveByDataSetName(IServiceProvider sp, string datasetName, bool throwException, out PpsDataSetDefinition dataset) { if (datasetName != null) { var info = sp.GetService <IPpsDataSetProvider>(throwException); dataset = info?.TryGetDataSetDefinition(datasetName, throwException); return(dataset != null); } else if (throwException) { throw new ArgumentNullException(nameof(datasetName)); } dataset = null; return(false); } // func TryResolveByDataSetName
} // func TryResolveByDataSetName private static bool TryResolveByFunction(IServiceProvider sp, Func <object> getDataSet, out PpsDataSetDefinition dataset) { switch (getDataSet?.Invoke()) { case PpsDataSet ds: dataset = ds.DataSetDefinition; return(true); case PpsDataSetDefinition ds: dataset = ds; return(true); default: dataset = null; return(false); } } // func TryResolveByFunction
} // ctor private static PpsDataTableDefinition ResolveDataTable(PpsDataSetDefinition dataset, string tableName) => dataset.FindTable(tableName) ?? throw new ArgumentOutOfRangeException(nameof(tableName), tableName, "Could not resolve table.");
} // ctor /// <summary></summary> /// <param name="dataset"></param> public PpsDataSetResolver(PpsDataSetDefinition dataset) { this.dataset = dataset ?? throw new ArgumentNullException(nameof(dataset)); } // ctor
} // ctor /// <summary></summary> /// <param name="dataset"></param> /// <returns></returns> public override PpsDataTableDefinition Clone(PpsDataSetDefinition dataset) => new PpsDataTableServerDefinition((PpsDataSetServerDefinition)dataset, this);