protected override string GetWebpartXmlDefinition( ListItemModelHost listItemModelHost, WebPartDefinitionBase webPartModel) { var typedDefinition = webPartModel.WithAssertAndCast <SilverlightWebPartDefinition>("model", value => value.RequireNotNull()); var wpXml = WebpartXmlExtensions.LoadWebpartXmlDocument(this.ProcessCommonWebpartProperties(BuiltInWebPartTemplates.SilverlightWebPart, webPartModel)); if (!string.IsNullOrEmpty(typedDefinition.Url)) { var linkValue = typedDefinition.Url; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Original Url: [{0}]", linkValue); linkValue = TokenReplacementService.ReplaceTokens(new TokenReplacementContext { Value = linkValue, Context = listItemModelHost }).Value; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Token replaced Url: [{0}]", linkValue); wpXml.SetOrUpdateProperty("Url", linkValue); } if (!string.IsNullOrEmpty(typedDefinition.CustomInitParameters)) { wpXml.SetOrUpdateProperty("CustomInitParameters", typedDefinition.CustomInitParameters); } return(wpXml.ToString()); }
protected SPFolder GetListFolder(FolderModelHost folderModelHost, FolderDefinition folderModel) { var list = folderModelHost.CurrentList; var currentFolderItem = folderModelHost.CurrentListItem; var serverRelativeUrl = folderModelHost.CurrentListItem == null ? list.RootFolder.ServerRelativeUrl : folderModelHost.CurrentListItem.Folder.ServerRelativeUrl; var currentUrl = serverRelativeUrl + "/" + folderModel.Name; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Loading list folder with URL: [{0}]", currentUrl); var folder = folderModelHost.CurrentList.ParentWeb.GetFolder(currentUrl); if (folder != null && folder.Exists) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "List folder with URL does exist: [{0}]", currentUrl); } else { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "List folder with URL does not exist: [{0}]", currentUrl); } return(folder); }
protected override string GetWebpartXmlDefinition(ListItemModelHost listItemModelHost, WebPartDefinitionBase webPartModel) { var typedModel = webPartModel.WithAssertAndCast <ContentEditorWebPartDefinition>("model", value => value.RequireNotNull()); var wpXml = WebpartXmlExtensions.LoadWebpartXmlDocument(BuiltInWebPartTemplates.ContentEditorWebPart); if (!string.IsNullOrEmpty(typedModel.Content)) { wpXml.SetOrUpdateContentEditorWebPartProperty("Content", typedModel.Content, true); } if (!string.IsNullOrEmpty(typedModel.ContentLink)) { var urlValue = typedModel.ContentLink ?? string.Empty; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Original value: [{0}]", urlValue); urlValue = TokenReplacementService.ReplaceTokens(new TokenReplacementContext { Value = urlValue, Context = listItemModelHost }).Value; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Token replaced value: [{0}]", urlValue); wpXml.SetOrUpdateContentEditorWebPartProperty("ContentLink", urlValue); } return(wpXml.ToString()); }
protected override string GetWebpartXmlDefinition(ListItemModelHost listItemModelHost, WebPartDefinitionBase webPartModel) { var definition = webPartModel.WithAssertAndCast <PageViewerWebPartDefinition>("model", value => value.RequireNotNull()); var wpXml = WebpartXmlExtensions .LoadWebpartXmlDocument(BuiltInWebPartTemplates.PageViewerWebPart); if (!string.IsNullOrEmpty(definition.ContentLink)) { var contentLinkValue = definition.ContentLink ?? string.Empty; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Original contentLinkValue: [{0}]", contentLinkValue); contentLinkValue = TokenReplacementService.ReplaceTokens(new TokenReplacementContext { Value = contentLinkValue, Context = listItemModelHost.HostClientContext }).Value; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Token replaced contentLinkValue: [{0}]", contentLinkValue); wpXml.SetOrUpdatePageViewerWebPartProperty("ContentLink", contentLinkValue); } if (!string.IsNullOrEmpty(definition.SourceType)) { wpXml.SetOrUpdatePageViewerWebPartProperty("SourceType", definition.SourceType); } return(wpXml.ToString()); }
private void DeployWelcomePage(object modelHost, DefinitionBase model, SPFolder folder, WelcomePageDefinition welcomePgaeModel) { InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = folder, ObjectType = typeof(SPFolder), ObjectDefinition = welcomePgaeModel, ModelHost = modelHost }); TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Changing welcome page to: [{0}]", welcomePgaeModel.Url); // https://github.com/SubPointSolutions/spmeta2/issues/431 folder.WelcomePage = UrlUtility.RemoveStartingSlash(welcomePgaeModel.Url); InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = folder, ObjectType = typeof(SPFolder), ObjectDefinition = welcomePgaeModel, ModelHost = modelHost }); folder.Update(); }
private void ProcessRoleInheritance(object modelHost, SPSecurableObject securableObject, ResetRoleInheritanceDefinition breakRoleInheritanceModel) { InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = securableObject, ObjectType = typeof(SPSecurableObject), ObjectDefinition = breakRoleInheritanceModel, ModelHost = modelHost }); if (securableObject.HasUniqueRoleAssignments) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "HasUniqueRoleAssignments is TRUE. Resetting role inheritance", null); securableObject.ResetRoleInheritance(); } InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = securableObject, ObjectType = typeof(SPSecurableObject), ObjectDefinition = breakRoleInheritanceModel, ModelHost = modelHost }); }
protected File GetWikiPageFile(Web web, Folder folder, WikiPageDefinition wikiPageModel, out string newWikiPageUrl) { var context = folder.Context; //if (!string.IsNullOrEmpty(wikiPageModel.FolderUrl)) // throw new Exception("FolderUrl property is not supported yet!"); var pageName = GetSafeWikiPageFileName(wikiPageModel); context.Load(folder, l => l.ServerRelativeUrl); context.ExecuteQueryWithTrace(); newWikiPageUrl = folder.ServerRelativeUrl + "/" + pageName; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Resolving file with URL: [{0}]", newWikiPageUrl); var file = web.GetFileByServerRelativeUrl(newWikiPageUrl); context.Load(file, f => f.Exists); context.ExecuteQueryWithTrace(); if (file.Exists) { TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall, "Returning existing file"); return(file); } TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall, "File does not exist. Returning NULL"); return(null); }
public void RegisterModelHandler(ModelHandlerBase modelHandlerType) { TraceService.VerboseFormat((int)LogEventId.CoreCalls, "RegisterModelHandler of type:[{0}] for target type:[{1}]", new object[] { modelHandlerType.GetType(), modelHandlerType.TargetType }); if (!ModelHandlers.ContainsKey(modelHandlerType.TargetType)) { TraceService.VerboseFormat((int)LogEventId.CoreCalls, "Model handler for type [{0}] has not been registered yet. Registering.", new object[] { modelHandlerType.GetType() }); ModelHandlers.Add(modelHandlerType.TargetType, modelHandlerType); } else { TraceService.VerboseFormat((int)LogEventId.CoreCalls, "Model handler for type [{0}] has been registered. Skipping.", new object[] { modelHandlerType.GetType() }); } }
protected override void ProcessWebpartProperties(WebPart webpartInstance, WebPartDefinition webpartModel) { base.ProcessWebpartProperties(webpartInstance, webpartModel); var typedWebpart = webpartInstance.WithAssertAndCast <SilverlightWebPart>("webpartInstance", value => value.RequireNotNull()); var typedDefinition = webpartModel.WithAssertAndCast <SilverlightWebPartDefinition>("webpartModel", value => value.RequireNotNull()); if (!string.IsNullOrEmpty(typedDefinition.Url)) { var linkValue = typedDefinition.Url; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Original Url: [{0}]", linkValue); linkValue = TokenReplacementService.ReplaceTokens(new TokenReplacementContext { Value = linkValue, Context = CurrentHost.HostFile.Web }).Value; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Token replaced Url: [{0}]", linkValue); typedWebpart.Url = linkValue; } if (!string.IsNullOrEmpty(typedDefinition.CustomInitParameters)) { typedWebpart.CustomInitParameters = typedDefinition.CustomInitParameters; } }
protected View FindView(List list, ListViewDefinition listViewModel) { // lookup by title var currentView = FindViewByTitle(list.Views, listViewModel.Title); // lookup by URL match if (currentView == null && !string.IsNullOrEmpty(listViewModel.Url)) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Resolving view by URL: [{0}]", listViewModel.Url); var safeUrl = listViewModel.Url.ToUpper(); foreach (var view in list.Views) { if (view.ServerRelativeUrl.ToUpper().EndsWith(safeUrl)) { return(view); } } return(null); } return(currentView); }
protected SPGroup ResolveSecurityGroup(SPWeb web, SecurityGroupLinkDefinition securityGroupLinkModel) { SPGroup securityGroup = null; if (securityGroupLinkModel.IsAssociatedMemberGroup) { TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall, "IsAssociatedMemberGroup = true. Resolving AssociatedMemberGroup"); securityGroup = web.AssociatedMemberGroup; } else if (securityGroupLinkModel.IsAssociatedOwnerGroup) { TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall, "IsAssociatedOwnerGroup = true. Resolving IsAssociatedOwnerGroup"); securityGroup = web.AssociatedOwnerGroup; } else if (securityGroupLinkModel.IsAssociatedVisitorGroup) { TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall, "IsAssociatedVisitorGroup = true. Resolving IsAssociatedVisitorGroup"); securityGroup = web.AssociatedVisitorGroup; } else if (!string.IsNullOrEmpty(securityGroupLinkModel.SecurityGroupName)) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Resolving group by name: [{0}]", securityGroupLinkModel.SecurityGroupName); securityGroup = web.SiteGroups[securityGroupLinkModel.SecurityGroupName]; } else { TraceService.Error((int)LogEventId.ModelProvisionCoreCall, "IsAssociatedMemberGroup/IsAssociatedOwnerGroup/IsAssociatedVisitorGroup/SecurityGroupName should be defined. Throwing SPMeta2Exception"); throw new SPMeta2Exception("securityGroupLinkModel"); } return(securityGroup); }
internal static TermStore FindTermStore(SPSite site, string termStorename, Guid?termStoreId, bool?useDefaultSiteCollectionTermStore) { var session = new TaxonomySession(site); TermStore termStore = null; if (useDefaultSiteCollectionTermStore.HasValue && useDefaultSiteCollectionTermStore.Value == true) { TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall, "Resolving Term Store as useDefaultSiteCollectionTermStore"); termStore = session.DefaultSiteCollectionTermStore; } else if (termStoreId.HasGuidValue()) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Resolving Term Store by ID: [{0}]", termStoreId.Value); termStore = session.TermStores[termStoreId.Value]; } else if (!string.IsNullOrEmpty(termStorename)) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Resolving Term Store by Name: [{0}]", termStorename); termStore = session.TermStores[termStorename]; } return(termStore); }
protected override void ProcessWebpartProperties(WebPart webpartInstance, WebPartDefinition webpartModel) { base.ProcessWebpartProperties(webpartInstance, webpartModel); var typedWebpart = webpartInstance.WithAssertAndCast <PageViewerWebPart>("webpartInstance", value => value.RequireNotNull()); var definition = webpartModel.WithAssertAndCast <PageViewerWebPartDefinition>("webpartModel", value => value.RequireNotNull()); if (!string.IsNullOrEmpty(definition.ContentLink)) { var contentLinkValue = definition.ContentLink ?? string.Empty; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Original contentLinkValue: [{0}]", contentLinkValue); contentLinkValue = TokenReplacementService.ReplaceTokens(new TokenReplacementContext { Value = contentLinkValue, Context = CurrentHost.PageListItem.Web }).Value; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Token replaced contentLinkValue: [{0}]", contentLinkValue); typedWebpart.ContentLink = contentLinkValue; } if (!string.IsNullOrEmpty(definition.SourceType)) { typedWebpart.SourceType = (PathPattern)Enum.Parse(typeof(PathPattern), definition.SourceType); } }
private void DeployWelcomePage(object modelHost, DefinitionBase model, SPFolder folder, WelcomePageDefinition welcomePgaeModel) { InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = folder, ObjectType = typeof(SPFolder), ObjectDefinition = welcomePgaeModel, ModelHost = modelHost }); TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Changing welcome page to: [{0}]", welcomePgaeModel.Url); folder.WelcomePage = welcomePgaeModel.Url; InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = folder, ObjectType = typeof(SPFolder), ObjectDefinition = welcomePgaeModel, ModelHost = modelHost }); folder.Update(); }
protected TermStore FindTermStore(SiteModelHost siteModelHost, TaxonomyTermStoreDefinition termStoreModel) { var site = siteModelHost.HostSite; var session = new TaxonomySession(site); TermStore termStore = null; if (termStoreModel.UseDefaultSiteCollectionTermStore == true) { TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall, "Resolving Term Store as useDefaultSiteCollectionTermStore"); termStore = session.DefaultSiteCollectionTermStore; } else if (termStoreModel.Id.HasValue && termStoreModel.Id != default(Guid)) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Resolving Term Store by ID: [{0}]", termStoreModel.Id); termStore = session.TermStores[termStoreModel.Id.Value]; } else if (!string.IsNullOrEmpty(termStoreModel.Name)) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Resolving Term Store by Name: [{0}]", termStoreModel.Name); termStore = session.TermStores[termStoreModel.Name]; } return(termStore); }
protected Folder GetLibraryFolder(FolderModelHost folderModelHost, FolderDefinition folderModel) { var parentFolder = folderModelHost.CurrentLibraryFolder; var context = parentFolder.Context; context.Load(parentFolder, f => f.Folders); context.ExecuteQueryWithTrace(); // dirty stuff, needs to be rewritten var currentFolder = parentFolder .Folders .OfType <Folder>() .FirstOrDefault(f => f.Name == folderModel.Name); if (currentFolder != null) { context.Load(currentFolder, f => f.Name); context.ExecuteQueryWithTrace(); TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Library folder with name does exist: [{0}]", folderModel.Name); } else { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Library folder with name does not exist: [{0}]", folderModel.Name); } return(currentFolder); }
private void ProcessRoleInheritance(object modelHost, SecurableObject securableObject, BreakRoleInheritanceDefinition breakRoleInheritanceModel) { var context = securableObject.Context; InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = securableObject, ObjectType = typeof(SecurableObject), ObjectDefinition = breakRoleInheritanceModel, ModelHost = modelHost }); if (!securableObject.IsObjectPropertyInstantiated("HasUniqueRoleAssignments")) { context.Load(securableObject, s => s.HasUniqueRoleAssignments); context.ExecuteQueryWithTrace(); } if (!securableObject.HasUniqueRoleAssignments) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "HasUniqueRoleAssignments is FALSE. Breaking role inheritance with CopyRoleAssignments: [{0}] and ClearSubscopes: [{1}]", new object[] { breakRoleInheritanceModel.CopyRoleAssignments, breakRoleInheritanceModel.ClearSubscopes }); securableObject.BreakRoleInheritance(breakRoleInheritanceModel.CopyRoleAssignments, breakRoleInheritanceModel.ClearSubscopes); context.ExecuteQueryWithTrace(); } if (breakRoleInheritanceModel.ForceClearSubscopes) { TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall, "ForceClearSubscopes is TRUE. Removing all role assignments."); context.Load(securableObject.RoleAssignments); context.ExecuteQueryWithTrace(); while (securableObject.RoleAssignments.Count > 0) { securableObject.RoleAssignments[0].DeleteObject(); } } InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = securableObject, ObjectType = typeof(SecurableObject), ObjectDefinition = breakRoleInheritanceModel, ModelHost = modelHost }); }
protected SPUserSolution FindExistingSolution(SiteModelHost siteModelHost, SandboxSolutionDefinition sandboxSolutionDefinition) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Resolving sandbox solution by SolutionId: [{0}]", sandboxSolutionDefinition.SolutionId); return(siteModelHost.HostSite.Solutions.OfType <SPUserSolution>() .FirstOrDefault(f => f.SolutionId == sandboxSolutionDefinition.SolutionId)); }
private Folder GetListFolder(FolderModelHost folderModelHost, FolderDefinition folderModel, out string serverRelativeUrl) { var list = folderModelHost.CurrentList; var context = list.Context; context.Load(list, l => l.RootFolder); context.Load(list, l => l.ParentWeb); #if NET35 throw new SPMeta2NotImplementedException("Not implemented for SP2010 - https://github.com/SubPointSolutions/spmeta2/issues/766"); #endif #if !NET35 if (folderModelHost.CurrentListItem != null) { context.Load(folderModelHost.CurrentListItem, l => l.Folder); } context.ExecuteQueryWithTrace(); serverRelativeUrl = folderModelHost.CurrentListItem == null ? list.RootFolder.ServerRelativeUrl : folderModelHost.CurrentListItem.Folder.ServerRelativeUrl; var currentUrl = serverRelativeUrl + "/" + folderModel.Name; var currentFolder = folderModelHost.CurrentList.ParentWeb.GetFolderByServerRelativeUrl(currentUrl); var doesFolderExist = false; try { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Loading list folder with URL: [{0}]", currentUrl); context.Load(currentFolder, f => f.Name); context.ExecuteQueryWithTrace(); TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "List folder with URL does exist: [{0}]", currentUrl); doesFolderExist = true; } catch (ServerException e) { if (e.ServerErrorTypeName == "System.IO.FileNotFoundException") { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "List folder with URL does not exist: [{0}]", currentUrl); doesFolderExist = false; } } if (doesFolderExist) { return(currentFolder); } #endif return(null); }
private void ProcessFieldValue(object modelHost, SPListItem listItem, ListItemFieldValuesDefinition fieldValue) { InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioning, Object = listItem, ObjectType = typeof(SPListItem), ObjectDefinition = fieldValue, ModelHost = modelHost }); foreach (var value in fieldValue.Values) { if (value.FieldId.HasGuidValue()) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Processing field value with ID: [{0}] and value: [{1}]", new object[] { value.FieldId, value.Value }); listItem[value.FieldId.Value] = value.Value; } else if (!string.IsNullOrEmpty(value.FieldName)) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Processing field value with Name: [{0}] and value: [{1}]", new object[] { value.FieldName, value.Value }); listItem[value.FieldName] = value.Value; } else { throw new SPMeta2Exception("Either FieldId or FieldName must be provided."); } } InvokeOnModelEvent(this, new ModelEventArgs { CurrentModelNode = null, Model = null, EventType = ModelEventType.OnProvisioned, Object = listItem, ObjectType = typeof(SPListItem), ObjectDefinition = fieldValue, ModelHost = modelHost }); }
protected override SPList CreateObject(WebModelHost typedModelHost, ListDefinition definition) { var listModel = definition; var web = typedModelHost.HostWeb; TraceService.Information((int)LogEventId.ModelProvisionProcessingNewObject, "Processing new list"); var listId = default(Guid); // create with the random title to avoid issue with 2 lists + diff URL and same Title // list Title will be renamed later on var listTitle = Guid.NewGuid().ToString("N"); // "SPBug", there are two ways to create lists // (1) by TemplateName (2) by TemplateType if (listModel.TemplateType > 0) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Creating list by TemplateType: [{0}]", listModel.TemplateType); //listId = web.Lists.Add(listModel.Url, listModel.Description ?? string.Empty, (SPListTemplateType)listModel.TemplateType); listId = web.Lists.Add( listTitle, listModel.Description ?? string.Empty, #pragma warning disable 618 listModel.GetListUrl(), #pragma warning restore 618 string.Empty, (int)listModel.TemplateType, string.Empty); } else if (!string.IsNullOrEmpty(listModel.TemplateName)) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Creating list by TemplateName: [{0}]", listModel.TemplateName); TraceService.Verbose((int)LogEventId.ModelProvisionCoreCall, "Searching list template in web.ListTemplates"); var listTemplate = ResolveListTemplate(web, listModel); listId = web.Lists.Add( listTitle, listModel.Description ?? string.Empty, #pragma warning disable 618 listModel.GetListUrl(), #pragma warning restore 618 listTemplate.FeatureId.ToString(), (int)listTemplate.Type, listTemplate.DocumentTemplate); } else { throw new ArgumentException("TemplateType or TemplateName must be defined"); } return(web.Lists[listId]); }
protected ClientObjectList <AppInstance> FindExistingApps(WebModelHost webHost, AppDefinition appModel) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "FindExistingApps() - finding app by productId: [{0}]", appModel.ProductId); var context = webHost.HostWeb.Context; var result = webHost.HostWeb.GetAppInstancesByProductId(appModel.ProductId); context.Load(result); context.ExecuteQueryWithTrace(); return(result); }
private Folder GetListFolder(FolderModelHost folderModelHost, FolderDefinition folderModel, out string serverRelativeUrl) { var list = folderModelHost.CurrentList; var context = list.Context; context.Load(list, l => l.RootFolder); context.Load(list, l => l.ParentWeb); if (folderModelHost.CurrentListItem != null) { context.Load(folderModelHost.CurrentListItem, l => l.Folder); } context.ExecuteQueryWithTrace(); serverRelativeUrl = folderModelHost.CurrentListItem == null ? list.RootFolder.ServerRelativeUrl : folderModelHost.CurrentListItem.Folder.ServerRelativeUrl; var currentUrl = serverRelativeUrl + "/" + folderModel.Name; var currentFolder = folderModelHost.CurrentList.ParentWeb.GetFolderByServerRelativeUrl(currentUrl); var doesFolderExist = false; try { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Loading list folder with URL: [{0}]", currentUrl); context.Load(currentFolder, f => f.Name); context.ExecuteQueryWithTrace(); TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "List folder with URL does exist: [{0}]", currentUrl); doesFolderExist = true; } catch (ServerException e) { if (e.ServerErrorTypeName == "System.IO.FileNotFoundException") { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "List folder with URL does not exist: [{0}]", currentUrl); doesFolderExist = false; } } if (doesFolderExist) { return(currentFolder); } return(null); }
protected virtual SPFile FindExistingSolutionFile(SiteModelHost siteModelHost, SandboxSolutionDefinition sandboxSolutionDefinition) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Resolving sandbox solution by FileName: [{0}]", sandboxSolutionDefinition.FileName); var site = siteModelHost.HostSite; var solutionGallery = (SPDocumentLibrary)site.GetCatalog(SPListTemplateType.SolutionCatalog); return(solutionGallery.RootFolder .Files .OfType <SPFile>() .FirstOrDefault(f => f.Name.ToUpper() == sandboxSolutionDefinition.FileName.ToUpper())); }
protected virtual SPUserSolution FindExistingSolutionById(SiteModelHost siteModelHost, Guid solutionId) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Resolving sandbox solution by SolutionId: [{0}]", solutionId); // cler m_SiteSolutions flat to get always a fresh colletion // m_SiteSolutions var site = siteModelHost.HostSite; ReflectionUtils.SetNonPublicFieldValue(site, "m_SiteSolutions", null); return(siteModelHost.HostSite.Solutions.OfType <SPUserSolution>() .FirstOrDefault(f => f.SolutionId == solutionId)); }
protected virtual string ResolveUrlWithTokens(SPWeb web, string url) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Original url: [{0}]", url); url = TokenReplacementService.ReplaceTokens(new TokenReplacementContext { Value = url, Context = web, IsSiteRelativeUrl = true }).Value; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Token replaced url: [{0}]", url); return(url); }
protected View FindViewByTitle(IEnumerable <View> viewCollection, string listViewTitle) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Resolving view by Title: [{0}]", listViewTitle); foreach (var view in viewCollection) { if (System.String.Compare(view.Title, listViewTitle, System.StringComparison.OrdinalIgnoreCase) == 0) { return(view); } } return(null); }
protected virtual string ResolveTokenizedUrl(CSOMModelHostBase context, string urlValue) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Original Url: [{0}]", urlValue); var newUrlValue = TokenReplacementService.ReplaceTokens(new TokenReplacementContext { Value = urlValue, Context = context }).Value; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Token replaced Url: [{0}]", newUrlValue); return(newUrlValue); }
protected virtual string ResolveTokenizedUrl(WebModelHost webModelHost, string tokenizedUrl) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Original Url: [{0}]", tokenizedUrl); var newUrlValue = TokenReplacementService.ReplaceTokens(new TokenReplacementContext { Value = tokenizedUrl, Context = webModelHost.HostWeb }).Value; TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Token replaced Url: [{0}]", newUrlValue); return(newUrlValue); }
protected RoleDefinition FindRoleDefinition(RoleDefinitionCollection roleDefinitions, string roleDefinitionName) { TraceService.VerboseFormat((int)LogEventId.ModelProvisionCoreCall, "Resolving view by Name: [{0}]", roleDefinitionName); foreach (var roleDefinition in roleDefinitions) { if (string.Compare(roleDefinition.Name, roleDefinitionName, true) == 0) { return(roleDefinition); } } return(null); }