private void DeployDefinition(object modelHost, ListModelHost siteModelHost, InformationRightsManagementSettingsDefinition definition) { var currentSettings = GetCurrentInformationRightsManagementSettings(siteModelHost.HostList); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = currentSettings, ObjectType = typeof(InformationRightsManagementSettings), ObjectDefinition = definition, ModelHost = modelHost }); MapInformationRightsManagementSettings(currentSettings, definition); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = currentSettings, ObjectType = typeof(InformationRightsManagementSettings), ObjectDefinition = definition, ModelHost = modelHost }); currentSettings.Update(); }
private void DeployListEventReceiver(object modelHost, ListModelHost listModelHost, EventReceiverDefinition definition) { DeployEventReceiver(modelHost, listModelHost.HostList.EventReceivers, definition); }
private void DeployListWorkflowAssociationDefinition(ListModelHost modelHost, List list, WorkflowAssociationDefinition definition) { var context = list.Context; var existingWorkflowAssotiation = FindExistringWorkflowAssotiation(modelHost, definition); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = existingWorkflowAssotiation, ObjectType = typeof(WorkflowAssociation), ObjectDefinition = definition, ModelHost = modelHost }); if (existingWorkflowAssotiation == null || (existingWorkflowAssotiation.ServerObjectIsNull.HasValue && existingWorkflowAssotiation.ServerObjectIsNull.Value)) { var workflowTemplate = GetWorkflowTemplate(modelHost, definition); if (workflowTemplate == null || (workflowTemplate.ServerObjectIsNull.HasValue && workflowTemplate.ServerObjectIsNull.Value)) { throw new SPMeta2Exception( string.Format("Cannot find workflow template by definition:[{0}]", definition)); } var historyList = list.ParentWeb.QueryAndGetListByTitle(definition.HistoryListTitle); var taskList = list.ParentWeb.QueryAndGetListByTitle(definition.TaskListTitle); var newWorkflowAssotiation = list.WorkflowAssociations.Add(new WorkflowAssociationCreationInformation { Name = definition.Name, Template = workflowTemplate, HistoryList = historyList, TaskList = taskList }); MapProperties(definition, newWorkflowAssotiation); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = newWorkflowAssotiation, ObjectType = typeof(WorkflowAssociation), ObjectDefinition = definition, ModelHost = modelHost }); newWorkflowAssotiation.Update(); context.ExecuteQueryWithTrace(); } else { MapProperties(definition, existingWorkflowAssotiation); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = existingWorkflowAssotiation, ObjectType = typeof(WorkflowAssociation), ObjectDefinition = definition, ModelHost = modelHost }); existingWorkflowAssotiation.Update(); context.ExecuteQueryWithTrace(); } }
private void ValidateListField(ListModelHost listModelHost, FieldDefinition fieldModel) { throw new SPMeta2NotImplementedException(); }
private Field DeployListField(ListModelHost modelHost, FieldDefinition fieldModel) { TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall, "Deploying list field"); var list = modelHost.HostList; var context = list.Context; var scope = new ExceptionHandlingScope(context); Field field; using (scope.StartScope()) { using (scope.StartTry()) { field = list.Fields.GetById(fieldModel.Id); context.Load(field); } using (scope.StartCatch()) { } } TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall, "ExecuteQuery()"); context.ExecuteQueryWithTrace(); if (!scope.HasException) { field = list.Fields.GetById(fieldModel.Id); context.Load(field); TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Found site list with Id: [{0}]", fieldModel.Id); TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall, "ExecuteQuery()"); context.ExecuteQueryWithTrace(); return EnsureField(context, field, list.Fields, fieldModel); } TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Cannot find list field with Id: [{0}]", fieldModel.Id); return EnsureField(context, null, list.Fields, fieldModel); }
private void DeployListDependentLookup(object modelHost, ListModelHost listModelHost, DependentLookupFieldDefinition definition) { DeployDependentLookupField(modelHost, listModelHost.HostList.Fields, definition); }
private void DeploySettings(object modelHost, ListModelHost listHost, MetadataNavigationSettingsDefinition definition) { var list = listHost.HostList; InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = list, ObjectType = typeof(List), ObjectDefinition = definition, ModelHost = modelHost }); var needUpdate = false; // deploy var settings = GetCurrentSettings(list); if (definition.Hierarchies.Count() > 0) { foreach (var h in definition.Hierarchies) { if (h.FieldId.HasGuidValue()) { var targetField = list.Fields.GetById(h.FieldId.Value); settings.AddConfiguredHierarchy(new MetadataNavigationHierarchyConfig(targetField.Id)); } } needUpdate = true; } if (definition.KeyFilters.Count() > 0) { foreach (var h in definition.KeyFilters) { if (h.FieldId.HasGuidValue()) { var targetField = list.Fields.GetById(h.FieldId.Value); settings.AddConfiguredKeyFilter(new MetadataNavigationKeyFilterConfig(targetField.Id)); } } needUpdate = true; } InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = list, ObjectType = typeof(List), ObjectDefinition = definition, ModelHost = modelHost }); if (needUpdate) { MetadataNavigationSettingsConfig.SetMetadataNavigationSettings(list, settings); } }