Exemplo n.º 1
0
        private bool Filter(JudgeInfo p)
        {
            var    now = DateTime.Now;
            string pf = null, uf = null;
            var    tf = -1;

            Dispatcher.Invoke(() =>
            {
                pf = ProblemFilter.SelectedItem as string;
                uf = UserFilter.SelectedItem as string;
                tf = TimeFilter.SelectedIndex;
            });
            if (pf != null)
            {
                if (p.ProblemName != pf)
                {
                    return(false);
                }
            }
            if (uf != null)
            {
                if (p.UserName != uf)
                {
                    return(false);
                }
            }
            if (tf != -1)
            {
                var ti = Convert.ToDateTime(p.JudgeDate);
                switch (tf)
                {
                case 0:
                {
                    if (ti.Year != now.Year || ti.Month != now.Month || ti.Day != now.Day)
                    {
                        return(false);
                    }
                    break;
                }

                case 1:
                {
                    if ((now - ti).TotalDays > 3)
                    {
                        return(false);
                    }
                    break;
                }

                case 2:
                {
                    if ((now - ti).TotalDays > 7)
                    {
                        return(false);
                    }
                    break;
                }

                case 3:
                {
                    if ((now - ti).TotalDays > 30)
                    {
                        return(false);
                    }
                    break;
                }

                case 4:
                {
                    if ((now - ti).TotalDays > 91)
                    {
                        return(false);
                    }
                    break;
                }

                case 5:
                {
                    if ((now - ti).TotalDays > 182)
                    {
                        return(false);
                    }
                    break;
                }

                case 6:
                {
                    if ((now - ti).TotalDays > 365)
                    {
                        return(false);
                    }
                    break;
                }
                }
            }
            return(true);
        }
Exemplo n.º 2
0
        private bool Filter(JudgeInfo p)
        {
            var now = DateTime.Now;
            var tf  = TimeFilter.SelectedIndex;

            if (ProblemFilter.SelectedItem is string pf)
            {
                if (p.ProblemName != pf)
                {
                    return(false);
                }
            }
            if (UserFilter.SelectedItem is string uf)
            {
                if (p.UserName != uf)
                {
                    return(false);
                }
            }
            if (tf != -1)
            {
                var ti = Convert.ToDateTime(p.JudgeDate);
                switch (tf)
                {
                case 0:
                {
                    if (ti.Year != now.Year || ti.Month != now.Month || ti.Day != now.Day)
                    {
                        return(false);
                    }
                    break;
                }

                case 1:
                {
                    if ((now - ti).TotalDays > 3)
                    {
                        return(false);
                    }
                    break;
                }

                case 2:
                {
                    if ((now - ti).TotalDays > 7)
                    {
                        return(false);
                    }
                    break;
                }

                case 3:
                {
                    if ((now - ti).TotalDays > 30)
                    {
                        return(false);
                    }
                    break;
                }

                case 4:
                {
                    if ((now - ti).TotalDays > 91)
                    {
                        return(false);
                    }
                    break;
                }

                case 5:
                {
                    if ((now - ti).TotalDays > 182)
                    {
                        return(false);
                    }
                    break;
                }

                case 6:
                {
                    if ((now - ti).TotalDays > 365)
                    {
                        return(false);
                    }
                    break;
                }
                }
            }
            return(true);
        }