public static DurationFieldBinder <T> Bind <T>( this DurationField <T> field, StorageObjectID storageobjectID, EditorFile file ) => new DurationFieldBinder <T>( storageobjectID, file, field );
public static void OverwriteEverythingToRight <T>( this DurationField <T> field, T item, Time start ) => ScootAndOverwrite( field, item, new Duration { Start = start, End = field .Intersecting(start) .Max(item2 => item2.Duration.End) } );
public static void ScootAndOverwrite <T>( this DurationField <T> field, T item, Duration duration ) { foreach (var oldstaff in field.Intersecting(duration).ToArray()) { field.Remove(oldstaff); foreach (var cutduration in oldstaff.Duration.Subtract(duration)) { field.Add(oldstaff.Value, cutduration); } } field.Add(item, duration); }