public override bool Equals(object obj)
            {
                SettingsOOF rhs = obj as SettingsOOF;

                if (rhs == null)
                {
                    return(false);
                }

                if (State != rhs.State)
                {
                    return(false);
                }

                // Check the times only if they are used
                if (State == OOFState.EnabledTimeBased)
                {
                    if (!From.Equals(rhs.From))
                    {
                        return(false);
                    }
                    if (!Till.Equals(rhs.Till))
                    {
                        return(false);
                    }
                }

                // Check the messages only if they are used
                if (State != OOFState.Disabled)
                {
                    // Only one entry is effectively used
                    if (!Message[0].NullSafeEquals(rhs.Message[0]))
                    {
                        return(false);
                    }
                }

                return(true);
            }
 public SettingsOOFSet(SettingsOOF value)
 {
     this._value = value;
 }