//static string reminderInfoFormat = @"<Reminders><Reminder AlertTime=""{0}"" TimeBeforeStart=""00:00:00"" /></Reminders>";
        static SportEvent GetRandomRecurrenceSportEvent(int id, DateTime startDate, SportChannel channel, int dayCount)
        {
            SportEvent pattern = new SportEvent();

            pattern.Id = id;
            TimeSpanRange newsTimeRange = channel.NewsTimeRange;

            pattern.StartTime = startDate + newsTimeRange.Start;
            pattern.EndTime   = startDate + newsTimeRange.End;
            pattern.SportId   = 0;
            pattern.ChannelId = channel.Id;
            pattern.Caption   = "Sport News";
            pattern.Location  = "New York City, USA";
            pattern.Type      = (int)AppointmentType.Pattern;
            RecurrenceInfo recInfo = new RecurrenceInfo();

            recInfo.Id             = id;
            recInfo.Start          = pattern.StartTime;
            recInfo.End            = pattern.EndTime.AddDays(dayCount);
            recInfo.WeekDays       = WeekDays.WorkDays;
            recInfo.Range          = RecurrenceRange.EndByDate;
            recInfo.Type           = RecurrenceType.Daily;
            pattern.RecurrenceInfo = String.Format(CultureInfo.InvariantCulture, recurrenceInfoFormat,
                                                   recInfo.Start, recInfo.End, (int)recInfo.WeekDays, recInfo.OccurrenceCount, (int)recInfo.Range, (int)recInfo.Type, recInfo.Id.ToString());
            //pattern.ReminderInfo = String.Format(CultureInfo.InvariantCulture, reminderInfoFormat, pattern.StartTime);
            return(pattern);
        }
