Como a: Adicionar regras complexas para um público com AND, ou, (e) Operadores
Interface de usuário fornece apenas duas opções para definir regras para audiências: Incluir usuários que satisfazem todas as regras, ou incluir usuários que atendem às regras. Embora isso possa ser suficiente para algumas situações, geralmente você precisará incluir usuários que atendem às regras complexas. Regras complexas usar dois AND e OR operadores e elas também podem usar parênteses () para GRUPO as regras para dar-lhes um significado diferente.
Em casos em que você precise criar regras complexas, você pode usar o modelo objeto público. Modelo de objeto dá suporte a até um máximo de três níveis de aninhamento de parênteses.
O seguinte exemplo de código adiciona regras complexas para um público chamado "John e Jorge conexão". Este exemplo usa AND, OR, e (e) operadores para combinar múltiplo regras e as regras GRUPO.
Dica
Se você criar um público com regras complexas, não é possível exibição ou editar suas propriedades ou excluí-la usando a interface usuário.No entanto, você pode usar a interface usuário para exibição sua associação.
Substituir nome_do_servidor e outras seqüências de caracteres com real valores antes execução a exemplo de código. Também adicionar o seguinte referências em seu projeto Microsoft Visual Studio:
Microsoft.Office.Server
Microsoft.SharePoint
System.Web
Exemplo
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint.Administration;
using Microsoft.Office.Server.Audience;
using Microsoft.SharePoint;
using Microsoft.Office.Server;
using System.Web;
using System.Collections;
namespace AudienceConsoleApp
{
class Program
{
static void Main(string[] args)
{
try
{
using (SPSite site = new SPSite("https://servername"))
{
ServerContext context = ServerContext.GetContext(site);
AudienceManager AudMgr = new AudienceManager(context);
AudienceCollection ac = AudMgr.Audiences;
Audience a = null;
bool ruleListNotEmpty = false;
try
{
a = AudMgr.Audiences["John and Joe Connection"];
}
catch (AudienceArgumentException ex)
{
//your exception handling code here
}
ArrayList aRules = a.AudienceRules;
if (aRules == null)
{
aRules = new ArrayList();
}
else
{
ruleListNotEmpty = true;
}
try
{
//if the rule is not emply, start with a group operator 'AND' to append
if (ruleListNotEmpty)
{
aRules.Add(new AudienceRuleComponent(null, "AND", null));
}
AudienceRuleComponent r0 = new AudienceRuleComponent(null, "(", null);
aRules.Add(r0);
AudienceRuleComponent r1 = new AudienceRuleComponent("FirstName", "Contains", "John");
aRules.Add(r1);
AudienceRuleComponent r2 = new AudienceRuleComponent(null, "AND", null);
aRules.Add(r2);
AudienceRuleComponent r3 = new AudienceRuleComponent("WorkEmail", "Contains", "example.com");
aRules.Add(r3);
AudienceRuleComponent r4 = new AudienceRuleComponent(null, ")", null);
aRules.Add(r4);
AudienceRuleComponent r5 = new AudienceRuleComponent(null, "OR", null);
aRules.Add(r5);
AudienceRuleComponent r6 = new AudienceRuleComponent(null, "(", null);
aRules.Add(r6);
AudienceRuleComponent r7 = new AudienceRuleComponent("FirstName", "Contains", "Joe");
aRules.Add(r7);
AudienceRuleComponent r8 = new AudienceRuleComponent(null, "AND", null);
aRules.Add(r8);
AudienceRuleComponent r9 = new AudienceRuleComponent("WorkEmail", "Contains", "someexample.com");
aRules.Add(r9);
AudienceRuleComponent r10 = new AudienceRuleComponent(null, ")", null);
aRules.Add(r10);
a.AudienceRules = aRules;
a.Commit();
}
catch (AudienceException e)
{
//Your exception handling code here
}
}
}
catch (Exception exception)
{
Console.WriteLine(exception.ToString());
Console.Read();
}
}
}
}