本文整理汇总了C#中ITimePeriod.Setup方法的典型用法代码示例。如果您正苦于以下问题:C# ITimePeriod.Setup方法的具体用法?C# ITimePeriod.Setup怎么用?C# ITimePeriod.Setup使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ITimePeriod
的用法示例。
在下文中一共展示了ITimePeriod.Setup方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Add
/// <summary>
/// 새로운 <paramref name="item"/>을 Chain의 제일 끝에 붙여 넣습니다. <paramref name="item"/>의 기간이 변경됩니다.
/// </summary>
/// <param name="item"></param>
public override void Add(ITimePeriod item) {
item.ShouldNotBeNull("item");
item.AssertMutable();
ITimePeriod last = Last;
if(last != null) {
AssertSpaceAfter(last.End, item.Duration);
item.Setup(last.End, last.End.Add(item.Duration));
}
if(IsDebugEnabled)
log.Debug("Period를 Chain의 끝에 추가합니다. item=[{0}]", item);
_periods.Add(item);
}
示例2: Insert
// ----------------------------------------------------------------------
public virtual void Insert( int index, ITimePeriod period )
{
if ( index < 0 || index > Count )
{
throw new ArgumentOutOfRangeException( "index" );
}
if ( period == null )
{
throw new ArgumentNullException( "period" );
}
CheckReadOnlyItem( period );
TimeSpan itemDuration = period.Duration;
ITimePeriod previous = null;
ITimePeriod next = null;
if ( Count > 0 )
{
if ( index > 0 )
{
previous = this[ index - 1 ];
CheckSpaceAfter( End, itemDuration );
}
if ( index < Count - 1 )
{
next = this[ index ];
CheckSpaceBefore( Start, itemDuration );
}
}
periods.Insert( index, period );
// adjust time periods after the inserted item
if ( previous != null )
{
period.Setup( previous.End, previous.End + period.Duration );
for ( int i = index + 1; i < Count; i++ )
{
DateTime previousStart = this[ i ].Start.Add( itemDuration );
this[ i ].Setup( previousStart, previousStart.Add( this[ i ].Duration ) );
}
}
// adjust time periods before the inserted item
if ( next == null )
{
return;
}
DateTime nextStart = next.Start.Subtract( itemDuration );
period.Setup( nextStart, nextStart.Add( period.Duration ) );
for ( int i = 0; i < index - 1; i++ )
{
nextStart = this[ i ].Start.Subtract( itemDuration );
this[ i ].Setup( nextStart, nextStart.Add( this[ i ].Duration ) );
}
}
示例3: Insert
/// <summary>
/// <see cref="ITimePeriod"/>의 Chain의 <paramref name="index"/>번째에 <paramref name="item"/>을 삽입합니다. 선행 Period와 후행 Period의 기간 값이 조정됩니다.
/// </summary>
/// <param name="index">추가할 위치</param>
/// <param name="item">추가할 기간</param>
public override void Insert(int index, ITimePeriod item) {
item.ShouldNotBeNull("item");
Guard.Assert<ArgumentOutOfRangeException>(index >= 0 && index <= Count, "인덱스 범위가 잘못되었습니다. Count=[{0}], index=[{1}]", Count,
index);
item.AssertMutable();
if(IsDebugEnabled)
log.Debug("Chain의 인덱스[{0}]에 새로운 요소[{1}]를 삽입합니다...", index, item);
var itemDuration = item.Duration;
ITimePeriod previousItem = null;
ITimePeriod nextItem = null;
if(Count > 0) {
if(index > 0) {
previousItem = this[index - 1];
AssertSpaceAfter(End, itemDuration);
}
if(index < Count - 1) {
nextItem = this[index];
AssertSpaceBefore(Start, itemDuration);
}
}
_periods.Insert(index, item);
if(previousItem != null) {
if(IsDebugEnabled)
log.Debug("선행 Period에 기초하여 삽입한 Period와 후행 Period들의 시간을 조정합니다...");
item.Setup(previousItem.End, previousItem.End.Add(itemDuration));
for(int i = index + 1; i < Count; i++) {
var startTime = this[i].Start.Add(itemDuration);
this[i].Setup(startTime, startTime.Add(this[i].Duration));
}
}
if(nextItem != null) {
if(IsDebugEnabled)
log.Debug("후행 Period에 기초하여 삽입한 Period와 선행 Period들의 시간을 조정합니다...");
var nextStart = nextItem.Start.Subtract(itemDuration);
item.Setup(nextStart, nextStart.Add(itemDuration));
for(var i = 0; i < index - 1; i++) {
nextStart = this[i].Start.Subtract(itemDuration);
this[i].Setup(nextStart, nextStart.Add(this[i].Duration));
}
}
}
示例4: Add
// ----------------------------------------------------------------------
public virtual void Add( ITimePeriod item )
{
if ( item == null )
{
throw new ArgumentNullException( "item" );
}
CheckReadOnlyItem( item );
ITimePeriod last = Last;
if ( last != null )
{
CheckSpaceAfter( last.End, item.Duration );
item.Setup( last.End, last.End.Add( item.Duration ) );
}
periods.Add( item );
}