Galen.Ci.EntityFramework.DeploymentHistory.Save C# (CSharp) Method

Save() private static method

private static Save ( string contextKey, string assemblyFileName, byte binaries, byte hashes, string deployerVersion, DbConnection connection, string schemaName ) : void
contextKey string
assemblyFileName string
binaries byte
hashes byte
deployerVersion string
connection System.Data.Common.DbConnection
schemaName string
return void
        private static void Save(
            string contextKey,
            string assemblyFileName,
            byte[] binaries,
            byte[] hashes,
            string deployerVersion,
            DbConnection connection,
            string schemaName)
        {
            const string sql =
                "INSERT INTO [{0}].[__DeploymentHistory] " +
                    "([DeploymentId] " +
                    ",[ContextKey] " +
                    ",[AssemblyFileName] " +
                    ",[Binaries] " +
                    ",[Hashes] " +
                    ",[DeployerVersion]) " +
                "VALUES " +
                    "(@DeploymentId " +
                    ",@ContextKey " +
                    ",@AssemblyFileName " +
                    ",@Binaries " +
                    ",@Hashes " +
                    ",@DeployerVersion) ";

            var deploymentId = $"{DateTime.UtcNow:yyyyMMddHHmmss}_{Guid.NewGuid():N}";

            using (var command = connection.CreateCommand())
            {
                command.CommandText = string.Format(sql, schemaName);

                var deploymentIdParam = command.CreateParameter();
                deploymentIdParam.DbType = DbType.String;
                deploymentIdParam.Direction = ParameterDirection.Input;
                deploymentIdParam.ParameterName = "@DeploymentId";
                deploymentIdParam.Value = deploymentId;
                command.Parameters.Add(deploymentIdParam);

                var contextKeyParam = command.CreateParameter();
                contextKeyParam.DbType = DbType.String;
                contextKeyParam.Direction = ParameterDirection.Input;
                contextKeyParam.ParameterName = "@ContextKey";
                contextKeyParam.Value = contextKey;
                command.Parameters.Add(contextKeyParam);

                var assemblyFileNameParam = command.CreateParameter();
                assemblyFileNameParam.DbType = DbType.String;
                assemblyFileNameParam.Direction = ParameterDirection.Input;
                assemblyFileNameParam.ParameterName = "@AssemblyFileName";
                assemblyFileNameParam.Value = assemblyFileName;
                command.Parameters.Add(assemblyFileNameParam);

                var binariesParam = command.CreateParameter();
                binariesParam.DbType = DbType.Binary;
                binariesParam.Direction = ParameterDirection.Input;
                binariesParam.ParameterName = "@Binaries";
                binariesParam.Value = binaries;
                command.Parameters.Add(binariesParam);

                var hashesParam = command.CreateParameter();
                hashesParam.DbType = DbType.Binary;
                hashesParam.Direction = ParameterDirection.Input;
                hashesParam.ParameterName = "@Hashes";
                hashesParam.Value = hashes;
                command.Parameters.Add(hashesParam);

                var deployerVersionParam = command.CreateParameter();
                deployerVersionParam.DbType = DbType.String;
                deployerVersionParam.Direction = ParameterDirection.Input;
                deployerVersionParam.ParameterName = "@DeployerVersion";
                deployerVersionParam.Value = deployerVersion;
                command.Parameters.Add(deployerVersionParam);

                var rows = command.ExecuteNonQuery();
                if (rows != 1)
                {
                    throw new Exception($"Failed to INSERT __DeploymentHistory, result: {rows}");
                }
            }
        }