Esempio n. 1
0
 private void AdjustLengthAndActivities(IActivitiesSequence activitiesContainer)
 {
     // adjust channel start times to be equal or later to instance/channel start and
     activitiesContainer.Activities[0].StartTime = activitiesContainer.StartTime;
     for (int i = 1; i < activitiesContainer.Activities.Count; i++)
     {
         var firstActiv  = activitiesContainer.Activities[i - 1];
         var secondActiv = activitiesContainer.Activities[i];
         if (secondActiv.StartTime < firstActiv.EndTime)
         {
             secondActiv.StartTime = firstActiv.EndTime;
             secondActiv.EndTime   = secondActiv.StartTime + secondActiv.Span;
         }
     }
     if (activitiesContainer.Activities.Count > 0)
     {
         activitiesContainer.EndTime = activitiesContainer.Activities.Last().EndTime;
         activitiesContainer.Span    = activitiesContainer.EndTime - activitiesContainer.StartTime;
         if (Instance.UnitSizeInSeconds != 0)
         {
             Helpers.NearestDivisibleBy(activitiesContainer.Span.TotalSeconds, Instance.UnitSizeInSeconds, out int numberOfUnits);
             activitiesContainer.SpanUnits = numberOfUnits;
         }
     }
 }
Esempio n. 2
0
        private void AdjustStartTime(IActivitiesSequence activitiesContainer, DateTime earliestPossibleStart)
        {
            if (activitiesContainer.StartTime < earliestPossibleStart)
            {
                activitiesContainer.StartTime = earliestPossibleStart;
            }

            TimeSpan span           = activitiesContainer.StartTime - earliestPossibleStart;
            double   spanSeconds    = Helpers.NearestDivisibleBy(span.TotalSeconds, Instance.UnitSizeInSeconds, out int number);
            TimeSpan timeAfterStart = new TimeSpan(0, 0, Convert.ToInt32(spanSeconds));

            activitiesContainer.StartTime = earliestPossibleStart + timeAfterStart;
            var activity = activitiesContainer.Activities.FirstOrDefault();

            if (activity != null)
            {
                activity.StartTime = activitiesContainer.StartTime;
                activity.EndTime   = activity.StartTime + activity.Span;
            }
        }