private string GetProjectVariantsString() { const string SINGLE_PROJECT_VARIANT = @"<PROJECTVARIANT guid=""{0}"" checked=""{1}""/>"; var checkedProjectVariants = ProjectVariants.Aggregate("", (s, variant) => s + SINGLE_PROJECT_VARIANT.RQLFormat(variant, true)); var uncheckedProjectVariants = Project.ProjectVariants.Except(ProjectVariants) .Aggregate("", (s, variant) => s + SINGLE_PROJECT_VARIANT.RQLFormat(variant, false)); var projectVariants = checkedProjectVariants + uncheckedProjectVariants; return(projectVariants); }
public void Assign(ILookup <ITemplateVariant, ProjectVariantAssignmentSettings> assignments) { const string ASSIGN_PROJECT_VARIANT = @"<TEMPLATE guid=""{0}""><TEMPLATEVARIANTS>{1}</TEMPLATEVARIANTS></TEMPLATE>"; const string SINGLE_ASSIGNMENT = @"<TEMPLATEVARIANT guid=""{0}""><PROJECTVARIANTS action=""assign"">{1}</PROJECTVARIANTS></TEMPLATEVARIANT>"; const string SINGLE_PROJECT_VARIANT = @"<PROJECTVARIANT donotgenerate=""{1}"" donotusetidy=""{2}"" guid=""{0}"" />"; var builder = new StringBuilder(); foreach (var curEntry in assignments) { var projectVariants = curEntry.Aggregate("", (s, variant) => s + SINGLE_PROJECT_VARIANT.RQLFormat(variant.ProjectVariant, !variant.IsPublishing, variant.IsNotUsingTidy)); builder.Append(SINGLE_ASSIGNMENT.RQLFormat(curEntry.Key, projectVariants)); } Project.ExecuteRQL(ASSIGN_PROJECT_VARIANT.RQLFormat(_contentClass, builder), RqlType.SessionKeyInProject); InvalidateCache(); }