Example #2
0
        private static object RandomizeTimeSpanInRange(TimeSpanRange range, ISpecimenContext context)
        {
            var millisecondsInRange = context.Resolve(
                new RangedNumberRequest(typeof(double), range.Min.TotalMilliseconds, range.Max.TotalMilliseconds));

            if (millisecondsInRange is NoSpecimen)
            {
                return(new NoSpecimen());
            }

            return(TimeSpan.FromMilliseconds((double)millisecondsInRange));
        }
        public void CreateFromStartEnd_SuccessfulCreation()
        {
            //arrange
            var start = new TimeSpan(1, 0, 0);
            var end   = new TimeSpan(2, 0, 0);

            //act
            var actual = new TimeSpanRange(start, end);

            //assert
            Assert.IsType <TimeSpanRange>(actual);
        }
        public void CreateFromStartEnd_EndCorrect()
        {
            //arrange
            var start = new TimeSpan(1, 0, 0);
            var end   = new TimeSpan(2, 0, 0);
            var range = new TimeSpanRange(start, end);

            //act
            var actual = range.End;

            //assert
            Assert.Equal(end, actual);
        }
        public void CreateFromStartDuration_EndCorrect()
        {
            //arrange
            var start    = new TimeSpan(1, 0, 0);
            var duration = new TimeSpan(3, 0, 0);
            var range    = TimeSpanRange.FromDuration(start, duration);
            var expected = start.Add(duration);

            //act
            var actual = range.End;

            //assert
            Assert.Equal(expected, actual);
        }
        public void CreateFromStartEnd_DurationCorrect()
        {
            //arrange
            var start    = new TimeSpan(1, 0, 0);
            var end      = new TimeSpan(2, 0, 0);
            var range    = new TimeSpanRange(start, end);
            var expected = end.Subtract(start);

            //act
            var actual = range.Duration;

            //assert
            Assert.Equal(expected, actual);
        }
        static ObservableCollection <SportEvent> GenerateEvents(int dayCount)
        {
            ObservableCollection <SportEvent> result = new ObservableCollection <SportEvent>();
            int aptId = 0;

            foreach (SportChannel ch in sportChannels)
            {
                DateTime start = DateTime.Today - TimeSpan.FromDays(dayCount);
                DateTime end   = DateTime.Today + TimeSpan.FromDays(dayCount);
                if (ch.HasNews)
                {
                    result.Add(GetRandomRecurrenceSportEvent(aptId++, start, ch, (dayCount * 2) - 1));
                }
                for (DateTime i = start; i < end; i += TimeSpan.FromDays(1))
                {
                    if (i.DayOfWeek == DateTime.Today.DayOfWeek && ch.Id == 0)
                    {
                        result.Add(GetRandomSportEvent(aptId++, i, i + TimeSpan.FromDays(1), ch.Id));
                        continue;
                    }
                    DateTime airtimeStart = new DateTime(i.Year, i.Month, i.Day, 6, 0, 0);
                    DateTime airtimeEnd   = new DateTime(i.Year, i.Month, i.Day, 21, 0, 0);
                    DateTime aptStartTime = airtimeStart;
                    while (aptStartTime < airtimeEnd)
                    {
                        DateTime      aptEndTime;
                        TimeSpan      duration      = TVProgramDurations[rnd.Next(0, TVProgramDurations.Length - 1)];
                        TimeSpanRange newsTimeRange = ch.NewsTimeRange;
                        if (ch.HasNews)
                        {
                            long timeBeforeNews = (newsTimeRange.Start - aptStartTime.TimeOfDay).Ticks;
                            long minTicks       = TimeSpan.FromMinutes(30).Ticks;
                            if (timeBeforeNews > 0 && (timeBeforeNews < minTicks || (timeBeforeNews - duration.Ticks) < minTicks))
                            {
                                aptEndTime = aptStartTime.Date + newsTimeRange.Start;
                                result.Add(GetRandomSportEvent(aptId++, aptStartTime, aptEndTime, ch.Id));
                                aptStartTime = aptEndTime.Date + newsTimeRange.End;
                                continue;
                            }
                        }
                        aptEndTime = aptStartTime + duration;
                        result.Add(GetRandomSportEvent(aptId++, aptStartTime, aptEndTime, ch.Id));
                        aptStartTime = aptEndTime;
                    }
                }
            }
            return(result);
        }
        public void SwitchAddOnTime_OnTimeAdded()
        {
            //Arrange
            var provider = new DeterministicDateTimeProvider();

            provider.Time = () => new DateTime(2000, 1, 1, 1, 0, 0);
            var timer = new TimedSwitcherProvider(provider);
            var range = new TimeSpanRange(new TimeSpan(0, 0, 0), new TimeSpan(0, 0, 1));

            //Act
            timer.AddOnTime(range);

            //Assert
            var actual   = timer.OnTimes.First();
            var expected = range;

            Assert.Equal(expected, actual);
        }
        public void SwitchRemoveOnTimeWithRemoveDifferentInstantationToAdd_OnTimeRemoved()
        {
            //Arrange
            var provider = new DeterministicDateTimeProvider();

            provider.Time = () => new DateTime(2000, 1, 1, 1, 0, 0);
            var timer  = new TimedSwitcherProvider(provider);
            var range1 = new TimeSpanRange(new TimeSpan(0, 0, 0), new TimeSpan(0, 0, 1));
            var range2 = new TimeSpanRange(new TimeSpan(0, 0, 0), new TimeSpan(0, 0, 1));

            timer.AddOnTime(range1);

            //Act
            timer.RemoveOnTime(range2);

            //Assert
            var actual   = timer.OnTimes.Count();
            var expected = 0;

            Assert.Equal(expected, actual);
        }
