예제 #1
0
        /***************************************************/

        internal static void removePause(IValueRangeSeries <DateTime> pauses, DateTime startTime, DateTime endTime)
        {
            for (int i = 0; i < pauses.Count;)
            {
                IValueRange <DateTime> t = pauses[i];
                if (t.Lower < startTime && startTime <= t.Upper)
                {
                    pauses.RemoveAt(i);
                    if (endTime < t.Upper)
                    {
                        IValueRange <DateTime> t2 = new ValueRange <DateTime>(endTime, t.Upper);
                        pauses.Add(t2);
                    }
                }
                else if (t.Lower < endTime && endTime <= t.Upper)
                {
                    pauses.RemoveAt(i);
                    IValueRange <DateTime> t2 = new ValueRange <DateTime>(startTime, t.Lower);
                    pauses.Add(t2);
                }
                else
                {
                    i++;
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Return user's console input in range of values
        /// </summary>
        /// <param name="accompanyingMessage"></param>
        /// <param name="rangeOfValidInput"></param>
        /// <returns>A number in the range
        /// <paramref name="rangeOfValidInput"/></returns>
        /// <exception cref="System.IO.IOException"></exception>
        public static int InputNumber(string accompanyingMessage,
                                      IValueRange <int> rangeOfValidInput)
        {
            string userInput;

            do
            {
                Console.Write(accompanyingMessage);
                userInput = Console.ReadLine();
            } while (!IsValidInput(userInput, rangeOfValidInput));

            return(Convert.ToInt32(userInput));
        }
예제 #3
0
 public TrailResultMarked(TrailResult tr, IValueRange <DateTime> t)
 {
     this.trailResult          = tr;
     this.selInfo.SelectedTime = t; //include pauses
     this.selInfo.Activity     = tr.Activity;
 }
예제 #4
0
 private static float[] GetChartResultFromDistResult(bool xIsTime, bool isOffset, TrailResult tr, TrailResult ReferenceTrailResult, IValueRange <double> v)
 {
     //Note: Selecting in Route gives unpaused distance, but this should be handled in the selection
     if (xIsTime)
     {
         DateTime d1 = tr.GetDateTimeFromDistActivity(v.Lower);
         DateTime d2 = tr.GetDateTimeFromDistActivity(v.Upper);
         return(GetTimeChartResultFromDateTime(isOffset, tr, ReferenceTrailResult, d1, d2));
     }
     else
     {
         double t1 = tr.GetDistResultFromDistActivity(v.Lower);
         double t2 = tr.GetDistResultFromDistActivity(v.Upper);
         return(GetDistChartResultFromDistResult(isOffset, tr, ReferenceTrailResult, t1, t2));
     }
 }
예제 #5
0
        private static float[] GetChartResultFromDateTime(bool xIsTime, bool isOffset, TrailResult tr, TrailResult ReferenceTrailResult, IValueRange <DateTime> v)
        {
            DateTime d1 = v.Lower;
            DateTime d2 = v.Upper;

            if (xIsTime)
            {
                return(GetTimeChartResultFromDateTime(isOffset, tr, ReferenceTrailResult, d1, d2));
            }
            else
            {
                double t1 = tr.GetDistResult(d1);
                double t2 = tr.GetDistResult(d2);
                return(GetDistChartResultFromDistResult(isOffset, tr, ReferenceTrailResult, t1, t2));
            }
        }
 public static double Amplitude(this IValueRange <double> valueRange)
 {
     return(valueRange.UpperValueOfRange - valueRange.LowerValueOfRange);
 }
 public static int Amplitude(this IValueRange <int> valueRange)
 {
     return(valueRange.UpperValueOfRange - valueRange.LowerValueOfRange);
 }
예제 #8
0
 private static bool IsValidInput(string userInput,
                                  IValueRange <int> rangeOfValidInput)
 {
     return(int.TryParse(userInput, out var input) &&
            rangeOfValidInput.Contains(input));
 }