本文整理汇总了C#中Web.GetWorkflowSubscriptions方法的典型用法代码示例。如果您正苦于以下问题:C# Web.GetWorkflowSubscriptions方法的具体用法?C# Web.GetWorkflowSubscriptions怎么用?C# Web.GetWorkflowSubscriptions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Web
的用法示例。
在下文中一共展示了Web.GetWorkflowSubscriptions方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExtractObjects
public override ProvisioningTemplate ExtractObjects(Web web, ProvisioningTemplate template, ProvisioningTemplateCreationInformation creationInfo)
{
using (var scope = new PnPMonitoredScope(this.Name))
{
web.EnsureProperties(w => w.ServerRelativeUrl, w => w.Url);
var serverRelativeUrl = web.ServerRelativeUrl;
// For each list in the site
var lists = web.Lists;
web.Context.Load(lists,
lc => lc.IncludeWithDefaultProperties(
l => l.ContentTypes,
l => l.Views,
l => l.EnableModeration,
l => l.ForceCheckout,
l => l.BaseTemplate,
l => l.OnQuickLaunch,
l => l.RootFolder.ServerRelativeUrl,
l => l.UserCustomActions,
l => l.MajorVersionLimit,
l => l.MajorWithMinorVersionsLimit,
l => l.DraftVersionVisibility,
l => l.DocumentTemplateUrl,
l => l.Fields.IncludeWithDefaultProperties(
f => f.Id,
f => f.Title,
f => f.Hidden,
f => f.InternalName,
f => f.DefaultValue,
f => f.Required)));
web.Context.ExecuteQueryRetry();
var allLists = new List<List>();
if (web.IsSubSite())
{
// If current web is subweb then include the lists in the rootweb for lookup column support
var rootWeb = (web.Context as ClientContext).Site.RootWeb;
rootWeb.Context.Load(rootWeb.Lists, lsts => lsts.Include(l => l.Id, l => l.Title));
rootWeb.Context.ExecuteQueryRetry();
foreach (var rootList in rootWeb.Lists)
{
allLists.Add(rootList);
}
}
foreach (var list in lists)
{
allLists.Add(list);
}
// Let's see if there are workflow subscriptions
Microsoft.SharePoint.Client.WorkflowServices.WorkflowSubscription[] workflowSubscriptions = null;
try
{
workflowSubscriptions = web.GetWorkflowSubscriptions();
}
catch (ServerException)
{
// If there is no workflow service present in the farm this method will throw an error.
// Swallow the exception
}
// Retrieve all not hidden lists and the Workflow History Lists, just in case there are active workflow subscriptions
foreach (var siteList in lists.AsEnumerable().Where(l => (l.Hidden == false || ((workflowSubscriptions != null && workflowSubscriptions.Length > 0) && l.BaseTemplate == 140))))
{
ListInstance baseTemplateList = null;
if (creationInfo.BaseTemplate != null)
{
// Check if we need to skip this list...if so let's do it before we gather all the other information for this list...improves performance
var index = creationInfo.BaseTemplate.Lists.FindIndex(f => f.Url.Equals(siteList.RootFolder.ServerRelativeUrl.Substring(serverRelativeUrl.Length + 1)) &&
f.TemplateType.Equals(siteList.BaseTemplate));
if (index != -1)
{
baseTemplateList = creationInfo.BaseTemplate.Lists[index];
}
}
var contentTypeFields = new List<FieldRef>();
var list = new ListInstance
{
Description = siteList.Description,
EnableVersioning = siteList.EnableVersioning,
TemplateType = siteList.BaseTemplate,
Title = siteList.Title,
Hidden = siteList.Hidden,
EnableFolderCreation = siteList.EnableFolderCreation,
DocumentTemplate = Tokenize(siteList.DocumentTemplateUrl, web.Url),
ContentTypesEnabled = siteList.ContentTypesEnabled,
Url = siteList.RootFolder.ServerRelativeUrl.Substring(serverRelativeUrl.Length).TrimStart('/'),
TemplateFeatureID = siteList.TemplateFeatureId,
EnableAttachments = siteList.EnableAttachments,
OnQuickLaunch = siteList.OnQuickLaunch,
EnableModeration = siteList.EnableModeration,
MaxVersionLimit =
siteList.IsPropertyAvailable("MajorVersionLimit") ? siteList.MajorVersionLimit : 0,
EnableMinorVersions = siteList.EnableMinorVersions,
MinorVersionLimit =
//.........这里部分代码省略.........
示例2: ExtractObjects
public override ProvisioningTemplate ExtractObjects(Web web, ProvisioningTemplate template, ProvisioningTemplateCreationInformation creationInfo)
{
if (template.Workflows == null)
{
template.Workflows = new Workflows();
}
using (var scope = new PnPMonitoredScope(this.Name))
{
if (creationInfo.FileConnector == null)
{
scope.LogWarning("Cannot export Workflow definitions without a FileConnector.");
}
else
{
// Retrieve all the lists and libraries
var lists = web.Lists;
web.Context.Load(lists);
web.Context.ExecuteQuery();
// Retrieve the workflow definitions (including unpublished ones)
var definitions = web.GetWorkflowDefinitions(false);
template.Workflows.WorkflowDefinitions.AddRange(
from d in definitions
select new Model.WorkflowDefinition(d.Properties.TokenizeWorkflowDefinitionProperties(lists))
{
AssociationUrl = d.AssociationUrl,
Description = d.Description,
DisplayName = d.DisplayName,
DraftVersion = d.DraftVersion,
FormField = d.FormField,
Id = d.Id,
InitiationUrl = d.InitiationUrl,
Published = d.Published,
RequiresAssociationForm = d.RequiresAssociationForm,
RequiresInitiationForm = d.RequiresInitiationForm,
RestrictToScope = (!String.IsNullOrEmpty(d.RestrictToScope) && Guid.Parse(d.RestrictToScope) != web.Id) ? String.Format("{{listid:{0}}}", lists.First(l => l.Id == Guid.Parse(d.RestrictToScope)).Title) : null,
RestrictToType = !String.IsNullOrEmpty(d.RestrictToType) ? d.RestrictToType : "Universal",
XamlPath = d.Xaml.SaveXamlToFile(d.Id, creationInfo.FileConnector),
}
);
// Retrieve the workflow subscriptions
var subscriptions = web.GetWorkflowSubscriptions();
#if CLIENTSDKV15
template.Workflows.WorkflowSubscriptions.AddRange(
from s in subscriptions
select new Model.WorkflowSubscription(s.PropertyDefinitions.TokenizeWorkflowSubscriptionProperties(lists))
{
DefinitionId = s.DefinitionId,
Enabled = s.Enabled,
EventSourceId = s.EventSourceId != web.Id ? String.Format("{{listid:{0}}}", lists.First(l => l.Id == s.EventSourceId).Title) : null,
EventTypes = s.EventTypes.ToList(),
ManualStartBypassesActivationLimit = s.ManualStartBypassesActivationLimit,
Name = s.Name,
ListId = s.EventSourceId != web.Id ? String.Format("{{listid:{0}}}", lists.First(l => l.Id == s.EventSourceId).Title) : null,
StatusFieldName = s.StatusFieldName,
}
);
#else
template.Workflows.WorkflowSubscriptions.AddRange(
from s in subscriptions
select new Model.WorkflowSubscription(s.PropertyDefinitions.TokenizeWorkflowSubscriptionProperties(lists))
{
DefinitionId = s.DefinitionId,
Enabled = s.Enabled,
EventSourceId = s.EventSourceId != web.Id ? String.Format("{{listid:{0}}}", lists.First(l => l.Id == s.EventSourceId).Title) : null,
EventTypes = s.EventTypes.ToList(),
ManualStartBypassesActivationLimit = s.ManualStartBypassesActivationLimit,
Name = s.Name,
ListId = s.EventSourceId != web.Id ? String.Format("{{listid:{0}}}", lists.First(l => l.Id == s.EventSourceId).Title) : null,
ParentContentTypeId = s.ParentContentTypeId,
StatusFieldName = s.StatusFieldName,
}
);
#endif
}
}
return template;
}
示例3: ExtractObjects
public override ProvisioningTemplate ExtractObjects(Web web, ProvisioningTemplate template, ProvisioningTemplateCreationInformation creationInfo)
{
if (template.Workflows == null)
{
template.Workflows = new Workflows();
}
using (var scope = new PnPMonitoredScope(this.Name))
{
if (creationInfo.FileConnector == null)
{
scope.LogWarning("Cannot export Workflow definitions without a FileConnector.");
}
else
{
// Pre-load useful properties
web.EnsureProperty(w => w.Id);
// Retrieve all the lists and libraries
var lists = web.Lists;
web.Context.Load(lists);
web.Context.ExecuteQuery();
// Retrieve the workflow definitions (including unpublished ones)
Microsoft.SharePoint.Client.WorkflowServices.WorkflowDefinition[] definitions = null;
try
{
definitions = web.GetWorkflowDefinitions(false);
}
catch (ServerException)
{
// If there is no workflow service present in the farm this method will throw an error.
// Swallow the exception
}
if (definitions != null)
{
template.Workflows.WorkflowDefinitions.AddRange(
from d in definitions
select new Model.WorkflowDefinition(d.Properties.TokenizeWorkflowDefinitionProperties(lists))
{
AssociationUrl = d.AssociationUrl,
Description = d.Description,
DisplayName = d.DisplayName,
DraftVersion = d.DraftVersion,
FormField = d.FormField,
Id = d.Id,
InitiationUrl = d.InitiationUrl,
Published = d.Published,
RequiresAssociationForm = d.RequiresAssociationForm,
RequiresInitiationForm = d.RequiresInitiationForm,
RestrictToScope = (!String.IsNullOrEmpty(d.RestrictToScope) && Guid.Parse(d.RestrictToScope) != web.Id) ? WorkflowExtension.TokenizeListIdProperty(d.RestrictToScope, lists) : null,
RestrictToType = !String.IsNullOrEmpty(d.RestrictToType) ? d.RestrictToType : "Universal",
XamlPath = d.Xaml.SaveXamlToFile(d.Id, creationInfo.FileConnector),
}
);
}
// Retrieve the workflow subscriptions
Microsoft.SharePoint.Client.WorkflowServices.WorkflowSubscription[] subscriptions = null;
try
{
subscriptions = web.GetWorkflowSubscriptions();
}
catch (ServerException)
{
// If there is no workflow service present in the farm this method will throw an error.
// Swallow the exception
}
if (subscriptions != null)
{
#if CLIENTSDKV15
template.Workflows.WorkflowSubscriptions.AddRange(
from s in subscriptions
select new Model.WorkflowSubscription(s.PropertyDefinitions.TokenizeWorkflowSubscriptionProperties(lists))
{
DefinitionId = s.DefinitionId,
Enabled = s.Enabled,
EventSourceId = s.EventSourceId != web.Id ? String.Format("{{listid:{0}}}", lists.First(l => l.Id == s.EventSourceId).Title) : null,
EventTypes = s.EventTypes.ToList(),
ManualStartBypassesActivationLimit = s.ManualStartBypassesActivationLimit,
Name = s.Name,
ListId = s.EventSourceId != web.Id ? String.Format("{{listid:{0}}}", lists.First(l => l.Id == s.EventSourceId).Title) : null,
StatusFieldName = s.StatusFieldName,
}
);
#else
template.Workflows.WorkflowSubscriptions.AddRange(
from s in subscriptions
select new Model.WorkflowSubscription(s.PropertyDefinitions.TokenizeWorkflowSubscriptionProperties(lists))
{
DefinitionId = s.DefinitionId,
Enabled = s.Enabled,
EventSourceId = s.EventSourceId != web.Id ? WorkflowExtension.TokenizeListIdProperty(s.EventSourceId.ToString(), lists) : null,
EventTypes = s.EventTypes.ToList(),
ManualStartBypassesActivationLimit = s.ManualStartBypassesActivationLimit,
Name = s.Name,
//.........这里部分代码省略.........
示例4: ProvisionObjects
public override TokenParser ProvisionObjects(Web web, ProvisioningTemplate template, TokenParser parser, ProvisioningTemplateApplyingInformation applyingInformation)
{
using (var scope = new PnPMonitoredScope(this.Name))
{
// Get a reference to infrastructural services
WorkflowServicesManager servicesManager = null;
try
{
servicesManager = new WorkflowServicesManager(web.Context, web);
}
catch (ServerException)
{
// If there is no workflow service present in the farm this method will throw an error.
// Swallow the exception
}
if (servicesManager != null)
{
var deploymentService = servicesManager.GetWorkflowDeploymentService();
var subscriptionService = servicesManager.GetWorkflowSubscriptionService();
// Pre-load useful properties
web.EnsureProperty(w => w.Id);
// Provision Workflow Definitions
foreach (var definition in template.Workflows.WorkflowDefinitions)
{
// Load the Workflow Definition XAML
Stream xamlStream = template.Connector.GetFileStream(definition.XamlPath);
System.Xml.Linq.XElement xaml = System.Xml.Linq.XElement.Load(xamlStream);
// Create the WorkflowDefinition instance
Microsoft.SharePoint.Client.WorkflowServices.WorkflowDefinition workflowDefinition =
new Microsoft.SharePoint.Client.WorkflowServices.WorkflowDefinition(web.Context)
{
AssociationUrl = definition.AssociationUrl,
Description = definition.Description,
DisplayName = definition.DisplayName,
FormField = definition.FormField,
DraftVersion = definition.DraftVersion,
Id = definition.Id,
InitiationUrl = definition.InitiationUrl,
RequiresAssociationForm = definition.RequiresAssociationForm,
RequiresInitiationForm = definition.RequiresInitiationForm,
RestrictToScope = parser.ParseString(definition.RestrictToScope),
RestrictToType = definition.RestrictToType != "Universal" ? definition.RestrictToType : null,
Xaml = xaml.ToString(),
};
//foreach (var p in definition.Properties)
//{
// workflowDefinition.SetProperty(p.Key, parser.ParseString(p.Value));
//}
// Save the Workflow Definition
var definitionId = deploymentService.SaveDefinition(workflowDefinition);
web.Context.Load(workflowDefinition);
web.Context.ExecuteQueryRetry();
// Let's publish the Workflow Definition, if needed
if (definition.Published)
{
deploymentService.PublishDefinition(definitionId.Value);
}
}
// get existing subscriptions
var existingWorkflowSubscriptions = web.GetWorkflowSubscriptions();
foreach (var subscription in template.Workflows.WorkflowSubscriptions)
{
// Check if the subscription already exists before adding it, and
// if already exists a subscription with the same name and with the same DefinitionId,
// it is a duplicate
string subscriptionName;
if (subscription.PropertyDefinitions.TryGetValue("SharePointWorkflowContext.Subscription.Name", out subscriptionName) &&
existingWorkflowSubscriptions.Any(s => s.PropertyDefinitions["SharePointWorkflowContext.Subscription.Name"] == subscriptionName && s.DefinitionId == subscription.DefinitionId))
{
// Thus, skip it!
WriteWarning(string.Format("Workflow Subscription '{0}' already exists. Skipping...", subscription.Name), ProvisioningMessageType.Warning);
continue;
}
#if CLIENTSDKV15
// Create the WorkflowDefinition instance
Microsoft.SharePoint.Client.WorkflowServices.WorkflowSubscription workflowSubscription =
new Microsoft.SharePoint.Client.WorkflowServices.WorkflowSubscription(web.Context)
{
DefinitionId = subscription.DefinitionId,
Enabled = subscription.Enabled,
EventSourceId = (!String.IsNullOrEmpty(subscription.EventSourceId)) ? Guid.Parse(parser.ParseString(subscription.EventSourceId)) : web.Id,
EventTypes = subscription.EventTypes,
ManualStartBypassesActivationLimit = subscription.ManualStartBypassesActivationLimit,
Name = subscription.Name,
StatusFieldName = subscription.StatusFieldName,
};
#else
// Create the WorkflowDefinition instance
Microsoft.SharePoint.Client.WorkflowServices.WorkflowSubscription workflowSubscription =
new Microsoft.SharePoint.Client.WorkflowServices.WorkflowSubscription(web.Context)
//.........这里部分代码省略.........
示例5: ExtractObjects
public override ProvisioningTemplate ExtractObjects(Web web, ProvisioningTemplate template, ProvisioningTemplateCreationInformation creationInfo)
{
using (var scope = new PnPMonitoredScope(this.Name))
{
web.EnsureProperties(w => w.ServerRelativeUrl, w => w.Url);
var serverRelativeUrl = web.ServerRelativeUrl;
// For each list in the site
var lists = web.Lists;
web.Context.Load(lists,
lc => lc.IncludeWithDefaultProperties(
l => l.ContentTypes,
l => l.Views,
l => l.BaseTemplate,
l => l.OnQuickLaunch,
l => l.RootFolder.ServerRelativeUrl,
l => l.Fields.IncludeWithDefaultProperties(
f => f.Id,
f => f.Title,
f => f.Hidden,
f => f.InternalName,
f => f.Required)));
web.Context.ExecuteQueryRetry();
// Let's see if there are workflow subscriptions
Microsoft.SharePoint.Client.WorkflowServices.WorkflowSubscription[] workflowSubscriptions = null;
try
{
workflowSubscriptions = web.GetWorkflowSubscriptions();
}
catch (ServerException)
{
// If there is no workflow service present in the farm this method will throw an error.
// Swallow the exception
}
// Retrieve all not hidden lists and the Workflow History Lists, just in case there are active workflow subscriptions
var includeWorkflowSubscriptions = workflowSubscriptions != null && workflowSubscriptions.Length > 0;
// var allowedLists = lists.Where(l => !l.Hidden || includeWorkflowSubscriptions && l.BaseTemplate == 140);
foreach (var siteList in lists)
{
ListInstance baseTemplateList = null;
if (creationInfo.BaseTemplate != null)
{
// Check if we need to skip this list...if so let's do it before we gather all the other information for this list...improves performance
var index = creationInfo.BaseTemplate.Lists.FindIndex(f => f.Url.Equals(siteList.RootFolder.ServerRelativeUrl.Substring(serverRelativeUrl.Length + 1)) &&
f.TemplateType.Equals(siteList.BaseTemplate));
if (index != -1)
{
baseTemplateList = creationInfo.BaseTemplate.Lists[index];
if (siteList.Hidden && !(includeWorkflowSubscriptions && siteList.BaseTemplate == 140))
{
continue;
}
}
}
var contentTypeFields = new List<FieldRef>();
var list = new ListInstance
{
Description = siteList.Description,
EnableVersioning = siteList.EnableVersioning,
TemplateType = siteList.BaseTemplate,
Title = siteList.Title,
Hidden = siteList.Hidden,
EnableFolderCreation = siteList.EnableFolderCreation,
DocumentTemplate = Tokenize(siteList.DocumentTemplateUrl, web.Url),
ContentTypesEnabled = siteList.ContentTypesEnabled,
Url = siteList.RootFolder.ServerRelativeUrl.Substring(serverRelativeUrl.Length).TrimStart('/'),
TemplateFeatureID = siteList.TemplateFeatureId,
EnableAttachments = siteList.EnableAttachments,
OnQuickLaunch = siteList.OnQuickLaunch,
MaxVersionLimit =
siteList.IsObjectPropertyInstantiated("MajorVersionLimit") ? siteList.MajorVersionLimit : 0,
EnableMinorVersions = siteList.EnableMinorVersions,
MinorVersionLimit =
siteList.IsObjectPropertyInstantiated("MajorWithMinorVersionsLimit")
? siteList.MajorWithMinorVersionsLimit
: 0
};
list = ExtractContentTypes(web, siteList, contentTypeFields, list);
list = ExtractViews(siteList, list);
list = ExtractFields(web, siteList, contentTypeFields, list, lists);
list.Security = siteList.GetSecurity();
var logCTWarning = false;
if (baseTemplateList != null)
{
if (!baseTemplateList.Equals(list))
{
scope.LogDebug(CoreResources.Provisioning_ObjectHandlers_ListInstances_Adding_list___0_____1_, list.Title, list.Url);
template.Lists.Add(list);
//.........这里部分代码省略.........
示例6: ProvisionObjects
//.........这里部分代码省略.........
if (templateDefinition.Published)
{
deploymentService.PublishDefinition(newDefinition.Value);
web.Context.ExecuteQueryRetry();
}
break; // no errors so exit loop
}
catch (Exception ex)
{
// check exception is due to connection closed issue
if (ex is ServerException && ((ServerException)ex).ServerErrorCode == -2130575223 &&
((ServerException)ex).ServerErrorTypeName.Equals("Microsoft.SharePoint.SPException", StringComparison.InvariantCultureIgnoreCase) &&
((ServerException)ex).Message.Contains("A connection that was expected to be kept alive was closed by the server.")
)
{
WriteWarning(String.Format("Connection closed whilst adding Workflow Definition, trying again in {0}ms", delay), ProvisioningMessageType.Warning);
Thread.Sleep(delay);
retryAttempts++;
delay = delay * 2; // double delay for next retry
}
else
{
throw;
}
}
}
}
// get existing subscriptions
var existingWorkflowSubscriptions = web.GetWorkflowSubscriptions();
foreach (var subscription in template.Workflows.WorkflowSubscriptions)
{
Microsoft.SharePoint.Client.WorkflowServices.WorkflowSubscription workflowSubscription = null;
// Check if the subscription already exists before adding it, and
// if already exists a subscription with the same name and with the same DefinitionId,
// it is a duplicate and we just need to update it
string subscriptionName;
if (subscription.PropertyDefinitions.TryGetValue("SharePointWorkflowContext.Subscription.Name", out subscriptionName) &&
existingWorkflowSubscriptions.Any(s => s.PropertyDefinitions["SharePointWorkflowContext.Subscription.Name"] == subscriptionName && s.DefinitionId == subscription.DefinitionId))
{
// Thus, delete it before adding it again!
WriteWarning(string.Format("Workflow Subscription '{0}' already exists. It will be updated.", subscription.Name), ProvisioningMessageType.Warning);
workflowSubscription = existingWorkflowSubscriptions.FirstOrDefault((s => s.PropertyDefinitions["SharePointWorkflowContext.Subscription.Name"] == subscriptionName && s.DefinitionId == subscription.DefinitionId));
if (workflowSubscription != null)
{
subscriptionService.DeleteSubscription(workflowSubscription.Id);
web.Context.ExecuteQueryRetry();
}
}
#if ONPREMISES
// Create the WorkflowDefinition instance
workflowSubscription =
new Microsoft.SharePoint.Client.WorkflowServices.WorkflowSubscription(web.Context)
{
DefinitionId = subscription.DefinitionId,
Enabled = subscription.Enabled,
EventSourceId = (!String.IsNullOrEmpty(subscription.EventSourceId)) ? Guid.Parse(parser.ParseString(subscription.EventSourceId)) : web.Id,
EventTypes = subscription.EventTypes,
示例7: ExtractObjects
public override ProvisioningTemplate ExtractObjects(Web web, ProvisioningTemplate template, ProvisioningTemplateCreationInformation creationInfo)
{
using (var scope = new PnPMonitoredScope(this.Name))
{
web.EnsureProperties(w => w.ServerRelativeUrl, w => w.Url);
var serverRelativeUrl = web.ServerRelativeUrl;
// For each list in the site
var lists = web.Lists;
web.Context.Load(lists,
lc => lc.IncludeWithDefaultProperties(
l => l.ContentTypes,
l => l.Views,
l => l.BaseTemplate,
l => l.OnQuickLaunch,
l => l.RootFolder.ServerRelativeUrl,
l => l.Fields.IncludeWithDefaultProperties(
f => f.Id,
f => f.Title,
f => f.Hidden,
f => f.InternalName,
f => f.Required)));
web.Context.ExecuteQueryRetry();
// Let's see if there are workflow subscriptions
Microsoft.SharePoint.Client.WorkflowServices.WorkflowSubscription[] workflowSubscriptions = null;
try
{
workflowSubscriptions = web.GetWorkflowSubscriptions();
}
catch (ServerException)
{
// If there is no workflow service present in the farm this method will throw an error.
// Swallow the exception
}
// Retrieve all not hidden lists and the Workflow History Lists, just in case there are active workflow subscriptions
foreach (var siteList in lists.AsEnumerable().Where(l => (l.Hidden == false || ((workflowSubscriptions != null && workflowSubscriptions.Length > 0) && l.BaseTemplate == 140))))
{
ListInstance baseTemplateList = null;
if (creationInfo.BaseTemplate != null)
{
// Check if we need to skip this list...if so let's do it before we gather all the other information for this list...improves performance
var index = creationInfo.BaseTemplate.Lists.FindIndex(f => f.Url.Equals(siteList.RootFolder.ServerRelativeUrl.Substring(serverRelativeUrl.Length + 1)) &&
f.TemplateType.Equals(siteList.BaseTemplate));
if (index != -1)
{
baseTemplateList = creationInfo.BaseTemplate.Lists[index];
}
}
var contentTypeFields = new List<FieldRef>();
var list = new ListInstance
{
Description = siteList.Description,
EnableVersioning = siteList.EnableVersioning,
TemplateType = siteList.BaseTemplate,
Title = siteList.Title,
Hidden = siteList.Hidden,
EnableFolderCreation = siteList.EnableFolderCreation,
DocumentTemplate = Tokenize(siteList.DocumentTemplateUrl, web.Url),
ContentTypesEnabled = siteList.ContentTypesEnabled,
Url = siteList.RootFolder.ServerRelativeUrl.Substring(serverRelativeUrl.Length).TrimStart('/'),
TemplateFeatureID = siteList.TemplateFeatureId,
EnableAttachments = siteList.EnableAttachments,
OnQuickLaunch = siteList.OnQuickLaunch,
MaxVersionLimit =
siteList.IsObjectPropertyInstantiated("MajorVersionLimit") ? siteList.MajorVersionLimit : 0,
EnableMinorVersions = siteList.EnableMinorVersions,
MinorVersionLimit =
siteList.IsObjectPropertyInstantiated("MajorWithMinorVersionsLimit")
? siteList.MajorWithMinorVersionsLimit
: 0
};
var count = 0;
foreach (var ct in siteList.ContentTypes)
{
web.Context.Load(ct, c => c.Parent);
web.Context.ExecuteQueryRetry();
list.ContentTypeBindings.Add(new ContentTypeBinding
{
ContentTypeId = ct.Parent != null ? ct.Parent.StringId : ct.StringId,
Default = count == 0
});
//if (ct.Parent != null)
//{
// //Add the parent to the list of content types
// if (!BuiltInContentTypeId.Contains(ct.Parent.StringId))
// {
// list.ContentTypeBindings.Add(new ContentTypeBinding { ContentTypeId = ct.Parent.StringId, Default = count == 0 });
// }
//}
//else
//{
//.........这里部分代码省略.........