Example #10
0
        public void TimeSpanRange()
        {
            using (AmbientClock.Pause())
            {
                // first test with a single time span
                TimeSpanRange range = new TimeSpanRange(TimeSpan.FromSeconds(10));

                string longString  = range.ToLongString();
                string shortString = range.ToShortString();
                Assert.IsTrue(longString.Length > shortString.Length);
                string defaultString = range.ToString();
                Assert.IsTrue(String.Equals(longString, defaultString) || String.Equals(shortString, defaultString));

                // now add another time span
                range.AddSample(TimeSpan.FromHours(10));

                longString  = range.ToLongString();
                shortString = range.ToShortString();
                Assert.IsTrue(longString.Length > shortString.Length);
                defaultString = range.ToString();
                Assert.IsTrue(String.Equals(longString, defaultString) || String.Equals(shortString, defaultString));
            }
        }
Example #11
0
        private static void Main(string[] args)
        {
            var source = new string[] { "Hallo", "welt" };

            List <string> list    = new List <string>();
            List <string> newList = list.AddMany(source);

            var dict = new HashSet <string>();

            Ext.AddMany(dict, source);

            Dictionary <string, string> dst = new Dictionary <string, string>()
                                              .AddMany(new KeyValuePair <string, string>[]
            {
                new KeyValuePair <string, string>("a", "a"),
                new KeyValuePair <string, string>("aa", "aa"),
            });

            Console.WriteLine("Hello World!");

            var ranges = new List <DateTimeRange>
            {
                new DateTimeRange(new DateTime(2020, 01, 01), new DateTime(2020, 01, 15)),
                new DateTimeRange(new DateTime(2020, 01, 10), new DateTime(2020, 02, 01)),
                new DateTimeRange(new DateTime(2020, 02, 03), new DateTime(2020, 02, 20)),
                new DateTimeRange(new DateTime(2020, 03, 01), new DateTime(2020, 04, 01)),
            };

            var intersecting = ranges.MergeIntersecting(TimeSpan.FromDays(2));

            RefX();

            var rng = new TimeSpanRange(TimeSpan.FromMinutes(1), TimeSpan.FromMinutes(2));

            var enumerated = rng.Enumerate(TimeSpan.FromSeconds(2)).ToList();

            var dtrange = new DateTimeRange(DateTime.Now, TimeSpan.FromDays(20));

            var en = dtrange.Enumerate(TimespanType.Day, 1).ToList();

            //var nit2Range = new[]
            //{
            //    1, 2, 3, 4, 6, 7
            //};

            //var nRange = IntegerRange.FromEnumerable(nit2Range).ToList();

            //var intRanges = new[]
            //{
            //    new IntegerRange(1,2),
            //    new IntegerRange(3,4),
            //    new IntegerRange(6,7),
            //};

            //var intIntersection = intRanges.MergeIntersecting(1);

            //var method = typeof(TimeSpan).GetMethods()
            //    .Where(x => x.IsSpecialName && x.Name == "op_Subtraction" && x.GetParameters().Select(m => m.ParameterType).SequenceEqual(new[] { typeof(TimeSpan), typeof(TimeSpan) }))
            //    .ToList();

            //PerformanceTests();

            var timeRanges = new[]
            {
                new TimeSpanRange(TimeSpan.FromMinutes(1), TimeSpan.FromMinutes(2)),
                new TimeSpanRange(TimeSpan.FromMinutes(3), TimeSpan.FromMinutes(4)),
                new TimeSpanRange(TimeSpan.FromMinutes(6), TimeSpan.FromMinutes(7)),
            };

            var timeIntersection = timeRanges.MergeIntersecting(TimeSpan.FromMinutes(1));
        }
        protected void OnWorkTimeEndChanged()
        {
            var start = (WorkTimeEnd < WorkTimeStart) ? WorkTimeEnd.Add(TimeSpan.FromHours(-1)) : WorkTimeStart;

            WorkTime = new TimeSpanRange(start, WorkTimeEnd);
        }
        protected void OnWorkTimeStartChanged()
        {
            var end = (WorkTimeEnd < WorkTimeStart) ? WorkTimeStart.Add(TimeSpan.FromHours(1)) : WorkTimeEnd;

            WorkTime = new TimeSpanRange(WorkTimeStart, end);
        }