Beispiel #1
0
 public static DurationFieldBinder <T> Bind <T>(
     this DurationField <T> field,
     StorageObjectID storageobjectID,
     EditorFile file
     ) =>
 new DurationFieldBinder <T>(
     storageobjectID,
     file,
     field
     );
Beispiel #2
0
 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)
 }
     );
Beispiel #3
0
        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);
        }