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);
        }