本文整理汇总了C#中IExecutionContext.UpdateDetailTimelineRecord方法的典型用法代码示例。如果您正苦于以下问题:C# IExecutionContext.UpdateDetailTimelineRecord方法的具体用法?C# IExecutionContext.UpdateDetailTimelineRecord怎么用?C# IExecutionContext.UpdateDetailTimelineRecord使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IExecutionContext
的用法示例。
在下文中一共展示了IExecutionContext.UpdateDetailTimelineRecord方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessTaskDetailCommand
//.........这里部分代码省略.........
if (!String.IsNullOrEmpty(data))
{
record.CurrentOperation = data;
}
string result;
if (eventProperties.TryGetValue(TaskDetailEventProperties.Result, out result))
{
record.Result = EnumUtil.TryParse<TaskResult>(result) ?? TaskResult.Succeeded;
}
String startTime;
if (eventProperties.TryGetValue(TaskDetailEventProperties.StartTime, out startTime))
{
record.StartTime = ParseDateTime(startTime, DateTime.UtcNow);
}
String finishtime;
if (eventProperties.TryGetValue(TaskDetailEventProperties.FinishTime, out finishtime))
{
record.FinishTime = ParseDateTime(finishtime, DateTime.UtcNow);
}
String state;
if (eventProperties.TryGetValue(TaskDetailEventProperties.State, out state))
{
record.State = ParseTimelineRecordState(state, TimelineRecordState.Pending);
}
TimelineRecord trackingRecord;
// in front validation as much as possible.
// timeline record is happened in back end queue, user will not receive result of the timeline record updates.
// front validation will provide user better understanding when things went wrong.
if (_timelineRecordsTracker.TryGetValue(record.Id, out trackingRecord))
{
// we already created this timeline record
// make sure parentid does not changed.
if (record.ParentId != null &&
record.ParentId != trackingRecord.ParentId)
{
throw new Exception(StringUtil.Loc("CannotChangeParentTimelineRecord"));
}
else if (record.ParentId == null)
{
record.ParentId = trackingRecord.ParentId;
}
// populate default value for empty field.
if (record.State == TimelineRecordState.Completed)
{
if (record.PercentComplete == null)
{
record.PercentComplete = 100;
}
if (record.FinishTime == null)
{
record.FinishTime = DateTime.UtcNow;
}
}
}
else
{
// we haven't created this timeline record
// make sure we have name/type and parent record has created.
if (string.IsNullOrEmpty(record.Name))
{
throw new Exception(StringUtil.Loc("NameRequiredForTimelineRecord"));
}
if (string.IsNullOrEmpty(record.RecordType))
{
throw new Exception(StringUtil.Loc("TypeRequiredForTimelineRecord"));
}
if (record.ParentId != null && record.ParentId != Guid.Empty)
{
if (!_timelineRecordsTracker.ContainsKey(record.ParentId.Value))
{
throw new Exception(StringUtil.Loc("ParentTimelineNotCreated"));
}
}
// populate default value for empty field.
if (record.StartTime == null)
{
record.StartTime = DateTime.UtcNow;
}
if (record.State == null)
{
record.State = TimelineRecordState.InProgress;
}
}
context.UpdateDetailTimelineRecord(record);
_timelineRecordsTracker[record.Id] = record;
}