Ejemplo n.º 1
0
        public RepeatsPickerPage()
            : base("RepeatsPicker")
        {
            InitializeComponent();
            DataContext = this;

            Repeats repeats = NavigationParameter <Repeats>(_name, DefaultRepeats);

            switch (repeats)
            {
            case Repeats.Monthly:
                MonthlyRadioButton.IsChecked = true;
                break;

            case Repeats.Weekly:
                WeeklyRadioButton.IsChecked = true;
                break;

            case Repeats.Daily:
                DailyRadioButton.IsChecked = true;
                break;

            case Repeats.None:
                OnceRadioButton.IsChecked = true;
                break;

            default: // DaysOfWeek
                DaysOfWeekRadioButton.IsChecked = true;
                UpdateButtons(repeats);
                break;
            }
        }
Ejemplo n.º 2
0
        private static List <DayOfWeek> DaysOfWeek(this Repeats repeats)
        {
            List <DayOfWeek> daysOfWeek = new List <DayOfWeek>();

            if ((repeats & Repeats.Monday) != 0)
            {
                daysOfWeek.Add(DayOfWeek.Monday);
            }
            if ((repeats & Repeats.Tuesday) != 0)
            {
                daysOfWeek.Add(DayOfWeek.Tuesday);
            }
            if ((repeats & Repeats.Wednesday) != 0)
            {
                daysOfWeek.Add(DayOfWeek.Wednesday);
            }
            if ((repeats & Repeats.Thursday) != 0)
            {
                daysOfWeek.Add(DayOfWeek.Thursday);
            }
            if ((repeats & Repeats.Friday) != 0)
            {
                daysOfWeek.Add(DayOfWeek.Friday);
            }
            if ((repeats & Repeats.Saturday) != 0)
            {
                daysOfWeek.Add(DayOfWeek.Saturday);
            }
            if ((repeats & Repeats.Sunday) != 0)
            {
                daysOfWeek.Add(DayOfWeek.Sunday);
            }
            return(daysOfWeek);
        }
Ejemplo n.º 3
0
        public ActionResult <Repeats> Get()
        {
            var repeats = new Repeats();

            repeats.Num.AddRange(new List <int> {
                5, 4, 3, 2, 1
            });
            return(repeats);
        }
Ejemplo n.º 4
0
 private void UpdateButtons(Repeats repeats)
 {
     SetDayOfWeek(DayOfWeek.Monday, (repeats & Repeats.Monday) != 0);
     SetDayOfWeek(DayOfWeek.Tuesday, (repeats & Repeats.Tuesday) != 0);
     SetDayOfWeek(DayOfWeek.Wednesday, (repeats & Repeats.Wednesday) != 0);
     SetDayOfWeek(DayOfWeek.Thursday, (repeats & Repeats.Thursday) != 0);
     SetDayOfWeek(DayOfWeek.Friday, (repeats & Repeats.Friday) != 0);
     SetDayOfWeek(DayOfWeek.Saturday, (repeats & Repeats.Saturday) != 0);
     SetDayOfWeek(DayOfWeek.Sunday, (repeats & Repeats.Sunday) != 0);
 }
Ejemplo n.º 5
0
        protected override object Save()
        {
            if (DailyRadioButton.IsChecked ?? false)
            {
                return(Repeats.Daily);
            }
            else if (DaysOfWeekRadioButton.IsChecked ?? false)
            {
                Repeats repeats = Repeats.None;
                if (IsSetDayOfWeek(DayOfWeek.Monday))
                {
                    repeats |= Repeats.Monday;
                }
                if (IsSetDayOfWeek(DayOfWeek.Tuesday))
                {
                    repeats |= Repeats.Tuesday;
                }
                if (IsSetDayOfWeek(DayOfWeek.Wednesday))
                {
                    repeats |= Repeats.Wednesday;
                }
                if (IsSetDayOfWeek(DayOfWeek.Thursday))
                {
                    repeats |= Repeats.Thursday;
                }
                if (IsSetDayOfWeek(DayOfWeek.Friday))
                {
                    repeats |= Repeats.Friday;
                }
                if (IsSetDayOfWeek(DayOfWeek.Saturday))
                {
                    repeats |= Repeats.Saturday;
                }
                if (IsSetDayOfWeek(DayOfWeek.Sunday))
                {
                    repeats |= Repeats.Sunday;
                }
                return(repeats);
            }
            else if (WeeklyRadioButton.IsChecked ?? false)
            {
                return(Repeats.Weekly);
            }
            else if (MonthlyRadioButton.IsChecked ?? false)
            {
                return(Repeats.Monthly);
            }

            return(Repeats.None);
        }
