public async Task AddSettingAsync(Setting setting)
 {
     try
     {
         SettingMongo settingMongo = StoredSettingMapper.Map <SettingMongo>(setting);
         settingMongo.Created = settingMongo.Updated = DateTimeOffset.UtcNow;
         await this.SettingsCollection.InsertOneAsync(settingMongo).ConfigureAwait(false);
     }
     catch (Exception exp)
     {
         logger.Warn(string.Format("Error adding setting {0} to mongo", Newtonsoft.Json.JsonConvert.SerializeObject(setting)), exp);
         throw;
     }
 }
        public async Task UpdateSettingAsync(string id, Setting value)
        {
            try
            {
                SettingMongo settingMongo = StoredSettingMapper.Map <SettingMongo>(value);
                var          filter       = Builders <SettingMongo> .Filter.Eq(s => s.DbId, new ObjectId(id));

                var update = Builders <SettingMongo> .Update.Set(s => s.JSONValue, settingMongo.JSONValue)
                             .Set(s => s.Documentation, settingMongo.Documentation)
                             .Set(s => s.Updated, DateTimeOffset.UtcNow);

                await this.SettingsCollection.UpdateOneAsync(filter, update).ConfigureAwait(false);
            }
            catch (Exception exp)
            {
                logger.Warn(string.Format("Error while updating setting {0} into mongo", Newtonsoft.Json.JsonConvert.SerializeObject(value)), exp);
                throw;
            }
        }