本文整理汇总了C#中Assignment.GetWorkFunctor方法的典型用法代码示例。如果您正苦于以下问题:C# Assignment.GetWorkFunctor方法的具体用法?C# Assignment.GetWorkFunctor怎么用?C# Assignment.GetWorkFunctor使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Assignment
的用法示例。
在下文中一共展示了Assignment.GetWorkFunctor方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetTimePhaseData
/// <summary>
/// Gets the time phase data.
/// </summary>
/// <param name="assignment">The assignment.</param>
/// <param name="type">The type.</param>
/// <returns></returns>
public static IEnumerable<TimePhasedDataType> GetTimePhaseData(Assignment.Assignment assignment, TimePhasedDataType.TimePhaseType type)
{
if(assignment == null)
throw new ArgumentException("assignment");
//определяем величину дискретизации для генератора интервалов.
//Если ее определить слишком маленькую то будет много TimePhases елементов
//Для плоского распределения трудозатрат использовать ДЕНЬ для нелинейных функций использовать ЧАС
long groupIntervalValue = assignment.CurrentContour.ContourType == ContourTypes.Flat ? CalendarHelper.MilisPerDay() : CalendarHelper.MilisPerHour();
long start = type == TimePhasedDataType.TimePhaseType.AssignmentActualWork ? assignment.Start : assignment.Stop;
long stop = type == TimePhasedDataType.TimePhaseType.AssignmentActualWork ? assignment.Stop : assignment.End;
Query<Interval> query = new Query<Interval>();
AssignmentBaseFunctor<double> workFunctor = assignment.GetWorkFunctor();
GroupingIntervalGenerator groupGen = new GroupingIntervalGenerator(start, stop, groupIntervalValue,
workFunctor.CountourGenerator);
TimePhaseDataGetter timePhaseGetter = new TimePhaseDataGetter(type, TimePhasedDataType.TimePhaseUnit.Day,
TimePhasedDataType.TimePhaseUnit.Minute, workFunctor);
WhereInRangePredicate whereInRange = new WhereInRangePredicate(start, stop);
query.Select(timePhaseGetter).From(groupGen).Where(whereInRange.Evaluate).Execute();
return timePhaseGetter.Value;
}