本文整理汇总了C#中Irony.Interpreter.ScriptThread.GetDataSource方法的典型用法代码示例。如果您正苦于以下问题:C# ScriptThread.GetDataSource方法的具体用法?C# ScriptThread.GetDataSource怎么用?C# ScriptThread.GetDataSource使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Irony.Interpreter.ScriptThread
的用法示例。
在下文中一共展示了ScriptThread.GetDataSource方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Sum
public static object Sum(ScriptThread thread, AstNode[] childNodes) {
double sum = 0;
var fieldName = childNodes[0].Evaluate(thread).ToString();
var dataSource = thread.GetDataSource();
var grouped = ImportAggregateHelper.IsGrouped(dataSource);
if (grouped != null) {
foreach (var element in grouped) {
var s = element.Sum(o => {
var v = ReadValueFromObject(fieldName, o);
return TypeNormalizer.EnsureType<double>(v);
});
sum = sum + s;
}
} else {
if (ImportAggregateHelper.FieldExist(dataSource.FirstOrDefault(),fieldName)) {
sum = dataSource.Sum(o => {
var v = ReadValueFromObject(fieldName, o);
return TypeNormalizer.EnsureType<double>(v);
});
}
}
return sum.ToString();
}
示例2: Sum
public static object Sum(ScriptThread thread, AstNode[] childNodes)
{
double sum = 0;
object firstItem = null;
bool isTimeSpan;
var fieldName = childNodes[0].Evaluate(thread).ToString();
var dataSource = thread.GetDataSource();
var grouped = ImportAggregateHelper.IsGrouped(dataSource);
if (grouped != null) {
var firstGroupElement = dataSource.FirstOrDefault() as IGrouping<object, object>;
firstItem = firstGroupElement.FirstOrDefault();
isTimeSpan = HandleTimeSpan(firstItem,fieldName);
double groupSum = 0;
foreach (var element in grouped) {
if (isTimeSpan) {
groupSum = element.Sum(o => {return TimeSpanSum(fieldName,o);});
} else {
groupSum = element.Sum(o => {return SimpleSum(fieldName,o);});
}
sum = sum + groupSum;
}
} else {
firstItem = dataSource.FirstOrDefault();
isTimeSpan = HandleTimeSpan(firstItem,fieldName);
if (ImportAggregateHelper.FieldExist(dataSource.FirstOrDefault(),fieldName)) {
if (isTimeSpan) {
sum = dataSource.Sum(o => {return TimeSpanSum(fieldName,o); });
} else {
sum = dataSource.Sum(o => {return SimpleSum(fieldName,o); });
}
}
}
return sum.ToString();
}