Example #1
0
        public void ShowTooltip()
        {
            if (!m_showTooltip)
            {
                return;
            }

            if (m_minute < 1)
            {
                return;
            }

            if (m_tooltipAction == null)
            {
                return;
            }

            DateTime dateTime = DateTime.Now.AddMinutes(m_minute);

            if (Times.Any(x => x.Hour == dateTime.Hour && x.Minute == dateTime.Minute))
            {
                if (m_showTooltip)
                {
                    m_tooltipAction();
                }
            }
        }
Example #2
0
        public bool CheckLockTime()
        {
            if (Times.Any(x => x.Hour == DateTime.Now.Hour && x.Minute == DateTime.Now.Minute))
            {
                return(true);
            }

            return(false);
        }
Example #3
0
            public IEnumerable <DateTime> GetScheduledTimes(DateTime start, TimeSpan howFarAhead)
            {
                IEnumerable <DateTime> monthDates;
                var endDate = start + howFarAhead;

                bool IsValid(DateTime dt) => dt >= start && dt <= endDate;

                if (MonthsOfYear.Any())
                {
                    var months = new List <DateTime>();
                    for (var monthDate = start; monthDate < endDate;)
                    {
                        months.Add(monthDate);
                        monthDate = monthDate.AddMonths(1);
                        monthDate = new DateTime(monthDate.Year, monthDate.Month, 1);
                    }
                    monthDates = months.ToArray();
                }
                else
                {
                    monthDates = new[] { start };
                }
                IEnumerable <DateTime> dayDates;

                if (!DaysOfMonth.Any() && !WeekDays.Any())
                {
                    dayDates = new[] { start };
                }
                else
                {
                    dayDates = monthDates.SelectMany(m => DaysOfMonth.Select(d => new DateTime(m.Year, m.Month, d, 0, 0, 0))).Where(IsValid);
                    var dayDates2 = monthDates.SelectMany(m => WeekDays.SelectMany(wd => DayOfWeekDatesForMonth(wd, m.Year, m.Month))).Where(IsValid);
                    if (dayDates.Any() && dayDates2.Any())
                    {
                        dayDates = dayDates.Intersect(dayDates2);
                    }
                    else
                    {
                        dayDates = dayDates.Concat(dayDates2);
                    }
                }

                if (Times.Any())
                {
                    dayDates = dayDates.SelectMany(d => Times.Select(t => new DateTime(d.Year, d.Month, d.Day, t.Hour, t.Minute ?? 0, 0))).Where(IsValid);
                }

                if (Every.HasValue)
                {
                    dayDates = dayDates.SelectMany(d => PartsInValidTime(d, Every.Value)).Where(IsValid);
                }

                return(dayDates);
            }
Example #4
0
        public override string ToString()
        {
            Times.Sort();
            var    mean = Times.Any() ? (int)Math.Floor(Times.Sum() / (float)Times.Count) : 0;
            var    median = Times.Any() ? Times[Times.Count / 2] : 0;
            string meanUnit = "μs", medianUnit = "μs";

            if (mean > 1000)
            {
                mean /= 1000; meanUnit = "ms";
            }
            if (median > 1000)
            {
                median /= 1000; medianUnit = "ms";
            }

            return($"Reps({Times.Count}) ・ Mean({mean}{meanUnit}) ・ Median({median}{medianUnit})");
        }
Example #5
0
            public bool IsTime(DateTime currentTime)
            {
                if (MonthsOfYear.Any() && !MonthsOfYear.Any(x => (int)x == currentTime.Month))
                {
                    return(false);
                }
                if (DaysOfMonth.Any() && !DaysOfMonth.Any(x => x == currentTime.Day))
                {
                    return(false);
                }
                if (WeekDays.Any() && !WeekDays.Any(x => x == currentTime.DayOfWeek))
                {
                    return(false);
                }
                if (Times.Any() && !Times.Any(x => x.IsTime(currentTime)))
                {
                    return(false);
                }

                return(true);
            }
Example #6
0
        /// <summary>Sets up the random fake behavior for the method.</summary>
        /// <param name="method">Method to fake.</param>
        /// <param name="randomizer">Handles callback behavior for child values.</param>
        /// <returns>Behavior for the fake.</returns>
        private static Behavior MakeBehavior(MethodInfo method, RandomizerChainer randomizer)
        {
            Type[] args = method.GetParameters().Select(p => SetupArg(p.ParameterType)).ToArray();

            if (method.ReturnType != typeof(void))
            {
                Type[] withOut = args.Concat(new[] { method.ReturnType }).ToArray();

                return((Behavior)typeof(Behavior <>)
                       .MakeGenericType(method.ReturnType)
                       .GetConstructor(new[] { typeof(Delegate), typeof(Times) })
                       .Invoke(new[] { randomizer.Create(_FuncTypes[withOut.Length].MakeGenericType(withOut)), Times.Any() }));
            }
            else if (args.Length != 0)
            {
                return(new Behavior <VoidType>((Delegate)randomizer
                                               .Create(_ActionTypes[args.Length].MakeGenericType(args)), Times.Any()));
            }
            else
            {
                return(Behavior.None(Times.Any()));
            }
        }