public bool Save(DbSystemSettings systemSettings)
        {
            if (systemSettings == null)
            {
                throw new ArgumentNullException("systemSettings");
            }

            using (DbConnection con = DbContext.Current.CreateConnection())
            {
                NpgsqlCommand command = con.CreateCommand("UPDATE system_settings SET version=@version WHERE id=@id;");

                var parameter = command.CreateParameter() as NpgsqlParameter;
                parameter.ParameterName = "version";
                parameter.Value         = systemSettings.Version;
                parameter.NpgsqlDbType  = NpgsqlDbType.Integer;
                command.Parameters.Add(parameter);

                var parameterId = command.CreateParameter() as NpgsqlParameter;
                parameterId.ParameterName = "id";
                parameterId.Value         = systemSettings.Id;
                parameterId.NpgsqlDbType  = NpgsqlDbType.Uuid;
                command.Parameters.Add(parameterId);

                return(command.ExecuteNonQuery() > 0);
            }
        }
        public DbSystemSettings Read()
        {
            DbSystemSettings setting = null;

            using (DbConnection con = DbContext.Current.CreateConnection())
            {
                try
                {
                    con.BeginTransaction();
                    NpgsqlCommand command = con.CreateCommand("SELECT * FROM system_settings;");

                    using (var reader = command.ExecuteReader())
                    {
                        if (reader != null && reader.Read())
                        {
                            setting = new DbSystemSettings();
                            setting.Id = (Guid)reader["id"];
                            setting.Version = (int)reader["version"];
                        }
                        reader.Close();
                    }
                    con.CommitTransaction();
                }
                catch (Exception ex)
                {
                    if (con != null)
                        con.RollbackTransaction();

                    if (!ex.Message.Contains("does not exist"))
                        throw;
                }
            }
            return setting;
        }
        public bool Save(DbSystemSettings systemSettings)
        {
            if (systemSettings == null)
            {
                throw new ArgumentNullException("systemSettings");
            }

            using (DbConnection con = DbContext.Current.CreateConnection())
            {
                bool          recordExists = false;
                NpgsqlCommand command      = con.CreateCommand("SELECT COUNT(*) FROM system_settings WHERE id=@id;");
                var           parameterId  = command.CreateParameter();
                parameterId.ParameterName = "id";
                parameterId.Value         = systemSettings.Id;
                parameterId.NpgsqlDbType  = NpgsqlDbType.Uuid;
                command.Parameters.Add(parameterId);

                recordExists = ((long)command.ExecuteScalar()) > 0;

                if (recordExists)
                {
                    command = con.CreateCommand("UPDATE system_settings SET version=@version WHERE id=@id;");
                }
                else
                {
                    command = con.CreateCommand("INSERT INTO system_settings (id, version) VALUES( @id,@version)");
                }

                var parameter = command.CreateParameter();
                parameter.ParameterName = "version";
                parameter.Value         = systemSettings.Version;
                parameter.NpgsqlDbType  = NpgsqlDbType.Integer;
                command.Parameters.Add(parameter);

                parameterId = command.CreateParameter();
                parameterId.ParameterName = "id";
                parameterId.Value         = systemSettings.Id;
                parameterId.NpgsqlDbType  = NpgsqlDbType.Uuid;
                command.Parameters.Add(parameterId);

                return(command.ExecuteNonQuery() > 0);
            }
        }
        public DbSystemSettings Read()
        {
            DbSystemSettings setting = null;

            using (DbConnection con = DbContext.Current.CreateConnection())
            {
                NpgsqlCommand command = con.CreateCommand("SELECT * FROM system_settings;");

                using (var reader = command.ExecuteReader())
                {
                    if (reader != null && reader.Read())
                    {
                        setting         = new DbSystemSettings();
                        setting.Id      = (Guid)reader["id"];
                        setting.Version = (int)reader["version"];
                    }
                    reader.Close();
                }
            }

            return(setting);
        }
        public DbSystemSettings Read()
        {
            DbSystemSettings setting = null;

            using (DbConnection con = DbContext.Current.CreateConnection())
            {
                try
                {
                    con.BeginTransaction();
                    NpgsqlCommand command = con.CreateCommand("SELECT * FROM system_settings;");

                    using (var reader = command.ExecuteReader())
                    {
                        if (reader != null && reader.Read())
                        {
                            setting         = new DbSystemSettings();
                            setting.Id      = (Guid)reader["id"];
                            setting.Version = (int)reader["version"];
                        }
                        reader.Close();
                    }
                    con.CommitTransaction();
                }
                catch (Exception ex)
                {
                    if (con != null)
                    {
                        con.RollbackTransaction();
                    }

                    if (!ex.Message.Contains("does not exist"))
                    {
                        throw;
                    }
                }
            }
            return(setting);
        }
        public bool Save(DbSystemSettings systemSettings)
        {
            if (systemSettings == null)
                throw new ArgumentNullException("systemSettings");

            using (DbConnection con = DbContext.Current.CreateConnection())
            {
                bool recordExists = false;
                NpgsqlCommand command = con.CreateCommand("SELECT COUNT(*) FROM system_settings WHERE id=@id;");
                var parameterId = command.CreateParameter();
                parameterId.ParameterName = "id";
                parameterId.Value = systemSettings.Id;
                parameterId.NpgsqlDbType = NpgsqlDbType.Uuid;
                command.Parameters.Add(parameterId);

                recordExists = ((long)command.ExecuteScalar()) > 0;

                if (recordExists)
                    command = con.CreateCommand("UPDATE system_settings SET version=@version WHERE id=@id;");
                else
                    command = con.CreateCommand("INSERT INTO system_settings (id, version) VALUES( @id,@version)");

                var parameter = command.CreateParameter();
                parameter.ParameterName = "version";
                parameter.Value = systemSettings.Version;
                parameter.NpgsqlDbType = NpgsqlDbType.Integer;
                command.Parameters.Add(parameter);

                parameterId = command.CreateParameter();
                parameterId.ParameterName = "id";
                parameterId.Value = systemSettings.Id;
                parameterId.NpgsqlDbType = NpgsqlDbType.Uuid;
                command.Parameters.Add(parameterId);

                return command.ExecuteNonQuery() > 0;
            }
        }
 public SystemSettings(DbSystemSettings settings)
 {
     Id = settings.Id;
     Version = settings.Version;
 }