Exemple #1
0
        public virtual bool SetNewTime(DateTime start, DateTime end)
        {
            if (end.Equals(default(DateTime)))
            {
                Start = start;
                return(true);
            }

            if (end <= start)
            {
                return(false);
            }
            var newStartValue = TimeRange.StartValue + Convert.ToInt32(start.Subtract(Start).TotalMinutes);
            var newEndValue   = TimeRange.EndValue + Convert.ToInt32(end.Subtract(End).TotalMinutes);

            var newTimeValueRange = new TimeValueRange(newStartValue, newEndValue);

            if (newTimeValueRange.Invalid)
            {
                return(false);
            }

            TimeRange = newTimeValueRange;

            Start = start;
            return(true);
        }
 public VisibleSubEventTerm(TermStyle source, TimeValueRange timeValueRange, DateTime start)
 {
     _source    = source;
     TimeRange  = timeValueRange;
     Background = _source.Background;
     Start      = start;
 }
Exemple #3
0
        public bool SetNewTime(DateTime start, DateTime end)
        {
            if (end.Equals(default(DateTime)))
            {
                Start = start;
                return(true);
            }

            if (end <= start)
            {
                return(false);
            }

            var oldStart      = Start;
            var oldTimeRange  = TimeRange;
            var oldOccurScale = OccurScale;

            var newStartValue = TimeRange.StartValue + Convert.ToInt32(start.Subtract(Start).TotalMinutes);
            var newEndValue   = TimeRange.EndValue + Convert.ToInt32(end.Subtract(End).TotalMinutes);

            TimeRange = new TimeValueRange(newStartValue, newEndValue);
            Start     = start;

            if (!_visibleSubEventTerm.IsInTheRange(start, end))
            {
                TimeRange  = oldTimeRange;
                Start      = oldStart;
                OccurScale = oldOccurScale;
                return(false);
            }

            return(true);
        }
 public BasicAssignmentType()
 {
     _timeRange  = new TimeValueRange(480, 1020);
     _background = "BurlyWood";
     _onService  = true;
     _termSet    = new List <ICanConvertToValueTerm> {
         this
     };
 }
        public override bool SetNewTime(DateTime start, DateTime end)
        {
            if (end <= start)
            {
                return(false);
            }

            var newStartValue = TimeRange.StartValue + Convert.ToInt32(start.Subtract(Start).TotalMinutes);
            var newEndValue   = TimeRange.EndValue + Convert.ToInt32(end.Subtract(End).TotalMinutes);

            var newTimeValueRange = new TimeValueRange(newStartValue, newEndValue);

            if (newTimeValueRange.Invalid)
            {
                return(false);
            }

            var oldTimeRangeValue = _timeRange;

            _start = default(DateTime); // reset 会在 get Start 属性时发生重新赋值动作
            _end   = default(DateTime); // reset 会在 get End 属性时发生重新赋值动作
            _termSet.Clear();
            _termSet.Add(this);

            TimeRange = new TimeValueRange(newStartValue, newEndValue);

            BuildTermSet(); // 重新填充 termSet

            if (_subEventInsertRules.Any(s => !s.IsInTheRange(start, end)))
            {
                _start = default(DateTime);
                _end   = default(DateTime);
                _termSet.Clear();
                _termSet.Add(this);
                TimeRange = oldTimeRangeValue;
                BuildTermSet();
                return(false);
            }
            return(true);
        }