public void SetFromSelection(IItemTrackSelectionInfo t, IActivity activity)
 {
     // Set from activity: this.ItemReferenceId = t.ItemReferenceId;
     this.MarkedDistances    = t.MarkedDistances;
     this.m_MarkedTimes      = t.MarkedTimes;
     this.m_SelectedDistance = t.SelectedDistance;
     this.m_SelectedTime     = t.SelectedTime;
     this.Activity           = activity;
 }
Esempio n. 2
0
        //Note: IItemTrackSelectionInfo uses Activity distances, avoid...
        //public TrailResultMarked(TrailResult tr, IValueRangeSeries<double> t)
        //{
        //    trailResult = tr;
        //    selInfo.MarkedDistances = t;
        //}

        public TrailResultMarked(TrailResult tr, IItemTrackSelectionInfo t)
        {
            this.trailResult = tr;
            this.selInfo.SetFromSelection(t, tr.Activity);
            if (selInfo.MarkedTimes != null)
            {
                selInfo.MarkedTimes = TrailsItemTrackSelectionInfo.excludePauses(selInfo.MarkedTimes, tr.Pauses);
            }
            //Note that SelectedTime can still include paused time
        }
 public void Union(IItemTrackSelectionInfo t)
 {
     if (m_MarkedTimes == null)
     {
         m_MarkedTimes = t.MarkedTimes;
     }
     else if (t.MarkedTimes != null)
     {
         foreach (IValueRange <DateTime> i in t.MarkedTimes)
         {
             m_MarkedTimes.Add(i);
         }
     }
     if (m_MarkedDistances == null)
     {
         m_MarkedDistances = t.MarkedDistances;
     }
     else if (t.MarkedDistances != null)
     {
         foreach (IValueRange <double> i in t.MarkedDistances)
         {
             m_MarkedDistances.Add(i);
         }
     }
     if (m_SelectedTime == null)
     {
         m_SelectedTime = t.SelectedTime;
     }
     else if (t.SelectedTime != null)
     {
         DateTime Lower = m_SelectedTime.Lower.CompareTo(t.SelectedTime.Lower) < 0 ?
                          m_SelectedTime.Lower : t.SelectedTime.Lower;
         DateTime Upper = m_SelectedTime.Upper.CompareTo(t.SelectedTime.Upper) > 0 ?
                          m_SelectedTime.Upper : t.SelectedTime.Upper;
         m_SelectedTime = new ValueRange <DateTime>(Lower, Upper);
     }
     if (m_SelectedDistance == null)
     {
         m_SelectedDistance = t.SelectedDistance;
     }
     else if (t.SelectedDistance != null)
     {
         double Lower = Math.Min(m_SelectedDistance.Lower, t.SelectedDistance.Lower);
         double Upper = Math.Max(m_SelectedDistance.Upper, t.SelectedDistance.Upper);
         m_SelectedDistance = new ValueRange <double>(Lower, Upper);
     }
 }
        public TimePredictionSource(IItemTrackSelectionInfo info)
        {
            if (info is TrailsItemTrackSelectionInfo)
            {
                //Assume format is Trails for now, all info in MarkedTimes
                //The times could be used too, converting back and forward now...
                TrailsItemTrackSelectionInfo tinfo = info as TrailsItemTrackSelectionInfo;

                this.Activity = tinfo.Activity;
                this.UsedDistance = 0;
                this.UsedTime = TimeSpan.Zero;

                bool first = true;
                IDistanceDataTrack distanceTrack =
                        ActivityInfoCache.Instance.GetInfo(Activity).MovingDistanceMetersTrack;
                foreach (ValueRange<DateTime> t in tinfo.MarkedTimes)
                {
                    TimeSpan lowerTime = ZoneFiveSoftware.Common.Data.Algorithm.DateTimeRangeSeries.TimeNotPaused(
                      Activity.StartTime, t.Lower, Activity.TimerPauses);
                    TimeSpan upperTime = ZoneFiveSoftware.Common.Data.Algorithm.DateTimeRangeSeries.TimeNotPaused(
                      Activity.StartTime, t.Upper, Activity.TimerPauses);

                    float lowerDist = distanceTrack.GetInterpolatedValue(t.Lower).Value;
                    float upperDist = distanceTrack.GetInterpolatedValue(t.Upper).Value;
                    if (first)
                    {
                        this.StartDistance = lowerDist;
                        this.offsetTime = lowerTime.TotalSeconds;
                        first = false;
                    }
                    this.UsedTime += upperTime - lowerTime;
                    this.UsedDistance += upperDist - lowerDist;
                }
            }
            else
            {
                //Need to get activity from logbook, adjust distances etc
                throw new NotImplementedException("Expects IItemTrackSelectionInfo as TrailsItemTrackSelectionInfo");
            }
        }
