Beispiel #1
0
    public static void SqlTrigger()
    {
        using (var connection = new SqlConnection(@"context connection=true"))
        {
            connection.Open();

            switch (SqlContext.TriggerContext.TriggerAction)
            {
            case TriggerAction.Insert:
            {
                var command = new SqlCommand(@"SELECT * FROM INSERTED;", connection);
                var reader  = command.ExecuteReader();
                while (reader.Read())
                {
                    var inserted = new Login.Sqlserver.Login(reader);
                    repo.Apply(inserted, "POST", false);
                }

                reader.Close();
            }

            break;

            case TriggerAction.Update:
            {
                var command = new SqlCommand(@"SELECT * FROM INSERTED;", connection);
                var reader  = command.ExecuteReader();
                while (reader.Read())
                {
                    var inserted = new Login.Sqlserver.Login(reader);
                    repo.Apply(inserted, "PUT", false);
                }

                reader.Close();
            }

            break;

            case TriggerAction.Delete:
            {
                var commandDeleted = new SqlCommand(@"SELECT * FROM DELETED;", connection);
                var reader         = commandDeleted.ExecuteReader();
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        var deleted = new Login.Sqlserver.Login(reader);
                        repo.Delete(deleted, false);
                    }

                    reader.Close();
                }
                else
                {
                    SqlContext.Pipe.Send("No rows affected.");
                }
            }

            break;

            default:
                break;
            }
        }
    }