public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            // load next token
            JToken nextToken = JToken.Load(reader);

            if (nextToken.Type != JTokenType.Object)
            {
                return(null);
            }

            // build repetition
            JObject         obj        = (JObject)nextToken;
            TimerRepetition repetition = TimerRepetition.None;

            if ((bool)obj["monday"])
            {
                repetition |= TimerRepetition.Monday;
            }
            if ((bool)obj["tuesday"])
            {
                repetition |= TimerRepetition.Tuesday;
            }
            if ((bool)obj["wednesday"])
            {
                repetition |= TimerRepetition.Wednesday;
            }
            if ((bool)obj["thursday"])
            {
                repetition |= TimerRepetition.Thursday;
            }
            if ((bool)obj["friday"])
            {
                repetition |= TimerRepetition.Friday;
            }
            if ((bool)obj["saturday"])
            {
                repetition |= TimerRepetition.Saturday;
            }
            if ((bool)obj["sunday"])
            {
                repetition |= TimerRepetition.Sunday;
            }

            return(repetition);
        }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            // cast
            TimerRepetition repetition = (TimerRepetition)value;

            // create object
            JObject obj = new JObject();

            obj["monday"]    = (repetition & TimerRepetition.Monday) == TimerRepetition.Monday;
            obj["tuesday"]   = (repetition & TimerRepetition.Tuesday) == TimerRepetition.Tuesday;
            obj["wednesday"] = (repetition & TimerRepetition.Wednesday) == TimerRepetition.Wednesday;
            obj["thursday"]  = (repetition & TimerRepetition.Thursday) == TimerRepetition.Thursday;
            obj["friday"]    = (repetition & TimerRepetition.Friday) == TimerRepetition.Friday;
            obj["saturday"]  = (repetition & TimerRepetition.Saturday) == TimerRepetition.Saturday;
            obj["sunday"]    = (repetition & TimerRepetition.Sunday) == TimerRepetition.Sunday;

            obj.WriteTo(writer);
        }
Beispiel #3
0
 /// <summary>
 /// Gets if the timer will repeat on the provided day.
 /// </summary>
 /// <param name="repetitionDay">The repetition day.</param>
 /// <returns>If the timer will repeat on the day.</returns>
 public bool ShouldRepeat(TimerRepetition repetitionDay)
 {
     return((Repeats & repetitionDay) == repetitionDay);
 }