public void Save(IParameterGroup group) { var props = group .GetType() .GetProperties() .Where(x => x.CustomAttributes.Where(y => y.AttributeType == typeof(ParameterAttribute)).Any()); foreach (var prop in props) { var dv = (ParameterAttribute)prop.GetCustomAttributes(false).ToList().Single(x => x is ParameterAttribute); if (!dv.CreateAutomatically) { continue; } var mp = new MongoParameter { Key = prop.Name, Value = prop.GetValue(group).ToString() }; var filter = Builders <MongoParameter> .Filter.Eq(x => x.Key, mp.Key); if (Mongo.Exists(filter)) { var updateFilter = Builders <MongoParameter> .Update.Set(x => x.Value, mp.Value); if (Mongo.UpdateField(filter, updateFilter)) { Console.WriteLine($"{mp.Key} updated value to \"{mp.Value}\""); } } } }
public bool Save() { try { if (Mongo.Exists <ClientModel>(Id)) { Mongo.UpdateOne(this); } else { Mongo.InsertOne(this); } } catch (Exception) { return(false); } return(true); }