private void AddEventReceivers(SPList calendar) { string assemblyName = "WorkBoxFramework, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=4554acfc19d83350"; string className = "WorkBoxFramework.WBTeamSiteCalendarChangeEventReceiver"; SPEventReceiverDefinition itemAddedEventReceiver = calendar.EventReceivers.Add(); itemAddedEventReceiver.Name = TEAM_SITE_CALENDAR__ADDITIONS; itemAddedEventReceiver.Type = SPEventReceiverType.ItemAdded; itemAddedEventReceiver.SequenceNumber = 1000; itemAddedEventReceiver.Assembly = assemblyName; itemAddedEventReceiver.Class = className; itemAddedEventReceiver.Update(); SPEventReceiverDefinition itemUpdatedEventReceiver = calendar.EventReceivers.Add(); itemUpdatedEventReceiver.Name = TEAM_SITE_CALENDAR__UPDATES; itemUpdatedEventReceiver.Type = SPEventReceiverType.ItemUpdated; itemUpdatedEventReceiver.SequenceNumber = 1000; itemUpdatedEventReceiver.Assembly = assemblyName; itemUpdatedEventReceiver.Class = className; itemUpdatedEventReceiver.Update(); SPEventReceiverDefinition itemDeletedEventReceiver = calendar.EventReceivers.Add(); itemDeletedEventReceiver.Name = TEAM_SITE_CALENDAR__DELETIONS; itemDeletedEventReceiver.Type = SPEventReceiverType.ItemDeleting; itemDeletedEventReceiver.SequenceNumber = 1000; itemDeletedEventReceiver.Assembly = assemblyName; itemDeletedEventReceiver.Class = className; itemDeletedEventReceiver.Update(); }
private void AddEventReceivers(SPList calendar) { string assemblyName = "WorkBoxFramework, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=4554acfc19d83350"; string className = "WorkBoxFramework.WBLinkedCalendarUpdatesEventReceiver"; SPEventReceiverDefinition itemAddedEventReceiver = calendar.EventReceivers.Add(); itemAddedEventReceiver.Name = WorkBox.LINKED_CALENDAR_EVENT_RECEIVER__ITEM_ADDED; itemAddedEventReceiver.Type = SPEventReceiverType.ItemAdded; itemAddedEventReceiver.SequenceNumber = 1000; itemAddedEventReceiver.Assembly = assemblyName; itemAddedEventReceiver.Class = className; itemAddedEventReceiver.Update(); SPEventReceiverDefinition itemUpdatedEventReceiver = calendar.EventReceivers.Add(); itemUpdatedEventReceiver.Name = WorkBox.LINKED_CALENDAR_EVENT_RECEIVER__ITEM_UPDATED; itemUpdatedEventReceiver.Type = SPEventReceiverType.ItemUpdated; itemUpdatedEventReceiver.SequenceNumber = 1000; itemUpdatedEventReceiver.Assembly = assemblyName; itemUpdatedEventReceiver.Class = className; itemUpdatedEventReceiver.Update(); SPEventReceiverDefinition itemDeletedEventReceiver = calendar.EventReceivers.Add(); itemDeletedEventReceiver.Name = WorkBox.LINKED_CALENDAR_EVENT_RECEIVER__ITEM_DELETING; itemDeletedEventReceiver.Type = SPEventReceiverType.ItemDeleting; itemDeletedEventReceiver.SequenceNumber = 1000; itemDeletedEventReceiver.Assembly = assemblyName; itemDeletedEventReceiver.Class = className; itemDeletedEventReceiver.Update(); }
// 取消对以下方法的注释,以便处理激活某个功能后引发的事件。 public override void FeatureActivated(SPFeatureReceiverProperties properties) { SPSite site = (SPSite)properties.Feature.Parent; using (SPWeb web = site.OpenWeb(webName)) { SPList typeList = web.GetList(usertypeListName); string className1 = "CMICT.CSP.Web.CategoryEvents.LookupTypesEvent"; SPEventReceiverDefinition eventReceiverDefinition = typeList.EventReceivers.Add(); eventReceiverDefinition.Class = className1; // String eventReceiverDefinition.Assembly = assemblyName1; // String eventReceiverDefinition.Type = SPEventReceiverType.ItemDeleting; // SPEventReceiverType eventReceiverDefinition.Update(); typeList.Update(true); SPList valueList = web.GetList(uservalueListName); string className2 = "CMICT.CSP.Web.CategoryEvents.LookupValuesEvent"; SPEventReceiverDefinition eventReceiverDefinition2 = valueList.EventReceivers.Add(); eventReceiverDefinition2.Class = className2; // String eventReceiverDefinition2.Assembly = assemblyName1; // String eventReceiverDefinition2.Type = SPEventReceiverType.ItemDeleting; // SPEventReceiverType eventReceiverDefinition2.Update(); valueList.Update(true); } }
/// <summary> /// Adds the event handler to the content type. /// </summary> /// <param name="contentType">The content type.</param> /// <param name="name">The name of the event.</param> /// <param name="assembly">The assembly containin the event receiver.</param> /// <param name="className">Name of the event receiver class.</param> /// <param name="type">The event receiver type.</param> /// <param name="sequence">The sequence.</param> /// <param name="sync">The synchronization type.</param> public void AddEventHandler( SPContentType contentType, string name, string assembly, string className, SPEventReceiverType type, int sequence, SPEventReceiverSynchronization sync) { // Guard if (contentType == null) { throw new ArgumentNullException("contentType"); } SPEventReceiverDefinition definition = GetEventHandler(contentType.EventReceivers, name, type); if (definition == null) { contentType.EventReceivers.Add(type, assembly, className); definition = GetEventHandler(contentType.EventReceivers, className, type); } definition.Name = name; definition.SequenceNumber = sequence; definition.Synchronization = sync; definition.Update(); }
private SPEventReceiverDefinition AddEventReceiverDefinition(SPList list, SPEventReceiverType type, string assemblyName, string className, SPEventReceiverSynchronization syncType, int sequenceNumber) { SPEventReceiverDefinition eventReceiverDefinition = null; // Try Parse the Assembly Name var classType = Type.GetType(string.Format(CultureInfo.InvariantCulture, "{0}, {1}", className, assemblyName)); if (classType != null) { var assembly = Assembly.GetAssembly(classType); var isAlreadyDefined = list.EventReceivers.Cast <SPEventReceiverDefinition>().Any(x => (x.Class == className) && (x.Type == type)); // If definition isn't already defined, add it to the list if (!isAlreadyDefined) { eventReceiverDefinition = list.EventReceivers.Add(); eventReceiverDefinition.Type = type; eventReceiverDefinition.Assembly = assembly.FullName; eventReceiverDefinition.Synchronization = syncType; eventReceiverDefinition.Class = className; eventReceiverDefinition.SequenceNumber = sequenceNumber; eventReceiverDefinition.Update(); list.Update(); } } return(eventReceiverDefinition); }
/// <summary> /// Adds an event receiver to the specified target /// </summary> /// <param name="url">The URL.</param> /// <param name="contentTypeName">Name of the content type.</param> /// <param name="target">The target.</param> /// <param name="assembly">The assembly.</param> /// <param name="className">Name of the class.</param> /// <param name="type">The type.</param> /// <param name="sequence">The sequence.</param> /// <param name="name">The name.</param> public static void Add(string url, string contentTypeName, TargetEnum target, string assembly, string className, SPEventReceiverType type, int sequence, string name) { using (SPSite site = new SPSite(url)) using (SPWeb web = site.OpenWeb()) { SPContentType contentType = null; SPEventReceiverDefinitionCollection eventReceivers; if (target == TargetEnum.List) { SPList list = Utilities.GetListFromViewUrl(web, url); if (list == null) { throw new Exception("List not found."); } eventReceivers = list.EventReceivers; } else if (target == TargetEnum.Site) { eventReceivers = web.EventReceivers; } else { try { contentType = web.AvailableContentTypes[contentTypeName]; } catch (ArgumentException) { } if (contentType == null) { throw new SPSyntaxException("The specified content type could not be found."); } eventReceivers = contentType.EventReceivers; } SPEventReceiverDefinition def = Add(eventReceivers, type, assembly, className, name); if (sequence >= 0) { def.SequenceNumber = sequence; def.Update(); } if (contentType != null) { try { contentType.Update((contentType.ParentList == null)); } catch (Exception ex) { Exception ex1 = new Exception("An error occured updating the content type. Most likely the content type was updated but changes may not have been pushed down to any children.", ex); Logger.WriteException(new ErrorRecord(ex1, null, ErrorCategory.NotSpecified, contentType)); } } } }
/// <summary> /// Добавить списку <paramref name="list"/> EventReceiver с именем <paramref name="name"/>. /// </summary> /// <param name="name">User friendly name for EventReceiver</param> /// <param name="list">SPList, к которому добавляется EventReceiver </param> /// <param name="typeClassReceiver">Тип (класс), в котором реализован метод-обработчик соответствующего EventReceiver'а</param> /// <param name="typeReceiver">Тип EventReceiver'а. Используйте только типы EventReceiver'ов, которые используются для СПИСКОВ (SPList)</param> /// <param name="synchronizationValue" >Синхронное или Асинхронное</param> /// <param name="sequenceNumber">Число, представляющее место данного события в последовательности событий</param> /// <exception cref="ArgumentNullException">Возникает если следующие параметры равны null: <paramref name="name"/>, <paramref name="list"/>, <paramref name="typeClassReceiver"/>. /// </exception> /// <exception cref="ArgumentException">Возникает если у списка уже есть Event ресивер типа <paramref name="typeReceiver"/> реализованный с помощью класса <paramref name="typeClassReceiver"/> /// </exception> public static void AddListEventReceiver(string name, SPList list, Type typeClassReceiver, SPEventReceiverType typeReceiver, SPEventReceiverSynchronization synchronizationValue, int sequenceNumber) { #region Проверка входящих параметров на null if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (list == null) { throw new ArgumentNullException("list"); } if (typeClassReceiver == null) { throw new ArgumentNullException("typeClassReceiver"); } #endregion var eventReceiverAssembly = typeClassReceiver.Assembly.FullName; var eventReceiverClass = typeClassReceiver.FullName; #region Проверяем есть ли уже в списке такой Event Reciever. for (var i = 0; i < list.EventReceivers.Count; i++) { var eventReceiverDefinition = list.EventReceivers[i]; if (String.Equals(eventReceiverDefinition.Name, name)) { throw new ArgumentException("Event Receiver с таким именем уже существует.", "name"); } if (eventReceiverDefinition.Assembly == eventReceiverAssembly && eventReceiverDefinition.Class == eventReceiverClass && eventReceiverDefinition.Type == typeReceiver) { throw new ArgumentException( String.Format("Такой Event Receiver уже существует. eventReceiverClass = {0} eventReceiverAssembly = {1}, typeReceiver = {2}", eventReceiverClass, eventReceiverAssembly, typeReceiver)); } } #endregion // Создаём новый EventReceiver SPEventReceiverDefinition newEventReceiverDefinition = list.EventReceivers.Add(); newEventReceiverDefinition.Type = typeReceiver; newEventReceiverDefinition.Assembly = typeClassReceiver.Assembly.FullName; newEventReceiverDefinition.Class = typeClassReceiver.FullName; // Задаём правильное имя EventReceiver'у newEventReceiverDefinition.Name = name; // Задаём тип синхронизации newEventReceiverDefinition.Synchronization = synchronizationValue; newEventReceiverDefinition.SequenceNumber = sequenceNumber; newEventReceiverDefinition.Update(); }
public static void Delete(this SPEventReceiverDefinitionCollection collection, string name) { SPEventReceiverDefinition receiverDefinition = collection.Cast <SPEventReceiverDefinition>() .SingleOrDefault(receiver => string.Equals(receiver.Name, name)); if (receiverDefinition != null) { receiverDefinition.Delete(); receiverDefinition.Update(); } }
private void BindEventReceiver(SPContentType contentType, string eventClassName, SPEventReceiverType eventType) { SPEventReceiverDefinition eventReceiver = contentType.EventReceivers.Add(); eventReceiver.Class = eventClassName; eventReceiver.Assembly = _assemblyName; eventReceiver.Type = eventType; eventReceiver.Data = string.Empty; eventReceiver.Update(); contentType.Update(true); }
//public static List<SPFile> GetRelateddocuments(this SPListItem item) //{ // List<SPFile> listFile = new List<SPFile>(); // string contractNumberFieldName = item.Web.Site.GetFeaturePropertyValue(Constants.Workflow.INTEL_WF_FEATURE_ID, Constants.Workflow.CONTRACT_NUMBER_FIELD_NAME); // if (string.IsNullOrEmpty(contractNumberFieldName) || !item.Fields.ContainsField(contractNumberFieldName)) // return null; // if (item[contractNumberFieldName] == null) return null; // string contentTypeFieldName = item.Web.Site.GetFeaturePropertyValue(Constants.Workflow.INTEL_WF_FEATURE_ID, Constants.Workflow.CONTENT_TYPE_FIELD_NAME); // if (string.IsNullOrEmpty(contentTypeFieldName) || !item.Web.Site.RootWeb.AvailableFields.ContainsField(contentTypeFieldName)) // return null; // string includeWithDeliveryFieldName = item.Web.Site.GetFeaturePropertyValue(Constants.Workflow.INTEL_WF_FEATURE_ID, Constants.Workflow.INCLUDE_WITH_DELIVERY_FIELD_NAME); // if (string.IsNullOrEmpty(includeWithDeliveryFieldName) || !item.Web.Site.RootWeb.AvailableFields.ContainsField(includeWithDeliveryFieldName)) // return null; // string relatedContractNumberFieldName = item.Web.Site.GetFeaturePropertyValue(Constants.Workflow.INTEL_WF_FEATURE_ID, Constants.Workflow.RELATED_CONTRACT_NUMBER_FIELD_NAME); // if (string.IsNullOrEmpty(relatedContractNumberFieldName) || !item.Web.Site.RootWeb.AvailableFields.ContainsField(relatedContractNumberFieldName)) // return null; // SPField contractNumberField = item.Fields[contractNumberFieldName]; // SPField contentTypeField = item.Web.Site.RootWeb.AvailableFields[contentTypeFieldName]; // SPField includeWithDeliveryField = item.Web.Site.RootWeb.AvailableFields[includeWithDeliveryFieldName]; // SPField relatedContractNumberField = item.Web.Site.RootWeb.AvailableFields[relatedContractNumberFieldName]; // SearchCriteria criteriaContentType = new SearchCriteria(); // criteriaContentType.FieldId = contentTypeField.Id.ToString(); // criteriaContentType.FieldType = contentTypeField.Type; // criteriaContentType.Operator = Operators.Equal; // criteriaContentType.Value = "Attachment"; // SearchCriteria criteriaIncludeWithDelivery = new SearchCriteria(); // criteriaIncludeWithDelivery.FieldId = includeWithDeliveryField.Id.ToString(); // criteriaIncludeWithDelivery.FieldType = includeWithDeliveryField.Type; // criteriaIncludeWithDelivery.Operator = Operators.Equal; // criteriaIncludeWithDelivery.Value = "1"; // SearchCriteria criteriaRelatedContractNumber = new SearchCriteria(); // criteriaRelatedContractNumber.FieldId = relatedContractNumberField.Id.ToString(); // criteriaRelatedContractNumber.FieldType = relatedContractNumberField.Type; // criteriaRelatedContractNumber.Operator = Operators.Equal; // criteriaRelatedContractNumber.Value = item[contractNumberFieldName].ToString(); // List<SearchCriteria> searchCriteriaList = new List<SearchCriteria>(); // searchCriteriaList.Add(criteriaContentType); // searchCriteriaList.Add(criteriaIncludeWithDelivery); // searchCriteriaList.Add(criteriaRelatedContractNumber); // SearchDefinition searchDefinition = new SearchDefinition(); // searchDefinition.UseGlobalOperatorOR = false; // searchDefinition.SearchCriteriaList = searchCriteriaList; // FieldSetting contractNumberFieldResult = new FieldSetting(); // contractNumberFieldResult.FieldId = contractNumberField.Id.ToString(); // List<FieldSetting> resultFields = new List<FieldSetting>(); // resultFields.Add(contractNumberFieldResult); // string strCAML = CAMLHelper.GetCAMLQueryFromSearchDefinition(searchDefinition); // SPSiteDataQuery dataQuery = new SPSiteDataQuery(); // dataQuery.Query = strCAML; // dataQuery.Lists = CAMLHelper.GetCAMLListBaseTypeSearch(SearchListBaseType.DocumentLibrary); // dataQuery.ViewFields = CAMLHelper.GetCAMLFieldsResult(item.Web, null, resultFields); // dataQuery.Webs = CAMLHelper.GetCAMLScopeSearch(0); // try // { // DataTable searchResultsData = null; // searchResultsData = item.Web.GetSiteData(dataQuery); // foreach (DataRow row in searchResultsData.Rows) // { // SPList list = item.Web.Lists.GetList(new Guid(row["ListId"].ToString()), false); // SPListItem itemGet = list.GetItemById(Convert.ToInt32(row["ID"].ToString())); // if (itemGet.File != null) // listFile.Add(itemGet.File); // } // } // catch { } // return listFile; //} public static void AddEventReceiver(this SPList list, string eventName, SPEventReceiverType type, string assemblyName, string className) { SPEventReceiverDefinition eventDefinition = list.EventReceivers.Add(); eventDefinition.Name = eventName; eventDefinition.Type = type; eventDefinition.Synchronization = SPEventReceiverSynchronization.Synchronous; eventDefinition.Assembly = assemblyName; eventDefinition.Class = className; eventDefinition.Update(); }
private static void AddReceiverToList(SPList list, string rName, SPEventReceiverType rType, int seq) { if (!list.EventReceivers.Cast <SPEventReceiverDefinition>().Any(r => r.Name == rName)) { SPEventReceiverDefinition _def = list.EventReceivers.Add(); _def.Assembly = Assembly.GetExecutingAssembly().FullName; _def.Class = "Roster.Presentation.EventReceivers.SyncDataReceiver"; _def.Name = rName; _def.Type = rType; _def.SequenceNumber = seq; _def.Synchronization = SPEventReceiverSynchronization.Default; _def.Update(); } }
static void Main(string[] args) { #region ItemAdded try { using (SPSite site = new SPSite("http://sp:1220/sites/SPSite/")) { using (SPWeb web = site.OpenWeb()) { SPList list = web.Lists["Country"]; SPEventReceiverDefinition def = list.EventReceivers.Add(); def.Assembly = "ConsoleApplicationExecutingEventReceiver, Version=1.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c";//604f58e28557db00 def.Class = "ConsoleApplicationExecutingEventReceiver.ASyncEvents"; def.Name = "ItemAdded Event"; def.Type = SPEventReceiverType.ItemAdded; def.SequenceNumber = 1000; def.Synchronization = SPEventReceiverSynchronization.Synchronous; def.Update(); } } } catch (Exception e) { Console.WriteLine(e.Message); } #endregion #region ItemDeleting // Console.ReadKey(); // SPSite collection = new SPSite(http://sitename/); // SPUser user = new SPUser(); // SPWeb site = collection.RootWeb; // SPList list = site.Lists["Program"]; // string asmName = "DeleteData, Version=1.0.0.0, Culture=neutral, PublicKeyToken=21ce19119994750e"; // string className = " DeleteData.DeleteRefrence"; // // Register the events with the list // list.EventReceivers.Add(SPEventReceiverType.ItemDeleting, asmName, className); //// Clean up the code // site.Dispose(); // collection.Dispose(); // Console.WriteLine("Sucessfully Registered"); // // Return to calling environment : Success // Environment.Exit(0); #endregion }
internal void CreateJobsList(SPWeb spWeb) { string listTitle = "Jobs"; string listDescription = "List of jobs and assignments."; Dictionary <string, SPFieldType> columns = new Dictionary <string, SPFieldType>(); // The "Title" column will be added based on the GenericList template. That field // will be used as the category name for the job (e.g., Shopping), so only need to add // the remaining fields. columns.Add("Description", SPFieldType.Text); columns.Add("AssignedTo", SPFieldType.Text); // Creating list (or retrieving GUID for list if it already exists). Guid listId = CreateCustomList(spWeb, listTitle, listDescription, columns, false); if (listId.Equals(Guid.Empty)) { return; } SPList list = spWeb.Lists[listId]; // Add event receiver (if the current Jobs list is not already associated with the receiver). bool ReceiverExists = false; string receiverClassName = "PushNotificationsList.ListItemEventReceiver"; for (int i = 0; i < list.EventReceivers.Count; i++) { SPEventReceiverDefinition rd = list.EventReceivers[i]; if (rd.Class == receiverClassName && rd.Type == SPEventReceiverType.ItemAdded) { ReceiverExists = true; break; } } if (ReceiverExists == false) { SPEventReceiverDefinition eventReceiver = list.EventReceivers.Add(); // Must specify information here for this specific assembly. eventReceiver.Assembly = "PushNotificationsList, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=c8c80701196c142d"; eventReceiver.Class = receiverClassName; eventReceiver.Name = "ItemAdded Event"; eventReceiver.Type = SPEventReceiverType.ItemAdded; eventReceiver.SequenceNumber = 10000; eventReceiver.Synchronization = SPEventReceiverSynchronization.Synchronous; eventReceiver.Update(); } }
private void EventReceiverPropertyGrid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) { try { if (this.EventReceiverPropertyGrid.SelectedObject != null) { SPEventReceiverDefinition definition = (SPEventReceiverDefinition)this.EventReceiverPropertyGrid.SelectedObject; definition.Update(); } } catch (Exception ex) { this.HandleException(ex); } }
public void RegisterItemEventHandler(ref SPList list, Type receiverClassType, SPEventReceiverType receiverType, int sequence, SPEventReceiverSynchronization sync) { SPEventReceiverDefinition def = GetEventReceiver(ref list, receiverClassType, receiverType); if (def == null) { def = list.EventReceivers.Add(); def.Assembly = receiverClassType.Assembly.FullName; //"ERDefinition, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=704f58d28567dc00"; def.Class = receiverClassType.Name; // "ERDefinition.ItemEvents"; def.Name = receiverClassType.Name + "_" + receiverType.ToString(); //ItemAdded Event"; def.Type = receiverType; } def.SequenceNumber = sequence; def.Synchronization = sync; def.Update(); }
/// <summary> /// Adds an event receiver to a the specified event receiver definition collection. /// </summary> /// <param name="eventReceivers">The event receivers.</param> /// <param name="eventReceiverType">Type of the event receiver.</param> /// <param name="assembly">The assembly.</param> /// <param name="className">Name of the class.</param> /// <param name="name">The name.</param> /// <returns></returns> public static SPEventReceiverDefinition Add(SPEventReceiverDefinitionCollection eventReceivers, SPEventReceiverType eventReceiverType, string assembly, string className, string name) { SPEventReceiverDefinition def = GetEventReceiver(eventReceivers, eventReceiverType, assembly, className); if (def == null) { eventReceivers.Add(eventReceiverType, assembly, className); def = GetEventReceiver(eventReceivers, eventReceiverType, assembly, className); if (def != null && !String.IsNullOrEmpty(name)) { def.Name = name; def.Update(); } return(def); } return(def); }
public static void Register(this SPEventReceiverDefinitionCollection collection, string name, Type receiverType, SPEventReceiverType actionsToHandle, SPEventReceiverSynchronization synchronization = SPEventReceiverSynchronization.Synchronous, int sequenceNumber = 11000) { SPEventReceiverDefinition receiverDefinition = collection.Cast <SPEventReceiverDefinition>() .SingleOrDefault(receiver => string.Equals(receiver.Name, name)); if (receiverDefinition == null) { receiverDefinition = collection.Add(); receiverDefinition.Name = name; receiverDefinition.Synchronization = synchronization; receiverDefinition.Type = actionsToHandle; receiverDefinition.SequenceNumber = sequenceNumber; receiverDefinition.Assembly = receiverType.Assembly.ToString(); receiverDefinition.Class = receiverType.FullName; receiverDefinition.Update(); } }
private SPEventReceiverDefinition AddEventReceiverDefinition(SPContentType contentType, SPEventReceiverType type, Assembly assembly, string className, SPEventReceiverSynchronization syncType) { SPEventReceiverDefinition eventReceiverDefinition = null; var isAlreadyDefined = contentType.EventReceivers.Cast <SPEventReceiverDefinition>() .Any(x => (x.Class == className) && (x.Type == type)); // If definition isn't already defined, add it to the content type if (!isAlreadyDefined) { eventReceiverDefinition = contentType.EventReceivers.Add(); eventReceiverDefinition.Type = type; eventReceiverDefinition.Assembly = assembly.FullName; eventReceiverDefinition.Synchronization = syncType; eventReceiverDefinition.Class = className; eventReceiverDefinition.Update(); contentType.Update(true); } return(eventReceiverDefinition); }
/// <summary> /// A site was provisioned. /// </summary> public override void WebProvisioned(SPWebEventProperties properties) { base.WebProvisioned(properties); try { SPEventReceiverDefinition pageAddedEvt = properties.Web.Site.EventReceivers .OfType <SPEventReceiverDefinition>() .FirstOrDefault(evt => evt.Name == "EVT_PageCreatedItemAdded"); if (pageAddedEvt != null) { foreach (SPList list in properties.Web.Lists.OfType <SPList>().Where(l => !l.Hidden && l.BaseType == SPBaseType.DocumentLibrary)) { SPEventReceiverDefinition newEvt = list.EventReceivers.Add(pageAddedEvt.Id); newEvt.Update(); list.Update(); } } } catch { } }
internal static void CreateReceiverDefinitions(SPWeb web) { SPSecurity.RunWithElevatedPrivileges(delegate() { using (new SPMonitoredScope("Append RoleEventReceiver Zimbra")) { SPEventReceiverDefinition RoleAssignmentAdded = web.EventReceivers.Add(); RoleAssignmentAdded.Name = "Zimbra RoleAssignment Added"; RoleAssignmentAdded.Type = SPEventReceiverType.RoleAssignmentAdded; RoleAssignmentAdded.Assembly = Assembly.GetExecutingAssembly().FullName; RoleAssignmentAdded.Class = "ClubCloud.Provider.ZimbraRoleEventReceiver"; RoleAssignmentAdded.Update(); SPEventReceiverDefinition RoleAssignmentAdding = web.EventReceivers.Add(); RoleAssignmentAdding.Name = "Zimbra RoleAssignment Adding"; RoleAssignmentAdding.Type = SPEventReceiverType.RoleAssignmentAdding; RoleAssignmentAdding.Assembly = Assembly.GetExecutingAssembly().FullName; RoleAssignmentAdding.Class = "ClubCloud.Provider.ZimbraRoleEventReceiver"; RoleAssignmentAdding.Update(); SPEventReceiverDefinition RoleAssignmentDeleted = web.EventReceivers.Add(); RoleAssignmentDeleted.Name = "Zimbra RoleAssignment Deleted"; RoleAssignmentDeleted.Type = SPEventReceiverType.RoleAssignmentDeleted; RoleAssignmentDeleted.Assembly = Assembly.GetExecutingAssembly().FullName; RoleAssignmentDeleted.Class = "ClubCloud.Provider.ZimbraRoleEventReceiver"; RoleAssignmentDeleted.Update(); SPEventReceiverDefinition RoleAssignmentDeleting = web.EventReceivers.Add(); RoleAssignmentDeleting.Name = "Zimbra RoleAssignment Deleting"; RoleAssignmentDeleting.Type = SPEventReceiverType.RoleAssignmentDeleting; RoleAssignmentDeleting.Assembly = Assembly.GetExecutingAssembly().FullName; RoleAssignmentDeleting.Class = "ClubCloud.Provider.ZimbraRoleEventReceiver"; RoleAssignmentDeleting.Update(); SPEventReceiverDefinition RoleDefinitionAdded = web.EventReceivers.Add(); RoleDefinitionAdded.Name = "Zimbra RoleDefinition Added"; RoleDefinitionAdded.Type = SPEventReceiverType.RoleDefinitionAdded; RoleDefinitionAdded.Assembly = Assembly.GetExecutingAssembly().FullName; RoleDefinitionAdded.Class = "ClubCloud.Provider.ZimbraRoleEventReceiver"; RoleDefinitionAdded.Update(); SPEventReceiverDefinition RoleDefinitionAdding = web.EventReceivers.Add(); RoleDefinitionAdding.Name = "Zimbra RoleDefinition Adding"; RoleDefinitionAdding.Type = SPEventReceiverType.RoleDefinitionAdding; RoleDefinitionAdding.Assembly = Assembly.GetExecutingAssembly().FullName; RoleDefinitionAdding.Class = "ClubCloud.Provider.ZimbraRoleEventReceiver"; RoleDefinitionAdding.Update(); SPEventReceiverDefinition RoleDefinitionDeleted = web.EventReceivers.Add(); RoleDefinitionDeleted.Name = "Zimbra RoleDefinition Deleted"; RoleDefinitionDeleted.Type = SPEventReceiverType.RoleDefinitionDeleted; RoleDefinitionDeleted.Assembly = Assembly.GetExecutingAssembly().FullName; RoleDefinitionDeleted.Class = "ClubCloud.Provider.ZimbraRoleEventReceiver"; RoleDefinitionDeleted.Update(); SPEventReceiverDefinition RoleDefinitionDeleting = web.EventReceivers.Add(); RoleDefinitionDeleting.Name = "Zimbra RoleDefinition Deleting"; RoleDefinitionDeleting.Type = SPEventReceiverType.RoleDefinitionDeleting; RoleDefinitionDeleting.Assembly = Assembly.GetExecutingAssembly().FullName; RoleDefinitionDeleting.Class = "ClubCloud.Provider.ZimbraRoleEventReceiver"; RoleDefinitionDeleting.Update(); SPEventReceiverDefinition RoleDefinitionUpdated = web.EventReceivers.Add(); RoleDefinitionUpdated.Name = "Zimbra RoleDefinition Updated"; RoleDefinitionUpdated.Type = SPEventReceiverType.RoleDefinitionUpdated; RoleDefinitionUpdated.Assembly = Assembly.GetExecutingAssembly().FullName; RoleDefinitionUpdated.Class = "ClubCloud.Provider.ZimbraRoleEventReceiver"; RoleDefinitionUpdated.Update(); SPEventReceiverDefinition RoleDefinitionUpdating = web.EventReceivers.Add(); RoleDefinitionUpdating.Name = "Zimbra RoleDefinition Updating"; RoleDefinitionUpdating.Type = SPEventReceiverType.RoleDefinitionUpdating; RoleDefinitionUpdating.Assembly = Assembly.GetExecutingAssembly().FullName; RoleDefinitionUpdating.Class = "ClubCloud.Provider.ZimbraRoleEventReceiver"; RoleDefinitionUpdating.Update(); web.Update(); } }); }
void saveButton_Click(object sender, EventArgs e) { if (PowerEventReceiversHelper.IsUserInPowerEventReceiversGroup == false) { throw new SecurityException("Access Denied! Current user is not a farm administrator."); } if (scriptProperty == null) { scriptProperty = new SPFeatureProperty(propNameScript, scriptBox.Text); feature.Properties.Add(scriptProperty); } else { scriptProperty.Value = scriptBox.Text; } if (sequenceProperty == null) { sequenceProperty = new SPFeatureProperty(propNameSequence, sequenceNumber.Text); feature.Properties.Add(sequenceProperty); } else { sequenceProperty.Value = sequenceNumber.Text; } if (synchronousProperty == null) { synchronousProperty = new SPFeatureProperty(propNameSynchronous, checkBoxSynchronous.Checked.ToString()); feature.Properties.Add(synchronousProperty); } else { synchronousProperty.Value = checkBoxSynchronous.Checked.ToString(); } feature.Properties.Update(); //clean power event receivers List <SPEventReceiverDefinition> receiversToDelete = new List <SPEventReceiverDefinition>(); SPEventReceiverDefinitionCollection receivers = null; if (eventType == PowerEventType.Item || eventType == PowerEventType.List) { receivers = list.EventReceivers; } else { receivers = web.EventReceivers; } foreach (SPEventReceiverDefinition receiver in receivers) { if (receiver.Class == typeof(PowerItemEventReceiver).FullName) { receiversToDelete.Add(receiver); } } foreach (SPEventReceiverDefinition receiver in receiversToDelete) { receiver.Delete(); } if (!String.IsNullOrEmpty(sequenceNumber.Text)) { Runspace runspace = null; try { SPSecurity.RunWithElevatedPrivileges(() => { runspace = RunspaceFactory.CreateRunspace(); runspace.Open(); Pipeline pipe = runspace.CreatePipeline(scriptBox.Text); pipe.Invoke(); pipe = runspace.CreatePipeline("get-childitem function:\\"); Collection <PSObject> results = pipe.Invoke(); string[] receiverTypes = Enum.GetNames(typeof(SPEventReceiverType)); foreach (PSObject obj in results) { FunctionInfo func = (FunctionInfo)obj.BaseObject; if (receiverTypes.Contains(func.Name)) { SPEventReceiverDefinition eventReceiverDef = null; if (eventType == PowerEventType.Web) { eventReceiverDef = web.EventReceivers.Add(); } else { eventReceiverDef = list.EventReceivers.Add(); } eventReceiverDef.Assembly = Assembly.GetExecutingAssembly().FullName; eventReceiverDef.Class = eventDefinitionType; eventReceiverDef.Type = (SPEventReceiverType)Enum.Parse(typeof(SPEventReceiverType), func.Name); eventReceiverDef.SequenceNumber = int.Parse(sequenceNumber.Text); eventReceiverDef.Synchronization = (Boolean.Parse(synchronousProperty.Value) || func.Name.Contains("ing")) ? SPEventReceiverSynchronization.Synchronous : SPEventReceiverSynchronization.Asynchronous; eventReceiverDef.Update(); } } }); Response.Redirect(redirectUrl, true); } catch (Exception ex) { literalError.Text = String.Format("<div style='Color:red'><b>{0}</b></div>", ex.Message); literalError.Text += String.Format("<div>{0}</div>", HttpUtility.HtmlEncode(ex.StackTrace)); } finally { if (runspace != null && runspace.RunspaceStateInfo.State != RunspaceState.Closed) { runspace.Close(); runspace = null; } } } }
public void Update() { m_eventReceiverDefinition.Update(); }
public virtual void UpdateEventReceiver(SPEventReceiverDefinition eventReceiver, string eventReceiverName, string assembly, string className, SPEventReceiverType type, SPEventReceiverSynchronization sync, int? sequenceNumber) { eventReceiver.Name = eventReceiverName; eventReceiver.Assembly = assembly; eventReceiver.Class = className; eventReceiver.Synchronization = sync; if (sequenceNumber.HasValue) eventReceiver.SequenceNumber = sequenceNumber.Value; eventReceiver.Update(); }
public override void FeatureActivated(SPFeatureReceiverProperties properties) { try { SPWeb web = (SPWeb)properties.Feature.Parent; SPWeb parentWeb = web.Site.RootWeb; SPList eventLog = parentWeb.Lists.TryGetList("CCPEventFeatureLog"); SPListItem eventLogItem = eventLog.AddItem(); SPList proposals = web.Lists.TryGetList("Proposals"); SPList contracts = web.Lists.TryGetList("Contracts"); if (proposals != null) //attach receiver to proposals { string id = proposals.ID.ToString(); Guid guid = new Guid(id); SPEventReceiverDefinition receiver1 = proposals.EventReceivers.Add(guid, proposals); receiver1.Name = "ListEvents"; receiver1.Assembly = System.Reflection.Assembly.GetExecutingAssembly().FullName; receiver1.Class = "ClientCenterProject.ListEvents"; receiver1.Type = SPEventReceiverType.ItemAdded; receiver1.Synchronization = SPEventReceiverSynchronization.Synchronous; receiver1.SequenceNumber = 50984; receiver1.Update(); //Add log to eventlog eventLogItem["Proposals"] = "Receiver attach to " + proposals.Title + " at: " + web.Title + " : " + web.Url; eventLogItem.Update(); } //if else { //Add log to eventlog eventLogItem["Proposals"] = "No Proposals at: " + web.Title + " : " + web.Url; eventLogItem.Update(); } if (contracts != null) //attach receiver to contracts { string id = contracts.ID.ToString(); Guid guid = new Guid(id); SPEventReceiverDefinition receiver2 = contracts.EventReceivers.Add(guid, contracts); receiver2.Name = "ListEvents"; receiver2.Assembly = System.Reflection.Assembly.GetExecutingAssembly().FullName; receiver2.Class = "ClientCenterProject.ListEvents"; receiver2.Type = SPEventReceiverType.ItemAdded; receiver2.Synchronization = SPEventReceiverSynchronization.Synchronous; receiver2.SequenceNumber = 50985; receiver2.Update(); //Add log to eventlog eventLogItem["Contracts"] = "Receiver attach to " + contracts.Title + " at: " + web.Title + " : " + web.Url; eventLogItem.Update(); } //if else { //Add log to eventlog eventLogItem["Contracts"] = "No Contracts at: " + web.Title + " : " + web.Url; eventLogItem.Update(); } } catch (Exception e) { SPWeb web = (SPWeb)properties.Feature.Parent; SPWeb parentWeb = web.Site.RootWeb; SPList eventLog = parentWeb.Lists.TryGetList("CCPEventFeatureLog"); SPListItem item = eventLog.AddItem(); item["CCPWebEvents"] = "FeatureActivated : " + e.Message; item.Update(); } }
void saveButton_Click(object sender, EventArgs e) { if (SPFarm.Local.CurrentUserIsAdministrator() == false) { throw new SecurityException("Access Denied! Current user is not a farm administrator."); } if (scriptProperty == null) { scriptProperty = new SPFeatureProperty(propNameScript, scriptBox.Text); feature.Properties.Add(scriptProperty); } else { scriptProperty.Value = scriptBox.Text; } if (sequenceProperty == null) { sequenceProperty = new SPFeatureProperty(propNameSequence, sequenceNumber.Text); feature.Properties.Add(sequenceProperty); } else { sequenceProperty.Value = sequenceNumber.Text; } feature.Properties.Update(); //clean power event receivers List <SPEventReceiverDefinition> receiversToDelete = new List <SPEventReceiverDefinition>(); SPEventReceiverDefinitionCollection receivers = null; if (eventType == PowerEventType.Item || eventType == PowerEventType.List) { receivers = list.EventReceivers; } else { receivers = web.EventReceivers; } foreach (SPEventReceiverDefinition receiver in receivers) { if (receiver.Class == typeof(PowerItemEventReceiver).FullName) { receiversToDelete.Add(receiver); } } foreach (SPEventReceiverDefinition receiver in receiversToDelete) { receiver.Delete(); } if (!String.IsNullOrEmpty(sequenceNumber.Text)) { Runspace runspace = null; try { runspace = RunspaceFactory.CreateRunspace(); runspace.Open(); Pipeline pipe = runspace.CreatePipeline(scriptBox.Text); pipe.Invoke(); pipe = runspace.CreatePipeline("get-childitem function:\\"); Collection <PSObject> results = pipe.Invoke(); string[] receiverTypes = Enum.GetNames(typeof(SPEventReceiverType)); foreach (PSObject obj in results) { FunctionInfo func = (FunctionInfo)obj.BaseObject; if (receiverTypes.Contains(func.Name)) { SPEventReceiverDefinition eventReceiverDef = null; if (eventType == PowerEventType.Web) { eventReceiverDef = web.EventReceivers.Add(); } else { eventReceiverDef = list.EventReceivers.Add(); } eventReceiverDef.Assembly = Assembly.GetExecutingAssembly().FullName; eventReceiverDef.Class = eventDefinitionType; eventReceiverDef.Type = (SPEventReceiverType)Enum.Parse(typeof(SPEventReceiverType), func.Name); eventReceiverDef.SequenceNumber = int.Parse(sequenceNumber.Text); eventReceiverDef.Update(); } } } catch (Exception ex) { throw ex; } finally { if (runspace != null && runspace.RunspaceStateInfo.State != RunspaceState.Closed) { runspace.Close(); runspace = null; } } } Response.Redirect(redirectUrl, true); }
internal static void CreateReceiverDefinitions(SPWeb web) { SPSecurity.RunWithElevatedPrivileges(delegate() { using (new SPMonitoredScope("Create GroupEventReceivers Zimbra")) { SPEventReceiverDefinition GroupAdded = web.EventReceivers.Add(); GroupAdded.Name = "Zimbra Group Added"; GroupAdded.Type = SPEventReceiverType.GroupAdded; GroupAdded.Assembly = Assembly.GetExecutingAssembly().FullName; GroupAdded.Class = "ClubCloud.Provider.ZimbraGroupEventReceiver"; GroupAdded.Update(); SPEventReceiverDefinition GroupAdding = web.EventReceivers.Add(); GroupAdding.Name = "Zimbra Group Adding"; GroupAdding.Type = SPEventReceiverType.GroupAdding; GroupAdding.Assembly = Assembly.GetExecutingAssembly().FullName; GroupAdding.Class = "ClubCloud.Provider.ZimbraGroupEventReceiver"; GroupAdding.Update(); SPEventReceiverDefinition GroupDeleted = web.EventReceivers.Add(); GroupDeleted.Name = "Zimbra Group Deleted"; GroupDeleted.Type = SPEventReceiverType.GroupDeleted; GroupDeleted.Assembly = Assembly.GetExecutingAssembly().FullName; GroupDeleted.Class = "ClubCloud.Provider.ZimbraGroupEventReceiver"; GroupDeleted.Update(); SPEventReceiverDefinition GroupDeleting = web.EventReceivers.Add(); GroupDeleting.Name = "Zimbra Group Deleting"; GroupDeleting.Type = SPEventReceiverType.GroupDeleting; GroupDeleting.Assembly = Assembly.GetExecutingAssembly().FullName; GroupDeleting.Class = "ClubCloud.Provider.ZimbraGroupEventReceiver"; GroupDeleting.Update(); SPEventReceiverDefinition GroupUpdated = web.EventReceivers.Add(); GroupUpdated.Name = "Zimbra Group Updated"; GroupUpdated.Type = SPEventReceiverType.GroupUpdated; GroupUpdated.Assembly = Assembly.GetExecutingAssembly().FullName; GroupUpdated.Class = "ClubCloud.Provider.ZimbraGroupEventReceiver"; GroupUpdated.Update(); SPEventReceiverDefinition GroupUpdating = web.EventReceivers.Add(); GroupUpdating.Name = "Zimbra Group Updating"; GroupUpdating.Type = SPEventReceiverType.GroupUpdating; GroupUpdating.Assembly = Assembly.GetExecutingAssembly().FullName; GroupUpdating.Class = "ClubCloud.Provider.ZimbraGroupEventReceiver"; GroupUpdating.Update(); SPEventReceiverDefinition GroupUserAdded = web.EventReceivers.Add(); GroupUserAdded.Name = "Zimbra Group User Added"; GroupUserAdded.Type = SPEventReceiverType.GroupUserAdded; GroupUserAdded.Assembly = Assembly.GetExecutingAssembly().FullName; GroupUserAdded.Class = "ClubCloud.Provider.ZimbraGroupEventReceiver"; GroupUserAdded.Update(); SPEventReceiverDefinition GroupUserAdding = web.EventReceivers.Add(); GroupUserAdding.Name = "Zimbra Group User Adding"; GroupUserAdding.Type = SPEventReceiverType.GroupUserAdding; GroupUserAdding.Assembly = Assembly.GetExecutingAssembly().FullName; GroupUserAdding.Class = "ClubCloud.Provider.ZimbraGroupEventReceiver"; GroupUserAdding.Update(); SPEventReceiverDefinition GroupUserDeleted = web.EventReceivers.Add(); GroupUserDeleted.Name = "Zimbra Group User Deleted"; GroupUserDeleted.Type = SPEventReceiverType.GroupUserDeleted; GroupUserDeleted.Assembly = Assembly.GetExecutingAssembly().FullName; GroupUserDeleted.Class = "ClubCloud.Provider.ZimbraGroupEventReceiver"; GroupUserDeleted.Update(); SPEventReceiverDefinition GroupUserDeleting = web.EventReceivers.Add(); GroupUserDeleting.Name = "Zimbra Group User Deleting"; GroupUserDeleting.Type = SPEventReceiverType.GroupUserDeleting; GroupUserDeleting.Assembly = Assembly.GetExecutingAssembly().FullName; GroupUserDeleting.Class = "ClubCloud.Provider.ZimbraGroupEventReceiver"; GroupUserDeleting.Update(); web.Update(); } }); }