Ejemplo n.º 6
0
        public static RecurrenceInterval Interval(this Repeats repeats)
        {
            switch (repeats)
            {
            case Repeats.Monthly: return(RecurrenceInterval.Monthly);

            case Repeats.Weekly: return(RecurrenceInterval.Weekly);

            case Repeats.Daily: return(RecurrenceInterval.Daily);

            case Repeats.None: return(RecurrenceInterval.None);

            default /* DaysOfWeek */: return(RecurrenceInterval.Weekly);
            }
        }
Ejemplo n.º 7
0
        public override String ToString()
        {
            var builder = new StringBuilder();

            builder.Append("Model:    "); builder.AppendLine(ModelFileName);
            builder.Append("Solver:   "); builder.AppendLine(SolverName);
            builder.Append("Config:   "); builder.AppendLine(ConfigFileName);
            // ReSharper disable SpecifyACultureInStringConversionExplicitly
            builder.Append("Duration: "); builder.AppendLine(Duration.ToString());
            builder.Append("Samples:  "); builder.AppendLine(Samples.ToString());
            builder.Append("Runs:     "); builder.AppendLine(Repeats.ToString());
            // ReSharper restore SpecifyACultureInStringConversionExplicitly
            builder.Append("Working Directory: "); builder.AppendLine(WorkingDirectory);

            return(builder.ToString());
        }
Ejemplo n.º 8
0
        public List <DateTime> ReminderDates()
        {
            List <DateTime> dates;

            if (HasReminder)
            {
                dates = Repeats.Dates(DueDate.Value, IsCompleted);
                for (int i = 0; i < dates.Count; i++)
                {
                    dates[i] = dates[i] - Reminder.Value;
                }
            }
            else
            {
                dates = new List <DateTime>();
            }
            return(dates);
        }
Ejemplo n.º 9
0
        public static List <DateTime> Dates(this Repeats repeats, DateTime startDate, bool skipFirst = false)
        {
            List <DateTime> dates = new List <DateTime>();

            switch (repeats)
            {
            case Repeats.Monthly:
                dates.Add(skipFirst ? startDate.AddMonths(1) : startDate);
                return(dates);

            case Repeats.Weekly:
                dates.Add(skipFirst ? startDate.AddDays(_daysInWeek) : startDate);
                return(dates);

            case Repeats.Daily:
                dates.Add(skipFirst ? startDate.AddDays(1) : startDate);
                return(dates);

            case Repeats.None:
                if (!skipFirst)
                {
                    dates.Add(startDate);
                }
                return(dates);

            default /* DaysOfWeek */:
                List <DayOfWeek> list = repeats.DaysOfWeek();
                for (int i = 0; i < _daysInWeek; i++)
                {
                    DateTime date = startDate.AddDays(i);
                    if (list.Contains(date.DayOfWeek))
                    {
                        dates.Add(date);
                    }
                }

                if (skipFirst && dates.Count > 0)
                {
                    dates[0] = dates[0].AddDays(_daysInWeek);
                }

                return(dates);
            }
        }
