Añadir alertas por código en un área

13/06/2005 - 10:24 por Noe | Informe spam
Hola a todos,
Me gustaría poder añadir una alerta cada vez que creo una subárea por código
en un portal, con el método SPUser.Alerts.Add o SPSite.Alerts.Add no consigo
el resultado esperado porque no quiero crear la alerta sobre ninguna lista
sino sobre el área en general, ¿alguna idea sobre cómo podría hacerlo?
Muchas gracias. Un saludo

Preguntas similare

Leer las respuestas

#1 Gustavo
13/06/2005 - 15:57 | Informe spam
Hola Noe,
Sobre un Area no puedes poner un Alerta, pero si puedes ponerla sobre todas
las listas que el Area contiene (de echo, eso es lo que hace la Interface del
Portal cuando colocas una Alerta para un Area). Deberia funcionar con algo
asi como:

SPWeb MyWeb = getCurrentWeb();
SPListCollection CollLists = MyWeb.Lists;
if (CollLists.Count > 0)
{
SPUser MyUser = getCurrentUser();
MyUser.Alerts.Add(CollLists[0], SPEventType.All,
SPAlertFrequency.Immediate);
}

Es decir, agregar toda la coleccion de listas a un Alerta.
Suerte,
Gustavo
http://www.gavd.net/servers/default.aspx


"Noe" wrote:

Hola a todos,
Me gustaría poder añadir una alerta cada vez que creo una subárea por código
en un portal, con el método SPUser.Alerts.Add o SPSite.Alerts.Add no consigo
el resultado esperado porque no quiero crear la alerta sobre ninguna lista
sino sobre el área en general, ¿alguna idea sobre cómo podría hacerlo?
Muchas gracias. Un saludo
Respuesta Responder a este mensaje
#2 Noe
15/06/2005 - 12:33 | Informe spam
Antes que nada, muchas gracias Gustavo por tu rápida respuesta, es una buena
solución pero así no encontraba la forma de poder añadir las alertas al sitio
personal del usuario...
Después de muchas vueltas he encontrado otra manera de añadir alertas sobre
un área, tal y como se crean cuando pinchamos sobre el link 'Enviarme alerta'.
Comparto el código que he utilizado por si a alguien pudiera interesarle.
TopologyManager myTopologyManager = new TopologyManager();
Uri myUri = new Uri("http://servidor");
PortalSiteCollection MySitesCol = myTopologyManager.PortalSites;
PortalContext myPortalContext =
PortalApplication.GetContext(MySitesCol[myUri]);

AlertManager am=new AlertManager(myPortalContext);
Area a = AreaManager.GetArea(myPortalContext, id);

UserProfileManager upm=new UserProfileManager(myPortalContext);
UserProfile up=upm.GetUserProfile("dominio\\login");
AlertCollection alertas=up.Alerts;

Alert nuevaAlerta=alertas.CreateAlert(AreaAlertType.AreaAlertTypeId);
nuevaAlerta.Name="Área: "+a.Title;
nuevaAlerta.DeliveryChannels.Add(new PortalChannelSettings());
nuevaAlerta.DeliveryChannels.Add(new EmailChannelSettings());
AreaAlertTemplate areaAlert=new AreaAlertTemplate(id,a.Title);
areaAlert.ApplyTemplate(nuevaAlerta);
nuevaAlerta.Commit();


Saludos!


"Gustavo" escribió:

Hola Noe,
Sobre un Area no puedes poner un Alerta, pero si puedes ponerla sobre todas
las listas que el Area contiene (de echo, eso es lo que hace la Interface del
Portal cuando colocas una Alerta para un Area). Deberia funcionar con algo
asi como:

SPWeb MyWeb = getCurrentWeb();
SPListCollection CollLists = MyWeb.Lists;
if (CollLists.Count > 0)
{
SPUser MyUser = getCurrentUser();
MyUser.Alerts.Add(CollLists[0], SPEventType.All,
SPAlertFrequency.Immediate);
}

Es decir, agregar toda la coleccion de listas a un Alerta.
Suerte,
Gustavo
http://www.gavd.net/servers/default.aspx


"Noe" wrote:

> Hola a todos,
> Me gustaría poder añadir una alerta cada vez que creo una subárea por código
> en un portal, con el método SPUser.Alerts.Add o SPSite.Alerts.Add no consigo
> el resultado esperado porque no quiero crear la alerta sobre ninguna lista
> sino sobre el área en general, ¿alguna idea sobre cómo podría hacerlo?
> Muchas gracias. Un saludo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida