/// <summary> /// Returns a new instance of ReadConcern with some values changed. /// </summary> /// <param name="level">The level.</param> /// <returns> /// A ReadConcern. /// </returns> public ReadConcern With(Optional <ReadConcernLevel?> level = default(Optional <ReadConcernLevel?>)) { if (level.Replaces(_level)) { return(new ReadConcern(level.WithDefault(_level))); } else { return(this); } }
/// <summary> /// Returns a new instance of WriteConcern with some values changed. /// </summary> /// <param name="w">The w value.</param> /// <param name="wTimeout">The wtimeout value.</param> /// <param name="fsync">The fsync value.</param> /// <param name="journal">The journal value.</param> /// <returns>A WriteConcern.</returns> public WriteConcern With( Optional <WValue> w = default(Optional <WValue>), Optional <TimeSpan?> wTimeout = default(Optional <TimeSpan?>), Optional <bool?> fsync = default(Optional <bool?>), Optional <bool?> journal = default(Optional <bool?>)) { if (w.Replaces(_w) || wTimeout.Replaces(_wTimeout) || fsync.Replaces(_fsync) || journal.Replaces(_journal)) { return(new WriteConcern( w: w.WithDefault(_w), wTimeout: wTimeout.WithDefault(_wTimeout), fsync: fsync.WithDefault(_fsync), journal: journal.WithDefault(_journal))); } else { return(this); } }