Esempio n. 5
0
        internal static IList <float[]> GetChartResultFromActivity(bool xIsTime, bool isOffset, TrailResult tr, TrailResult ReferenceTrailResult, IItemTrackSelectionInfo sel)
        {
            IList <float[]> result = new List <float[]>();

            //Currently only one range but several regions in the chart can be selected
            //Only use one of the selections
            if (sel.MarkedTimes != null)
            {
                foreach (IValueRange <DateTime> v in sel.MarkedTimes)
                {
                    result.Add(GetChartResultFromDateTime(xIsTime, isOffset, tr, ReferenceTrailResult, v));
                }
            }
            else if (sel.MarkedDistances != null)
            {
                foreach (IValueRange <double> v in sel.MarkedDistances)
                {
                    result.Add(GetChartResultFromDistResult(xIsTime, isOffset, tr, ReferenceTrailResult, v));
                }
            }
            else if (sel.SelectedTime != null)
            {
                result.Add(GetChartResultFromDateTime(xIsTime, isOffset, tr, ReferenceTrailResult, sel.SelectedTime));
            }
            else if (sel.SelectedDistance != null)
            {
                result.Add(GetChartResultFromDistResult(xIsTime, isOffset, tr, ReferenceTrailResult, sel.SelectedDistance));
            }
            return(result);
        }
 public TrailResultMarked(TrailResult tr, IItemTrackSelectionInfo t)
 {
     trailResult = tr;
     selInfo.SetFromSelection(t, tr.Activity);
 }
 public void SetFromSelection(IItemTrackSelectionInfo t, IActivity activity)
 {
     // Set from activity: this.ItemReferenceId = t.ItemReferenceId;
     this.MarkedDistances = t.MarkedDistances;
     this.m_MarkedTimes = t.MarkedTimes;
     this.m_SelectedDistance = t.SelectedDistance;
     this.m_SelectedTime = t.SelectedTime;
     this.Activity = activity;
 }
 public void Union(IItemTrackSelectionInfo t)
 {
     if (m_MarkedTimes == null)
     {
         m_MarkedTimes = t.MarkedTimes;
     }
     else if (t.MarkedTimes != null)
     {
         foreach (IValueRange<DateTime> i in t.MarkedTimes)
         {
             m_MarkedTimes.Add(i);
         }
     }
     if (m_MarkedDistances == null)
     {
         m_MarkedDistances = t.MarkedDistances;
     }
     else if (t.MarkedDistances != null)
     {
         foreach (IValueRange<double> i in t.MarkedDistances)
         {
             m_MarkedDistances.Add(i);
         }
     }
     if (m_SelectedTime == null)
     {
         m_SelectedTime = t.SelectedTime;
     }
     else if (t.SelectedTime != null)
     {
         DateTime Lower = m_SelectedTime.Lower.CompareTo(t.SelectedTime.Lower) < 0 ?
            m_SelectedTime.Lower : t.SelectedTime.Lower;
         DateTime Upper = m_SelectedTime.Upper.CompareTo(t.SelectedTime.Upper) > 0 ?
            m_SelectedTime.Upper : t.SelectedTime.Upper;
         m_SelectedTime = new ValueRange<DateTime>(Lower, Upper);
     }
     if (m_SelectedDistance == null)
     {
         m_SelectedDistance = t.SelectedDistance;
     }
     else if (t.SelectedDistance != null)
     {
         double Lower = Math.Min(m_SelectedDistance.Lower, t.SelectedDistance.Lower);
         double Upper = Math.Max(m_SelectedDistance.Upper, t.SelectedDistance.Upper);
         m_SelectedDistance = new ValueRange<double>(Lower, Upper);
     }
 }