Question: Has anyone implemented `IAlertUpdateHandler` interface successfully?

Actually I've to suppress alert subscription notification email. I've following code in `PreUpdate` method:

```
public bool PreUpdate(SPAlert a, SPWeb web, bool newAlert, string properties)
{
    if (CHECK_IF_SUPPRESSING_EMAIL)
    {
        a.Update(false);
    }
    else
    {
        a.Update();
    }
    return true;//have tried returning false also
}

```

but I'm getting `StackOverFlow` exception as the method is called recursively. Any clues about what is going wrong?

EDIT:- I've tried using `PostUpdate` also but got same results.

Answer: 
I know that it might be a bit late for this but I thought put it anyway to help the next one.

I found a solution/hack for this problem.

I beleive that when the alert is created from the UI the system fires an SPAlert.update(), so what I came up with is to do similar but ignore the update called from the UI to do that I added a custom property to the SPAlert property bag.

```
public bool PreUpdate(SPAlert a, SPWeb web, bool newAlert, string properties)
{
    if (CHECK_IF_SUPPRESSING_EMAIL && !a.Properties.ContainsKey("CustomUpdate"))
    {
        //add a property to identify this update
        a.Properties.Add("CustomUpdate", ""); //can be called anything :)
        a.Update(false);
        //return false to ignore the update sent by the UI
        return false;
    }
    else 
    {
       //no changes here proceed with custom behaviour
       return true;
    }

}

```

I have tested and it seems to do the trick hope this helps someone :)

Renzo
I think you need to be using OnNotification in the IAlertNotifyHandler interface.

```
public bool OnNotification(SPAlertHandlerParams ahp)
{
    if (CHECK_IF_SUPPRESSING_EMAIL)    
    {        
        return false;    
    }    
    else    
    {        
        return true;   
    }
}

```