using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
namespace MSIT.ItemReceivers
{
class
UpdateContactsEvent : SPItemEventReceiver
{
public
override
void ItemUpdated(SPItemEventProperties properties)
{
UpdateContents(properties);
}
public
override
void ItemAdded(SPItemEventProperties properties)
{
UpdateContents(properties);
}
void UpdateContents(SPItemEventProperties properties)
{
using (SPWeb spWeb = properties.OpenWeb())
{
//Get Lookup List
SPList ContactType = spWeb.Lists["ContactType"];
//Get List Item to be updated
SPListItem Contact = properties.ListItem;
string sContactType = string.Empty;
sContactType = Contact["ContactType"].ToString();
//Get ListItem of Lookup List
SPListItem ContactTypeItem = null;
foreach (SPListItem ContactTypeLoop in ContactType.Items)
{
//We are doing a contains because this is an array lookup but we could explicitly do something like:
//If (ContactTypeLoop["ContactType"].ToString() == Contact["ContactType"].ToString().Split(';')[1].Replace('#','')
if (sContactType.Contains(ContactTypeLoop["ContactType"].ToString()))
{
ContactTypeItem = ContactTypeLoop;
break;
}
}
if (ContactTypeItem == null)
{
throw
new
Exception();
}
//Update Original ListItem
Contact["ExtraData"] = ContactTypeItem["SendChristmasCards"].ToString();
Contact.Update();
}
}
}
} |