Ejemplo n.º 10
0
        public static DateTime ActualDate(this Repeats repeats, DateTime startDate)
        {
            switch (repeats)
            {
            case Repeats.Monthly:
                while (startDate.Date < DateTime.Today)
                {
                    startDate = startDate.AddMonths(1);
                }
                return(startDate);

            case Repeats.Weekly:
                while (startDate.Date < DateTime.Today)
                {
                    startDate = startDate.AddDays(_daysInWeek);
                }
                return(startDate);

            case Repeats.Daily:
                return(DateTime.Today.SetTime(startDate));

            case Repeats.None:
                return(startDate);

            default /* DaysOfWeek */:
                if (startDate.Date < DateTime.Today)
                {
                    startDate = DateTime.Today.SetTime(startDate);
                }
                List <DayOfWeek> list = repeats.DaysOfWeek();
                for (int i = 0; i < _daysInWeek; i++)
                {
                    DateTime date = startDate.AddDays(i);
                    if (list.Contains(date.DayOfWeek))
                    {
                        return(date);
                    }
                }
                return(startDate);
            }
        }
Ejemplo n.º 11
0
        protected override byte[] GetSaveData()
        {
            StringBuilder Result = new StringBuilder();

            Result.AppendLine(Delay.ToString());
            Result.AppendLine(Repeats.ToString());
            Result.AppendLine(Proxy?.ToString() ?? "");
            Result.AppendLine(OutputFilePath);
            Result.AppendLine(OutputFormat);
            Result.AppendLine(Filter);
            Result.AppendLine(Format);
            Result.AppendLine(Threads.ToString());
            Result.AppendLine(MoreSettings.Count.ToString());
            foreach (var v in MoreSettings)
            {
                Result.AppendLine(string.Format("{0}|{1}", v.Key, v.Value));
            }
            Result.AppendLine(URLs.Count.ToString());
            foreach (var v in URLs)
            {
                Result.AppendLine(v);
            }
            return(Encoding.UTF8.GetBytes(Result.ToString()));
        }
Ejemplo n.º 12
0
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is Repeats)
            {
                Repeats repeats = (Repeats)value;

                if (repeats == Repeats.Monthly)
                {
                    return(AppResources.RepeatsMonthly);
                }
                else if (repeats == Repeats.Weekly)
                {
                    return(AppResources.RepeatsWeekly);
                }
                else if (repeats == Repeats.Weekends)
                {
                    return(AppResources.RepeatsWeekends);
                }
                else if (repeats == Repeats.Weekdays)
                {
                    return(AppResources.RepeatsWeekdays);
                }
                else if (repeats == Repeats.Daily)
                {
                    return(AppResources.RepeatsDaily);
                }
                else
                {
                    string[] dayNames = CultureInfo.CurrentCulture.DateTimeFormat.DayNames;
                    switch (repeats)
                    {
                    case Repeats.Monday: return(dayNames[(int)DayOfWeek.Monday]);

                    case Repeats.Tuesday: return(dayNames[(int)DayOfWeek.Tuesday]);

                    case Repeats.Wednesday: return(dayNames[(int)DayOfWeek.Wednesday]);

                    case Repeats.Thursday: return(dayNames[(int)DayOfWeek.Thursday]);

                    case Repeats.Friday: return(dayNames[(int)DayOfWeek.Friday]);

                    case Repeats.Saturday: return(dayNames[(int)DayOfWeek.Saturday]);

                    case Repeats.Sunday: return(dayNames[(int)DayOfWeek.Sunday]);
                    }

                    dayNames = CultureInfo.CurrentCulture.DateTimeFormat.ShortestDayNames;
                    List <string> list = new List <string>();
                    if ((repeats & Repeats.Weekdays) == Repeats.Weekdays)
                    {
                        list.Add(AppResources.RepeatsWeekdays);
                    }
                    else
                    {
                        if ((repeats & Repeats.Monday) != 0)
                        {
                            list.Add(dayNames[(int)DayOfWeek.Monday]);
                        }
                        if ((repeats & Repeats.Tuesday) != 0)
                        {
                            list.Add(dayNames[(int)DayOfWeek.Tuesday]);
                        }
                        if ((repeats & Repeats.Wednesday) != 0)
                        {
                            list.Add(dayNames[(int)DayOfWeek.Wednesday]);
                        }
                        if ((repeats & Repeats.Thursday) != 0)
                        {
                            list.Add(dayNames[(int)DayOfWeek.Thursday]);
                        }
                        if ((repeats & Repeats.Friday) != 0)
                        {
                            list.Add(dayNames[(int)DayOfWeek.Friday]);
                        }
                    }
                    if ((repeats & Repeats.Weekends) == Repeats.Weekends)
                    {
                        list.Add(AppResources.RepeatsWeekends);
                    }
                    else
                    {
                        if ((repeats & Repeats.Saturday) != 0)
                        {
                            list.Add(dayNames[(int)DayOfWeek.Saturday]);
                        }
                        if ((repeats & Repeats.Sunday) != 0)
                        {
                            list.Add(dayNames[(int)DayOfWeek.Sunday]);
                        }
                    }

                    if (list.Count > 0)
                    {
                        return(string.Join(", ", list));
                    }
                }
            }
            return(AppResources.RepeatsOnce);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Gets called by the logic of the <see cref="CommandAttribute" />.
        /// </summary>
        private async Task <int> OnExecuteAsync()
        {
            if (UseIpV6)
            {
                UseIpV4 = false;
            }
            if (Endless)
            {
                Repeats = int.MaxValue;
            }
            Console.WriteLine($"Starting pinging host {Host} on {ResolvedProtocol} port(s) {PortRange} {(Endless ? "infinite" : Repeats.ToString())} times:");
            var reachablePorts = 0;
            var closedPorts    = 0;
            var hostIp         = "-";

            if (ResvoleAddress)
            {
                // we have to perform address resolution
                var entry = await Dns.GetHostEntryAsync(Host);

                if (entry.AddressList.Any())
                {
                    var target = UseIpV4 ? AddressFamily.InterNetwork : AddressFamily.InterNetworkV6;
                    hostIp = entry.AddressList.FirstOrDefault(he => he.AddressFamily == target)?.ToString() ?? "?";
                }
            }
            // start the process
            var currentPack = 0;

            for (var i = 0; i < Repeats; ++i)
            {
                var portOpen = true;
                Ports.ToList().ForEach(
                    port =>
                {
                    try
                    {
                        portOpen       &= NetworkUtil.IsPortOpened(Host, port, Timeout, UseUdp);
                        reachablePorts += portOpen ? 1 : 0;
                        closedPorts    += portOpen ? 0 : 1;
                        var printResult = portOpen ? "OPEN" : "CLOSED";
                        if (Detailed && !portOpen)
                        {
                            printResult += $" ({NetworkUtil.LastCheckResult.ToString()})";
                        }
                        Console.Write("#{0,4} -> Pinging host {1} (IP:{2}) on {5} port {3} with timeout {4}: ", ++currentPack, Host, hostIp, port, Timeout, ResolvedProtocol);
                        Console.ForegroundColor = portOpen ? ConsoleColor.DarkGreen : ConsoleColor.DarkRed;
                        Console.WriteLine(printResult);
                        Console.ResetColor();
                    }
                    catch (Exception ex)
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine($"#{++currentPack,4} Error pinging host {Host}: {ex.Message}");
                        Console.ResetColor();
                    }
                });
                if (!AutoStop || !portOpen)
                {
                    if (WaitTime > 0)
                    {
                        await Task.Delay(WaitTime);
                    }
                }
                else
                {
                    break;
                }
            }
            Console.WriteLine("Finished pinging host {0} (IP:{1}). {2} pings sent ({3} OPEN, {4} CLOSED)", Host, hostIp, currentPack, reachablePorts, closedPorts);
            if (ReportFailedOnExit)
            {
                // return error level 1 if all pings where closed and 0 if any of them was open
                return(reachablePorts > 0 ? 0 : 1);
            }
            if (ReportSucceededOnExit)
            {
                // return the amount of opened pings as the error level
                return(reachablePorts);
            }
            return(0);
        }
Ejemplo n.º 14
0
 public ParameterToken this[int key] => Repeats.ElementAtOrDefault(key) ?? Empty;