aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Data/DayOfWeekHelper.cs
blob: 836860e0ea1f1eea9c70a6c426060fd46ec04ac1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma warning disable CS1591

using System;
using Jellyfin.Database.Implementations.Enums;

namespace Jellyfin.Data
{
    public static class DayOfWeekHelper
    {
        public static DayOfWeek[] GetDaysOfWeek(DynamicDayOfWeek day)
        {
            return day switch
            {
                DynamicDayOfWeek.Everyday => new[] { DayOfWeek.Sunday, DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday, DayOfWeek.Saturday },
                DynamicDayOfWeek.Weekday => new[] { DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday },
                DynamicDayOfWeek.Weekend => new[] { DayOfWeek.Sunday, DayOfWeek.Saturday },
                _ => new[] { (DayOfWeek)day }
            };
        }

        public static bool Contains(this DynamicDayOfWeek dynamicDayOfWeek, DayOfWeek dayOfWeek)
        {
            return dynamicDayOfWeek switch
            {
                DynamicDayOfWeek.Everyday => true,
                DynamicDayOfWeek.Weekday => dayOfWeek is >= DayOfWeek.Monday and <= DayOfWeek.Friday,
                DynamicDayOfWeek.Weekend => dayOfWeek is DayOfWeek.Saturday or DayOfWeek.Sunday,
                _ => (DayOfWeek)dynamicDayOfWeek == dayOfWeek
            };
        }
    }
}