<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Guru Pratap's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/guruketepalli/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/guruketepalli/feed.xml</link>
    <description />
    <lastBuildDate>Sat, 11 Apr 2015 03:27:24 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>SQL Server Concatenate Row Values using T-SQL</title>
      <link>https://docs.microsoft.com/archive/blogs/guruketepalli/sql-server-concatenate-row-values-using-t-sql</link>
      <pubDate>Wed, 29 Jan 2014 09:14:00 GMT</pubDate>
      <dc:creator><![CDATA[Guru Pratap Ketepalli]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/guruketepalli/2014/01/29/sql-server-concatenate-row-values-using-t-sql/</guid>
      <description><![CDATA[Some time we need to show concatenated row values in the SQL Select Statements. Lets say, if we have...]]></description>
      <content:encoded><![CDATA[<p>Some time we need to show concatenated row values in the SQL Select Statements. Lets say, if we have Customers, Orders and Order details. Incase, if we have to list out all Products that each customer ordered&nbsp;in a single column.</p>
<p>Here is the snippet.</p>
<pre class="scroll"><code class="mysql">DECLARE @OrderDetails TABLE( <br />[OrderDetailsID] INT NOT NULL, <br />[OrderID] INT NOT NULL, <br />[ProductName] [nvarchar](40) NOT NULL, <br />[Quantity] INT NOT NULL <br />) <br /><br /><br />DECLARE @Orders TABLE( <br />[OrderID] INT NOT NULL , <br />[CustomerID] INT NOT NULL, <br />[OrderDate] [datetime] NULL) <br /><br /><br />DECLARE @Customers TABLE( <br />[CustomerID] INT NOT NULL, <br />[CompanyName] [nvarchar](40) NOT NULL, <br />[ContactName] [nvarchar](30) NULL <br />) <br /><br />INSERT INTO @Customers SELECT 1, 'ABC Ltd', 'Guru' <br />INSERT INTO @Customers SELECT 2, 'XYZ Ltd', 'Alick' <br />INSERT INTO @Customers SELECT 3, 'SSK Ltd', 'James' <br />INSERT INTO @Customers SELECT 4, 'RRS Ltd', 'Rohan' <br />INSERT INTO @Customers SELECT 5, 'SJFJ Ltd', 'Prince' <br /><br />INSERT INTO @Orders SELECT 1, 1, '15 Jan 2015' <br />INSERT INTO @Orders SELECT 2, 1, '11 Jan 2013' <br />INSERT INTO @Orders SELECT 3, 1, '13 Jan 2011' <br />INSERT INTO @Orders SELECT 4, 2, '12 Jan 2014' <br />INSERT INTO @Orders SELECT 5, 2, '18 Jan 2015' <br /><br />INSERT INTO @OrderDetails SELECT 1, 1, 'Product 1', 10 <br />INSERT INTO @OrderDetails SELECT 2, 1, 'Product 2', 5 <br />INSERT INTO @OrderDetails SELECT 3, 2, 'Product 3', 10 <br />INSERT INTO @OrderDetails SELECT 4, 2, 'Product 1', 5 <br />INSERT INTO @OrderDetails SELECT 5, 4, 'Product 3', 10 <br />INSERT INTO @OrderDetails SELECT 6, 5, 'Product 5', 5 <br /><br />/* <br />SELECT * FROM @Customers <br />SELECT * FROM @Orders <br />SELECT * FROM @OrderDetails <br />*/ <br /><br />SELECT c.[CompanyName], <br />( <br />SELECT od.ProductName + ':' + CAST(od.Quantity AS VARCHAR(50)) + ', ' <br />FROM @OrderDetails od INNER JOIN <br />@Orders o ON od.OrderID = o.OrderID <br />WHERE o.CustomerID = c.CustomerID <br />FOR XML PATH('') <br />) AS Products <br />FROM @Customers c </code></pre>
<pre class="scroll"><br />&nbsp;</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Here is the output.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/1778.SQL-Output.PNG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/1778.SQL_2D00_Output.PNG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/1778.SQL-Output.PNG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/1778.SQL_2D00_Output.PNG" alt="" border="0" /></a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2010 Administration service failed to start</title>
      <link>https://docs.microsoft.com/archive/blogs/guruketepalli/sharepoint-2010-administration-service-failed-to-start</link>
      <pubDate>Tue, 10 Sep 2013 09:23:00 GMT</pubDate>
      <dc:creator><![CDATA[Guru Pratap Ketepalli]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/guruketepalli/2013/09/10/sharepoint-2010-administration-service-failed-to-start/</guid>
      <description><![CDATA[After updating some windows updates in SharePoint 2010 machine, it stopped SharePoint 2010...]]></description>
      <content:encoded><![CDATA[<p>After updating some windows updates in SharePoint 2010 machine, it stopped SharePoint 2010 Administration Service. I have tried to start the service, got the below&nbsp;error&nbsp;</p>
<p><span style="color: #ff0000;">Windows could not start the SharePoint 2010 Administration service on Local Computer.</span></p>
<p><span style="color: #ff0000;">Error 1053: The service did not respond to the start or control request in a timely fashion.</span></p>
<p>I have tried several ways to fix the issue like restarted the machine, ran the SharePoint 2010 configuration wizard, etc. It didn't fix my issue.</p>
<p>&nbsp;</p>
<p><strong>Steps to fix :</strong></p>
<p>1. Run PS Config : "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN\psconfig" -cmd upgrade -inplace b2b -wait -force</p>
<p>2.&nbsp;Modify the service timeout values in the Registry:</p>
<p>HKLM\SYSTEM\CurrentControlSet\Control add/modify DWORD value ServicesPipeTimeout to 60000 (60 seconds) <br />HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control add/modify STRING value WaitToKillServiceTimeout to 120000 (120 seconds)</p>
<p>3.&nbsp;Restart the server machine.</p>
<p>&nbsp;</p>
<p>Found the solution from&nbsp;<a title="here" href="https://tuananhhnaptech.wordpress.com/2010/12/16/failure-to-start-the-windows-sharepoint-services-administration-service/" target="_blank">here</a>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint Error : The Managed Metadata Service or Connection is currently not available. The Application Pool or Managed Metadata Web Service may not have been started.</title>
      <link>https://docs.microsoft.com/archive/blogs/guruketepalli/sharepoint-error-the-managed-metadata-service-or-connection-is-currently-not-available-the-application-pool-or-managed-metadata-web-service-may-not-have-been-started</link>
      <pubDate>Fri, 09 Aug 2013 01:12:00 GMT</pubDate>
      <dc:creator><![CDATA[Guru Pratap Ketepalli]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/guruketepalli/2013/08/09/sharepoint-error-the-managed-metadata-service-or-connection-is-currently-not-available-the-application-pool-or-managed-metadata-web-service-may-not-have-been-started/</guid>
      <description><![CDATA[This error&nbsp;"The Managed Metadata Service or Connection is currently not available. The...]]></description>
      <content:encoded><![CDATA[<p>This error&nbsp;"<span style="color: #ff0000;">The Managed Metadata Service or Connection is currently not available. The Application Pool or Managed Metadata Web Service may not have been started. Please Contact your Administrator</span>." appears with various possible ways. I have tried googling and everybody has given a solution to provide permission to Managed Metadata Service Application. But, this didn't fix my issue.</p>
<p>I have looked at the ULS logs, it gives me&nbsp;access error as below.</p>
<p><span style="color: #ff0000;">Exception occured while connecting to WCF endpoint: System.ServiceModel.Security.SecurityAccessDeniedException: Access is denied.&nbsp;&nbsp;&nbsp; Server stack trace:&nbsp;&nbsp;&nbsp;</span></p>
<p><span style="color: #000000;">The below are possible solutions for this issue.</span></p>
<p><strong><span style="color: #000000;">Solution 1: &nbsp;Check your IIS and check&nbsp;IUSR is added in Anonymous Authentication. Here are the steps.</span></strong></p>
<ul>
<li><span style="color: #000000;">Open the IIS and click on ServerName in left pane. Now Click on Authentication in middle pane as shown in below screenshot.</span></li>
</ul>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/8206.IIS.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/8206.IIS.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/8206.IIS.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/8206.IIS.png" alt="" border="0" /></a></p>
<p>&nbsp;</p>
<ul>
<li><span style="color: #000000;">Right Click on Anonymous Authentication and select Edit option. </span></li>
</ul>
<p><span style="color: #000000;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/2548.IIS1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/2548.IIS1.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/2548.IIS1.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/2548.IIS1.png" alt="" border="0" /></a></span></p>
<ul>
<li><span style="color: #000000;">Click on Specific User radio bution and click on Set Button. The below dialog appears. Type IUSR in user name field and click on OK button.</span></li>
</ul>
<p>&nbsp;</p>
<ul>
<li><span style="color: #000000;">Here is the below screenshot once you set the IUSR user. Click on OK button. Now, you try to navigate managed metadata service from central admin. This will fix your issue.</span></li>
</ul>
<p><span style="color: #000000;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/5775.IIS3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/5775.IIS3.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/5775.IIS3.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/5775.IIS3.png" alt="" border="0" /></a></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><span style="color: #000000;">Solution 2: Could be a permission issue on Managed Metadata Service Application. Check the below link for the fix.</span></strong></p>
<p>1. Go to SharePoint Central Administration Site &ndash;&gt; Application Management &ndash;&gt; [Service Applications] &ndash;&gt; Manage service applications</p>
<p>2. Highlight the Managed Metadata Service that your web application is associated with. (Do not click on the link, just click somewhere else on that row to highlight it)</p>
<p>3. Click on <strong>Permissions</strong> button in the ribbon area.</p>
<p>4. Add the application pool account used by your web application and give it at least &lsquo;<strong>Read Access to Term Store</strong>&rsquo;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/16/13/metablogapi/5633.image_38698CE7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-16-13-metablogapi/5633.image_5F00_38698CE7.png"><img style="border: 0px currentColor; display: inline;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/16/13/metablogapi/1016.image_thumb_72E48CBB.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-16-13-metablogapi/1016.image_5F00_thumb_5F00_72E48CBB.png" alt="image" width="363" height="339" border="0" /></a></p>
<p>5. click OK</p>
<p>More Info :</p>
<p><span style="color: #000000;"><a href="https://blogs.msdn.com/b/allenwang/archive/2011/03/22/the-managed-metadata-or-connection-is-currently-not-available.aspx">https://blogs.msdn.com/b/allenwang/archive/2011/03/22/the-managed-metadata-or-connection-is-currently-not-available.aspx</a></span></p>
<p>&nbsp;</p>
<p><strong><span style="color: #000000;">Solution 3: Issue could be Managed Metadata Service wouldn't have started. Check the below link for the fix.</span></strong></p>
<p><strong><span style="color: #000000;">Resolution: Make sure the managed metadata service is already started. </span></strong></p>
<p><span style="color: #000000;">How to check this:-</span></p>
<p><span style="color: #000000;">Central Administration </span><span style="color: #000000;">-&gt; manage services on server -&gt; managed metadata service -&gt; start</span></p>
<p><span style="color: #000000;">Once the service is in started mode then check the results again by clicking on the managed metadata service application, it has to open the page without any errors\exceptions. </span></p>
<p><span style="color: #000000;">If you face the same error message as mentioned above then please execute IISRESET once and that&rsquo;s it. </span><span style="color: #000000;">More Info: </span><span style="color: #000000;"><a href="https://sharepointknowledgebase.blogspot.co.uk/2013/04/the-managed-metadata-service-or.html">https://sharepointknowledgebase.blogspot.co.uk/2013/04/the-managed-metadata-service-or.html</a></span></p>
<p>&nbsp;</p>
<p><strong><span style="color: #000000;">Solution 4: Low Disk Space in database Server. Check your disk space in database server.</span></strong></p>
<p><strong><span style="color: #000000;">Solution 5: Check the database permission of the farm account</span></strong></p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2013 CSOM Taxonomy (Managed Metadata)</title>
      <link>https://docs.microsoft.com/archive/blogs/guruketepalli/sharepoint-2013-csom-taxonomy-managed-metadata</link>
      <pubDate>Mon, 05 Aug 2013 07:33:00 GMT</pubDate>
      <dc:creator><![CDATA[Guru Pratap Ketepalli]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/guruketepalli/2013/08/05/sharepoint-2013-csom-taxonomy-managed-metadata/</guid>
      <description><![CDATA[SharePoint 2013 has introduced Microsoft.SharePoint.Client.Taxonomy.dll.&nbsp; It means that we can...]]></description>
      <content:encoded><![CDATA[<p>SharePoint 2013 has introduced <strong>Microsoft.SharePoint.Client.Taxonomy.dll.&nbsp; </strong>It means that we can do play with Taxonomy using client side object model instead of just relying on server side code. This dll is located at <strong>C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\. </strong>Programming using CSOM is almost similar to server side object model.</p>
<p>The below code shows how to create Termsets, Groups, Terms.</p>
<p>&nbsp;&nbsp;</p>
<p>&nbsp;</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">public</span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">class</span></span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">SharePointWebContext</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> : </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">IDisposable</span></span></span></p>
<p>{</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">public</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> Microsoft.SharePoint.Client.</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">ClientContext</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> SharePointClientContext = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">null</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">;</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">public</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> Microsoft.SharePoint.Client.</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Web</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> Web = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">null</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">;</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">public</span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">string</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> Url = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">string</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.Empty;</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">protected</span></span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">ILog</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> Log = </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">LogManager</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.GetLogger(</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">typeof</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">SharePointWebContext</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">));</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">public</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> SharePointWebContext(Microsoft.SharePoint.Client.</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Web</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> web, </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">string</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> url)</span></span></p>
<p>{</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">this</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.Web = web;</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">this</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.Url = url;</span></span></p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">public</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> SharePointWebContext(</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">string</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> url)</span></span></p>
<p>{</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">this</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.Url = url;</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">this</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.SharePointClientContext = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">new</span></span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">ClientContext</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">this</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.Url);</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">this</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.Web = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">this</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.SharePointClientContext.Web;</span></span></p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"> #region</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> IDisposable Members</span></span></p>
<p><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;">///</span></span></span><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;">&lt;summary&gt;</span></span></span></p>
<p><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;">///</span></span></span><span style="color: #008000; font-family: Consolas; font-size: x-small;"><span style="color: #008000; font-family: Consolas; font-size: x-small;"><span style="color: #008000; font-family: Consolas; font-size: x-small;"> Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged</span></span></span></p>
<p><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;">///</span></span></span><span style="color: #008000; font-family: Consolas; font-size: x-small;"><span style="color: #008000; font-family: Consolas; font-size: x-small;"><span style="color: #008000; font-family: Consolas; font-size: x-small;"> resources.</span></span></span></p>
<p><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;">///</span></span></span><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;"><span style="color: #808080; font-family: Consolas; font-size: x-small;">&lt;/summary&gt;</span></span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">void</span></span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">IDisposable</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.Dispose()</span></span></p>
<p>{</p>
<p>}</p>
<p>#endregion</p>
<p>}</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">[</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Description</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(</span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">"Processes an XML string containing managed metadata terms, termsets and groups."</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">)]</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">public </span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">class </span></span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">WebCreateTermsets</span></span></span></p>
<p>{</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">public</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> WebCreateTermsets(Microsoft.SharePoint.Client.</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">ClientContext</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> context)</span></span></p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> : </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">base</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(context)</span></span></p>
<p>{ }</p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> [</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Parameter</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(1, </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">typeof</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">String</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">), </span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">"SiteUrl"</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">, </span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">"The web url"</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">)]</span></span></p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> [</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Parameter</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(2, </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">typeof</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">String</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">), </span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">"TermSetXmlData"</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">, </span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">"An XML string containing terms, termsets and groups"</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">)]</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">protected</span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">override</span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">void</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> OnExecute(</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">params</span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">object</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">[] args)</span></span></p>
<p>{</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">try</span></span></span></p>
<p>{</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">string</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> webUrl = GetParameter&lt;</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">string</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">&gt;(args, 1);</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">string</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> xmlData = GetParameter&lt;</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">string</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">&gt;(args, 2);</span></span></p>
<p><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermStoreInfo</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termStoreInfo = </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermStoreInfo</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.FromXml(xmlData);</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">using</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">var</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> context = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">new </span></span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">SharePointWebContext</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(webUrl))</span></span></p>
<p>{</p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> Microsoft.SharePoint.Client.</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Web</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> web = context.Web;</span></span></p>
<p><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TaxonomySession</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> taxonomySession = </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TaxonomySession</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.GetTaxonomySession(web.Context);</span></span></p>
<p><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermStore</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termStore = taxonomySession.TermStores.GetByName(termStoreInfo.Name);</span></span></p>
<p>web.Context.Load(termStore);</p>
<p>web.Context.ExecuteQuery();</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">if</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (termStore == </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">null</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">)</span></span></p>
<p>{</p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> Log.ErrorFormat(</span></span><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;"><span style="color: #a31515; font-family: Consolas; font-size: x-small;">"The Taxonomy Service is offline or unavailable."</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">);</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">return</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">;</span></span></p>
<p>}</p>
<p>CreateGroups(termStoreInfo, termStore, web);</p>
<p>}</p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">catch</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Exception</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> x)</span></span></p>
<p>{</p>
<p>Log.Exception(x);</p>
<p>}</p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">protected</span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">void</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> CreateGroups(</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermStoreInfo</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termstoreInfo, </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermStore</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termStore, Microsoft.SharePoint.Client.</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Web</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> web)</span></span></p>
<p>{</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">if</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (termstoreInfo != </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">null</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> &amp;&amp; termstoreInfo.Groups.Count &gt; 0)</span></span></p>
<p>{</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">foreach</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">GroupInfo</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> groupInfo </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">in</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termstoreInfo.Groups)</span></span></p>
<p>{</p>
<p><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermGroup</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termGroup = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">default</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermGroup</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">);</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">try</span></span></span></p>
<p>{</p>
<p>termGroup = termStore.Groups.GetByName(groupInfo.Name);</p>
<p>web.Context.Load(termGroup);</p>
<p>web.Context.ExecuteQuery();</p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">catch</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Exception</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">)</span></span></p>
<p>{</p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termGroup = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">null</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">;</span></span></p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">if</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (termGroup == </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">null</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">)</span></span></p>
<p>{</p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termGroup = termStore.CreateGroup(groupInfo.Name, </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Guid</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.NewGuid());</span></span></p>
<p>termStore.CommitAll();</p>
<p>web.Context.ExecuteQuery();</p>
<p>}</p>
<p>CreateTermsets(groupInfo, termGroup, termStore, web);</p>
<p>}</p>
<p>}</p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">protected</span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">void</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> CreateTermsets(</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">GroupInfo</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> groupInfo, </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermGroup</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termGroup, </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermStore</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termStore, Microsoft.SharePoint.Client.</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Web</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> web)</span></span></p>
<p>{</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">foreach</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermSetInfo</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termsetInfo </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">in</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> groupInfo.TermSets)</span></span></p>
<p>{</p>
<p><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermSet</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termSet = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">default</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermSet</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">);</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">try</span></span></span></p>
<p>{</p>
<p>termSet = termGroup.TermSets.GetByName(termsetInfo.Name);</p>
<p>web.Context.Load(termSet);</p>
<p>web.Context.ExecuteQuery();</p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">catch</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Exception</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">)</span></span></p>
<p>{</p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termSet = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">null</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">;</span></span></p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">if</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (termSet == </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">null</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">)</span></span></p>
<p>{</p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termSet = termGroup.CreateTermSet(termsetInfo.Name, </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Guid</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.NewGuid(), 1033);</span></span></p>
<p>termStore.CommitAll();</p>
<p>web.Context.ExecuteQuery();</p>
<p>}</p>
<p>CreateTerms(termsetInfo, termSet, termStore, web);</p>
<p>}</p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">protected</span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">void</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> CreateTerms(</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermSetInfo</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termSetInfo, </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermSet</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termSet, </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermStore</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termStore, Microsoft.SharePoint.Client.</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Web</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> web)</span></span></p>
<p>{</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">foreach</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermInfo</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termInfo </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">in</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termSetInfo.Terms)</span></span></p>
<p>{</p>
<p><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Term</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> term = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">default</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Term</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">);</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">try</span></span></span></p>
<p>{</p>
<p>term = termSet.Terms.GetByName(termInfo.Name);</p>
<p>web.Context.Load(term);</p>
<p>web.Context.ExecuteQuery();</p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">catch</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Exception</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">)</span></span></p>
<p>{</p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> term = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">null</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">;</span></span></p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">if</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (term == </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">null</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">)</span></span></p>
<p>{</p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> term = termSet.CreateTerm(termInfo.Name, 1033, </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Guid</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.NewGuid());</span></span></p>
<p>termStore.CommitAll();</p>
<p>web.Context.ExecuteQuery();</p>
<p>}</p>
<p>CreateTerms(termInfo, term, termStore, web);</p>
<p>}</p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">protected</span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">void</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> CreateTerms(</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermInfo</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termInfo, </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Term</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> term, </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermStore</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termStore, Microsoft.SharePoint.Client.</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Web</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> web)</span></span></p>
<p>{</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">foreach</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">TermInfo</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> childTermInfo </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">in</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> termInfo.ChildTerms)</span></span></p>
<p>{</p>
<p><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Term</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> childTerm = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">default</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Term</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">);</span></span></p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">try</span></span></span></p>
<p>{</p>
<p>childTerm = term.Terms.GetByName(childTermInfo.Name);</p>
<p>web.Context.Load(childTerm);</p>
<p>web.Context.ExecuteQuery();</p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">catch</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (</span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Exception</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">)</span></span></p>
<p>{</p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> childTerm = </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">null</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">;</span></span></p>
<p>}</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">if</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (childTerm == </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">null</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">)</span></span></p>
<p>{</p>
<p><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> childTerm = term.CreateTerm(childTermInfo.Name, 1033, </span></span><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;"><span style="color: #2b91af; font-family: Consolas; font-size: x-small;">Guid</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">.NewGuid());</span></span></p>
<p>termStore.CommitAll();</p>
<p>web.Context.ExecuteQuery();</p>
<p>}</p>
<p>CreateTerms(childTermInfo, childTerm, termStore, web);</p>
<p>}</p>
<p>}</p>
<p>&nbsp;</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">protected</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> T GetParameter&lt;T&gt;(</span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">object</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">[] args, </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">int</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> parameterId)</span></span></p>
<p>&nbsp;{</p>
<p>&nbsp;<span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">if</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (args == </span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">null</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> || parameterId &gt; args.Length)</span></span></p>
<p>&nbsp;<span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">return</span></span></span><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">default</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;">(T);</span></span>&nbsp;</p>
<p><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;"><span style="color: #0000ff; font-family: Consolas; font-size: x-small;">return</span></span></span><span style="font-family: Consolas; font-size: x-small;"><span style="font-family: Consolas; font-size: x-small;"> (T)args[parameterId - 1];</span></span></p>
<p>&nbsp;}</p>
<p>&nbsp;</p>
<p>}</p>
<p>&nbsp;</p>
<p>The input for this class is going to be in below format. The input is encoded xml.</p>
<p>&nbsp;</p>
<pre class="scroll"><code class="html">&lt;SharePointCommands xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns="https://schemas.sharepointarchitects.com/caml.net/SharePointCommandSet.xsd"&gt;<br /> &lt;Command Type="WebCreateTermsets"&gt;<br /> &lt;Name&gt;Caml.Net.SharePoint.Tools.Web.WebCreateTermsets&lt;/Name&gt;<br /> &lt;Description&gt;Processes an XML string containing managed metadata terms, termsets and groups.&lt;/Description&gt;<br /> &lt;Parameters&gt;<br /> &lt;Parameter&gt;<br /> &lt;Name&gt;SiteUrl&lt;/Name&gt;<br /> &lt;Type&gt;System.String&lt;/Type&gt;<br /> &lt;Description&gt;SiteUrl&lt;/Description&gt;<br /> &lt;Value&gt;https://win-64t2uiim6ta/sites/TestBox&lt;/Value&gt;<br /> &lt;/Parameter&gt;<br /> &lt;Parameter&gt;<br /> &lt;Name&gt;TermSetXmlData&lt;/Name&gt;<br /> &lt;Type&gt;System.String&lt;/Type&gt;<br /> &lt;Description&gt;TermSetXmlData&lt;/Description&gt;<br /> &lt;Value&gt;<br /> &amp;lt;TermStore&amp;gt;<br /> &amp;lt;Name&amp;gt;Managed Metadata Service&amp;lt;/Name&amp;gt;<br /> &amp;lt;Groups&amp;gt;<br /> &amp;lt;Group&amp;gt;<br /> &amp;lt;Name&amp;gt;Groupl&amp;lt;/Name&amp;gt;<br /> &amp;lt;Termsets&amp;gt;<br /> &amp;lt;Termset&amp;gt;<br /> &amp;lt;Name&amp;gt;Termset1&amp;lt;/Name&amp;gt;<br /> &amp;lt;Terms&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level1Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;Terms&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level11Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level12Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;/Terms&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level2Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;/Terms&amp;gt;<br /> &amp;lt;/Termset&amp;gt;<br /> &amp;lt;Termset&amp;gt;<br /> &amp;lt;Name&amp;gt;Termset2&amp;lt;/Name&amp;gt;<br /> &amp;lt;Terms&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level1Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;Terms&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level11Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level12Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level13Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;/Terms&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level2Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level3Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;/Terms&amp;gt;<br /> &amp;lt;/Termset&amp;gt;<br /> &amp;lt;/Termsets&amp;gt;<br /> &amp;lt;/Group&amp;gt;<br /> &amp;lt;Group&amp;gt;<br /> &amp;lt;Name&amp;gt;Group2&amp;lt;/Name&amp;gt;<br /> &amp;lt;Termsets&amp;gt;<br /> &amp;lt;Termset&amp;gt;<br /> &amp;lt;Name&amp;gt;Termset1&amp;lt;/Name&amp;gt;<br /> &amp;lt;Terms&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level1Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;Terms&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level11Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level12Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;/Terms&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level2Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;/Terms&amp;gt;<br /> &amp;lt;/Termset&amp;gt;<br /> &amp;lt;Termset&amp;gt;<br /> &amp;lt;Name&amp;gt;Termset2&amp;lt;/Name&amp;gt;<br /> &amp;lt;Terms&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level1Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;Terms&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level11Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level12Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level12Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;/Terms&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level2Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;Term&amp;gt;<br /> &amp;lt;Name&amp;gt;Level3Term&amp;lt;/Name&amp;gt;<br /> &amp;lt;/Term&amp;gt;<br /> &amp;lt;/Terms&amp;gt;<br /> &amp;lt;/Termset&amp;gt;<br /> &amp;lt;/Termsets&amp;gt;<br /> &amp;lt;/Group&amp;gt;<br /> &amp;lt;/Groups&amp;gt;<br /> &amp;lt;/TermStore&amp;gt;<br /> &lt;/Value&gt;<br /> &lt;/Parameter&gt;<br /> &lt;/Parameters&gt;<br /> &lt;/Command&gt;<br /> &lt;/SharePointCommands&gt;</code></pre>
<pre class="scroll"><code class="html"></code>&nbsp;</pre>
<pre class="scroll"><code class="html"></code>&nbsp;</pre>
<pre class="scroll"><code class="html">Here is the output:</code></pre>
<pre class="scroll"><code class="html"></code>&nbsp;</pre>
<pre class="scroll">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/0451.Capture.JPG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/0451.Capture.JPG"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/0451.Capture.JPG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/0451.Capture.JPG" alt="" border="0" /></a></pre>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint Start Workflow : Error The security validation for this page is invalid.</title>
      <link>https://docs.microsoft.com/archive/blogs/guruketepalli/sharepoint-start-workflow-error-the-security-validation-for-this-page-is-invalid</link>
      <pubDate>Sat, 27 Jul 2013 10:11:36 GMT</pubDate>
      <dc:creator><![CDATA[Guru Pratap Ketepalli]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/guruketepalli/2013/07/27/sharepoint-start-workflow-error-the-security-validation-for-this-page-is-invalid/</guid>
      <description><![CDATA[Whenever we start the workflow programmatically using SPWorkflowManager.StartWorkflow(), it throws...]]></description>
      <content:encoded><![CDATA[<p>Whenever we start the workflow programmatically using SPWorkflowManager.StartWorkflow(), it throws security validation exception. Since we run with elevated previleges, the way to fix is to call SPUtility.ValidateFormDigest(). I am assuming you will get the ListItem by using GetSPListItem().</p>
<p>&nbsp;</p>
<p>var item = GetSPListItem()</p>
<p>if (item != null)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPWeb web = item.Web;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPWorkflowManager workflowManager = item.Web.Site.WorkflowManager;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var wfa = (from SPWorkflowAssociation spwfa in item.ParentList.WorkflowAssociations<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; spwfa.Name == UserProfileConstants.UserProfileApprovalWorkflow<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &amp;&amp; spwfa.Enabled == true<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select spwfa).FirstOrDefault();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (wfa != null)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br /><span style="background-color: #ffff00;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPUtility.ValidateFormDigest();</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web.AllowUnsafeUpdates = true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPSecurity.RunWithElevatedPrivileges(delegate()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; workflowManager.StartWorkflow(item, wfa, wfa.AssociationData, true);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception ex)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; item.Delete();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; finally<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; web.AllowUnsafeUpdates = false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; item.Delete();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.DisplayErrorMessage("No Active workflows found.");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>]]></content:encoded>
    </item>
    <item>
      <title>Open SharePoint Url in dialog using Jquery UI dialog</title>
      <link>https://docs.microsoft.com/archive/blogs/guruketepalli/open-sharepoint-url-in-dialog-using-jquery-ui-dialog</link>
      <pubDate>Mon, 22 Jul 2013 02:56:00 GMT</pubDate>
      <dc:creator><![CDATA[Guru Pratap Ketepalli]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/guruketepalli/2013/07/22/open-sharepoint-url-in-dialog-using-jquery-ui-dialog/</guid>
      <description><![CDATA[Some time we need to open the SharePoint pages from other technologies like PHP or other web...]]></description>
      <content:encoded><![CDATA[<p>Some time we need to open the SharePoint pages from other technologies like PHP or other web technologies. We can use Jquery UI top open the dialog page. The samples in jquery UI <a href="https://jqueryui.com/dialog/">https://jqueryui.com/dialog/</a> does't give any sample on how to open a URL in the dialog. The below sample works for opening the URL in JQuery UI dialog.</p>
<p>&nbsp;</p>
<p>&lt;!DOCTYPE html&gt;<br />&lt;html&gt;<br />&lt;head&gt;</p>
<p>&lt;script src="<a href="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js&quot;></script">https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"&gt;&lt;/script</a>&gt;<br />&lt;script src="<a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js&quot;></script">https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"&gt;&lt;/script</a>&gt;<br />&lt;link href="<a href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/themes/base/jquery-ui.css">https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/themes/base/jquery-ui.css</a>" rel="stylesheet" type="text/css" /&gt;<br />&lt;title&gt;Modal Dialog&lt;/title&gt;</p>
<p>&lt;script type="text/javascript"&gt;</p>
<p>&nbsp;&nbsp;&nbsp; $(function () {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $("#dialog").dialog({<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoOpen: false,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; show: "fade",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hide: "fade",<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; modal: true,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; open: function (ev, ui) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('#myIframe').src = 'https://www.google.com';<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; height: 900,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width: 1150,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; resizable: true,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; title: 'User Profile'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $("#opener").click(function () {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $("#dialog").dialog("open");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });<br />&nbsp;&nbsp;&nbsp; });</p>
<p>&lt;/script&gt;</p>
<p>&lt;/head&gt;<br />&lt;body&gt;<br />&lt;div id="dialog"&gt;&nbsp;&nbsp; <br />&nbsp;&nbsp; &lt;iframe id="Iframe1" style="width: 1100px; height: 800px;" src="<a href="https://sharepoint:2010/&quot;></iframe">https://sharepoint:2010/"&gt;&lt;/iframe</a>&gt;<br />&nbsp; &lt;div id="divInner"&gt;&lt;/div&gt;<br />&lt;/div&gt;<br />&lt;button id="opener"&gt;Open Dialog&lt;/button&gt;<br />&nbsp;<br />&lt;/body&gt;<br />&lt;/html&gt;</p>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint Check the user is member of audience Programmatically</title>
      <link>https://docs.microsoft.com/archive/blogs/guruketepalli/sharepoint-check-the-user-is-member-of-audience-programmatically</link>
      <pubDate>Thu, 18 Apr 2013 06:01:00 GMT</pubDate>
      <dc:creator><![CDATA[Guru Pratap Ketepalli]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/guruketepalli/2013/04/18/sharepoint-check-the-user-is-member-of-audience-programmatically/</guid>
      <description><![CDATA[Audiences in SharePoint Server 2010 are groupings of users that can be used to target content on a...]]></description>
      <content:encoded><![CDATA[<p>Audiences in SharePoint Server 2010 are groupings of users that can be used to target content on a SharePoint Server Web site. SharePoint Server 2010 allows targeting to the list-item level or to the list level. Groupings are determined by membership in Microsoft Exchange Server distribution lists, membership in SharePoint groups, or rules that are configured by an administrator. Each audience must be compiled before content can be targeted to that audience. Compilation identifies membership in an audience by crawling the data most recently reported from the identity management system. For more information, see <a href="https://technet.microsoft.com/en-gb/library/cc263065(v=office.14).aspx">https://technet.microsoft.com/en-gb/library/cc263065(v=office.14).aspx</a></p>
<p>&nbsp;</p>
<p>Sometimes we need to identify whether the user is a member of an&nbsp;Audience thru Programmatically. The following code snippet can be used to determine whether the user is part of audience or not. The LogUtility class used in this method just represents the logging technieque but doesn't actually provide the LogUtility class. Use your own logging mechanism.</p>
<p>Example of calling this method : bool isMember = IsUserMemberofAudience("<a href="https://SharePointServer/SiteCollection/">https://SharePointServer/SiteCollection/</a>", "Audience Manager", "domain\loginname");</p>
<p>&nbsp;</p>
<p>public static bool IsUserMemberofAudience(string siteUrl, string audienceName, string accountName)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LogUtility.Verbose("IsUserMemberofAudience()", "Entered");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bool isUserMemberofAudience = false;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (string.IsNullOrEmpty(siteUrl) || string.IsNullOrEmpty(audienceName))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return isUserMemberofAudience;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPSecurity.RunWithElevatedPrivileges(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; delegate<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPSite site = default(SPSite);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; using (site = new SPSite(siteUrl))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPServiceContext serviceContext = SPServiceContext.GetContext(site);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (null != serviceContext)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var audienceManager = new AudienceManager(serviceContext);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isUserMemberofAudience = audienceManager.IsMemberOfAudience(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; accountName, audienceName);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception ex)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LogUtility.Error(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "IsUserMemberofAudience()", <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string.Format(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "An error occurred while checking audience membership for user'{0}' of Audience = '{1}'.", <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; accountName, <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; audienceName));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isUserMemberofAudience = false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; finally<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (site != null)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; site.Dispose();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return isUserMemberofAudience;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<pre class="scroll">&nbsp;</pre>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Add/Remove SharePoint Workflows thru PowerShell</title>
      <link>https://docs.microsoft.com/archive/blogs/guruketepalli/addremove-sharepoint-workflows-thru-powershell</link>
      <pubDate>Tue, 06 Nov 2012 04:23:00 GMT</pubDate>
      <dc:creator><![CDATA[Guru Pratap Ketepalli]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/guruketepalli/2012/11/06/addremove-sharepoint-workflows-thru-powershell/</guid>
      <description><![CDATA[You can add/remove workflows to the list or library by navigating to
List Settings -&gt; Workflow...]]></description>
      <content:encoded><![CDATA[<p>You can add/remove workflows to the list or library by navigating to</p>
<p>List Settings -&gt; Workflow Settings -&gt; Add a workflow</p>
<p>List Settings -&gt; Workflow Settings -&gt; Remove a workflow</p>
<p>If you want to perform the same operation using PowerShell script, here is the script to add a workflow to a list</p>
<p><strong>Script to Add Workflow</strong></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="638">
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp; param(</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp; [string] $env = $(Read-Host -prompt "Specify the environment you want to run on (D-Dev, T-Test, P-Production) :")&nbsp; </span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">)</span></span></p>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">$env = $env.ToLower()</span></span></p>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">if($env -ne 'd' -and $env -ne 't' -and $env -ne 'p' -and $env -ne 'l') {</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp; Write-Host "ERROR: Invalid Input."</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">}</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">else {</span></span></p>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $siteAddress = $null</span></span></p>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp; if($env -eq 't') { $siteAddress = 'https://test.yoursite.com/' }</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp; elseif($env -eq 'd') { $siteAddress = 'https://dev.yoursite.com/' }</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elseif($env -eq 'p') { $siteAddress = 'https://yoursite.com/' }</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp; </span></span></p>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">echo $siteAddress</span></span></p>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp; # Get the SPSite object for a given SharePoint Url</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp; $SPSite = Get-SPSite $siteAddress</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp; if($SPSite -ne $null)</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp; {</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Get the root web site </span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp; $Web = $SPSite.OpenWeb();</span></span></p>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Get the list to which we wanted to associate the workflow</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $SPList =$Web.Lists["Announcements"];</span></span></p>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Get the Approval Workflow Template by specifying current culture info</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # $Culture = New-Object System.Globalization.CultureInfo("en-US");</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $Template = $Web.WorkflowTemplates.GetTemplateByName("Approval - SharePoint 2010",[System.Threading.Thread]::CurrentThread.CurrentCulture);</span></span></p>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Try to get workflow history and task list&nbsp; </span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $TaskList = $Web.Lists["Workflow Tasks"];</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $HistoryList = $Web.Lists["Workflow History"];</span></span></p>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp; # Create workflow history list if it doesn't exist by default.</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp; if($HistoryList -eq $null)</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp; {</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; $Web.Lists.Add("Workflow History", "My Workflow History","Lists/Workflow History", "00BFEA71-4EA5-48D4-A4AD-305DE7030140", 140, "101");</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; $HistoryList = $Web.Lists["Workflow History"];</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp; }</span></span></p>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Create the Workflow association by using Workflow Template, Task List and History List</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $Association=[Microsoft.SharePoint.Workflow.SPWorkflowAssociation]::CreateListAssociation($Template, "SharePoint Approval Workflow", $TaskList, $HistoryList);</span></span></p>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Enable automatic workflow start when news created or changed and disable manual start option</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $Association.AllowManual = $false; </span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $Association.AutoStartChange = $true; </span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $Association.AutoStartCreate = $true;</span></span></p>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Provide Association Data which includes as below</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. Approvers SharePoint group for list of approvers.</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. Serial order Workflow.</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. Specify the notification message while sending notifications to approvers.</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4. Automatically reject the document if it is rejected by any participant.</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5. Update the approval status after the workflow is completed (use this workflow to control content approval).</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $approvalAssociationData = "</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dfs:myFields xmlns:xsd='https://www.w3.org/2001/XMLSchema' </span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:dms='https://schemas.microsoft.com/office/2009/documentManagement/types' </span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:dfs='https://schemas.microsoft.com/office/infopath/2003/dataFormSolution' </span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:q='https://schemas.microsoft.com/office/infopath/2009/WSSList/queryFields' </span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:d='https://schemas.microsoft.com/office/infopath/2009/WSSList/dataFields' </span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:ma='https://schemas.microsoft.com/office/2009/metadata/properties/metaAttributes' </span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:pc='https://schemas.microsoft.com/office/infopath/2007/PartnerControls' </span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:xsi='https://www.w3.org/2001/XMLSchema-instance'&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dfs:queryFields&gt;&lt;/dfs:queryFields&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;dfs:dataFields&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:SharePointListItem_RW&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:Approvers&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:Assignment&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:Assignee&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pc:Person&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pc:DisplayName&gt;Approvers&lt;/pc:DisplayName&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pc:AccountId&gt;Approvers&lt;/pc:AccountId&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pc:AccountType&gt;SharePointGroup&lt;/pc:AccountType&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/pc:Person&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/d:Assignee&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:Stage xsi:nil='true' /&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:AssignmentType&gt;Serial&lt;/d:AssignmentType&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/d:Assignment&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/d:Approvers&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:ExpandGroups&gt;true&lt;/d:ExpandGroups&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:NotificationMessage&gt;Please have a look at submitted news.&lt;/d:NotificationMessage&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:DueDateforAllTasks xsi:nil='true' /&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:DurationforSerialTasks xsi:nil='true' /&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:DurationUnits&gt;Day&lt;/d:DurationUnits&gt;&lt;d:CC /&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:CancelonRejection&gt;true&lt;/d:CancelonRejection&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:CancelonChange&gt;false&lt;/d:CancelonChange&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;d:EnableContentApproval&gt;true&lt;/d:EnableContentApproval&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/d:SharePointListItem_RW&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/dfs:dataFields&gt;</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/dfs:myFields&gt;";</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $Association.AssociationData = $approvalAssociationData</span></span></p>
<p><span style="font-family: Calibri; font-size: small;">&nbsp;</span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Associate the approval workflow to News List</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $Workflow = $SPList.WorkflowAssociations.Add($Association);</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($SPSite -ne $null)</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Write-Host "Workflow has been attached successfully." -foregroundcolor "Green";</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $SPList.Update();</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Write-Host "Workflow could not be attached." -foregroundcolor "Yellow";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">&nbsp; }</span></span></p>
<p><span style="font-size: small;"><span style="font-family: Calibri;">}</span></span></p>
</td>
</tr>
</tbody>
</table>
<pre class="scroll">&nbsp;</pre>
<p><strong>Script to Remove Workflow</strong></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="638">
<p>&nbsp; param(</p>
<p>&nbsp; [string] $env = $(Read-Host<br />&nbsp; -prompt "Specify the environment you want to run on (D-Dev, T-Test,<br />&nbsp; P-Production) :")</p>
<p>)</p>
<p>&nbsp;</p>
<p>$env = $env.ToLower()</p>
<p>&nbsp;</p>
<p>if($env -ne 'd' -and $env -ne 't' -and $env -ne 'p') {</p>
<p>&nbsp;&nbsp;&nbsp; Write-Host "ERROR:<br />&nbsp; Invalid Input."</p>
<p>}</p>
<p>else {</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $siteAddress =<br />&nbsp; $null</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; if($env -eq 't') {<br />&nbsp; $siteAddress = 'https://test.yoursite.com/' }</p>
<p>&nbsp;&nbsp;&nbsp; elseif($env -eq 'd') {<br />&nbsp; $siteAddress = 'https://dev.yoursite.com/' }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elseif($env -eq<br />&nbsp; 'p') { $siteAddress = 'https://yoursite.com/' }&nbsp;&nbsp;&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp; # Get the SPSite object for a<br />&nbsp; given SharePoint Url</p>
<p>&nbsp; $SPSite = Get-SPSite<br />&nbsp; $siteAddress</p>
<p>&nbsp; if($SPSite -ne $null)</p>
<p>&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Get the root<br />&nbsp; web site</p>
<p>&nbsp;&nbsp;&nbsp; $Web = $SPSite.OpenWeb();</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # Get the list&nbsp; to which we wanted to associate the workflow</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $SPList&nbsp; =$Web.Lists["Announcements"];</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $workflowAssociation&nbsp; = $SPList.WorkflowAssociations.GetAssociationByName("SharePoint Approval<br />&nbsp; Workflow", [System.Threading.Thread]::CurrentThread.CurrentCulture);</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($workflowAssociation&nbsp; -ne $null)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp; Remove workflow association to list</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $SPList.RemoveWorkflowAssociation($workflowAssociation);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $SPList.Update();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Write-Host&nbsp; "Workflow association removed Successfully." -foregroundcolor&nbsp; "Green"</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Write-Host&nbsp; "Workflow association could not be found." -foregroundcolor&nbsp; "Yellow"</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp; }</p>
<p>}</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Enable Powershell ISE from Windows Server 2008 R2</title>
      <link>https://docs.microsoft.com/archive/blogs/guruketepalli/enable-powershell-ise-from-windows-server-2008-r2</link>
      <pubDate>Tue, 06 Nov 2012 04:02:27 GMT</pubDate>
      <dc:creator><![CDATA[Guru Pratap Ketepalli]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/guruketepalli/2012/11/06/enable-powershell-ise-from-windows-server-2008-r2/</guid>
      <description><![CDATA[PowerShell ISE (Integrated Scripting Environment) gets installed by default with Windows 7&nbsp; or...]]></description>
      <content:encoded><![CDATA[<p>PowerShell ISE (Integrated Scripting Environment) gets installed by default with Windows 7&nbsp; or Windows Server 2008 R2 but doesn't show in the start menu. There are two ways to enable PowerShell ISE.</p>
<p><strong>&nbsp;&nbsp;</strong><strong>Using PowerShell</strong></p>
<ol>
<li>Open Powershell Window</li>
<li>Execute following cmdlets.</li>
</ol>
<pre class="scroll"><code class="cplusplus"> Import-Module ServerManager <br /> Add-WindowsFeature PowerShell-ISE<br /> </code></pre>
<pre class="scroll"><code class="cplusplus"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/1563.Untitled.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/1563.Untitled.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/1563.Untitled.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/1563.Untitled.png" alt="" border="0" /></a></code></pre>
<p><strong></strong>&nbsp;</p>
<p><strong>Using Server Explorer</strong></p>
<ol>
<li>Open the Server Explorer</li>
<li>Navigate to the Features Node<strong></strong></li>
<li>Right-click on Features node, select<strong> &ldquo;</strong><strong>Add Features</strong><strong>&rdquo;</strong><strong></strong></li>
<li>You will get Add Features wizard with list of features provided with checkboxes.</li>
<li>Check the &ldquo;<strong>Windows PowerShell Integrated Scripting Environment (ISE)&rdquo;</strong></li>
<li>Click on Next button</li>
<li>Click on Install button.</li>
</ol>]]></content:encoded>
    </item>
    <item>
      <title>SharePoint 2010 Custom Timer Job - Send an Email</title>
      <link>https://docs.microsoft.com/archive/blogs/guruketepalli/sharepoint-2010-custom-timer-job-send-an-email</link>
      <pubDate>Mon, 23 Jan 2012 09:39:00 GMT</pubDate>
      <dc:creator><![CDATA[Guru Pratap Ketepalli]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/guruketepalli/2012/01/23/sharepoint-2010-custom-timer-job-send-an-email/</guid>
      <description><![CDATA[1. Open Visual Studio 2010 and goto FILE -&gt; New Project -&gt; Empty SharePoint Project.
2....]]></description>
      <content:encoded><![CDATA[<p>1. Open Visual Studio 2010 and goto <strong>FILE -&gt; New Project -&gt; Empty SharePoint Project.</strong></p>
<p>2. Select <strong>SharePoint 2010</strong> under Installed Templates under left Navigation.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/1586.ScreenShot1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/1586.ScreenShot1.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/1586.ScreenShot1.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/1586.ScreenShot1.png" /></a></p>
<p>3. Select <strong><span style="background-color: #ffff00;">Deploy as Farm Solution</span></strong> Option and replace <a href="https://%3c%3cservername%3e%3e/">https://&lt;&lt;ServerName&gt;&gt;/</a> with proper URL of the SharePoint site.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/4721.ScreenShot2.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/4721.ScreenShot2.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/4721.ScreenShot2.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/4721.ScreenShot2.png" /></a></p>
<p>4. Right Click on the Project and Create a New Item</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/7077.ScreenShot3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/7077.ScreenShot3.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/7077.ScreenShot3.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/7077.ScreenShot3.png" /></a></p>
<p>5. Select Code from Installed Templates of left Navigation and name the file as "<strong>NotificationTimerJob.cs</strong>"</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/5531.ScreenShot4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/5531.ScreenShot4.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/5531.ScreenShot4.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/5531.ScreenShot4.png" /></a></p>
<p>6. Paste the following code</p>
<p>&nbsp;</p>
<pre class="scroll"><span style="font-size: x-small;"><code class="csharp"><span style="color: #0000ff;">using</span> System; <br /><span style="color: #0000ff;">using</span> System.Collections.Generic; <br /><span style="color: #0000ff;">using</span> System.Linq; <br /><span style="color: #0000ff;">using</span> System.Text; <br /><span style="color: #0000ff;">using</span> Microsoft.SharePoint.Administration; <br /><span style="color: #0000ff;">using</span> Microsoft.SharePoint; <br /><span style="color: #0000ff;">using</span> System.Net.Mail; <br /> <br /><span style="color: #0000ff;">namespace</span> NotificationCustomTimerJob <br />{ <br /><span style="color: #0000ff;"> public class</span> <span style="color: #008080;">NotificationTimerJob</span> : Microsoft.SharePoint.Administration.<span style="color: #008080;">SPJobDefinition</span> <br /> { <br /> <span style="color: #008000;">/// &lt;summary&gt; </span><br /><span style="color: #008000;"> /// Default Consructor </span><br /><span style="color: #008000;"> /// &lt;/summary&gt;</span> <br /> <span style="color: #0000ff;">public</span> NotificationTimerJob() <br /> : <span style="color: #0000ff;">base</span>() <br /> { <br /> } <br /> <br /> <span style="color: #008000;">/// &lt;summary&gt; </span><br /><span style="color: #008000;"> /// Parameterized Constructor </span><br /><span style="color: #008000;"> /// &lt;/summary&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="jobName"&gt;Name of Job to display in central admin&lt;/param&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="service"&gt;SharePoint Service &lt;/param&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="server"&gt;Name of the server&lt;/param&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="targetType"&gt;job type is for content db or job&lt;/param&gt;</span> <br /> public NotificationTimerJob(string jobName, <span style="color: #008080;">SPService</span> service, <span style="color: #008080;">SPServer</span> server, <span style="color: #008080;">SPJobLockType</span> targetType) <br /> : base(jobName, service, server, targetType) <br /> { <br /> } <br /> <br /><span style="color: #008000;"> /// &lt;summary&gt; </span><br /><span style="color: #008000;"> /// Parameterized Constructor </span><br /><span style="color: #008000;"> /// &lt;/summary&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="jobName"&gt;&lt;/param&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="webApplication"&gt;&lt;/param&gt;</span> <br /> <span style="color: #0000ff;">public</span> NotificationTimerJob(<span style="color: #0000ff;">string</span> jobName, <span style="color: #008080;">SPWebApplication</span> webApplication) <br /> : <span style="color: #0000ff;">base</span>(jobName, webApplication, null, <span style="color: #008080;">SPJobLockType</span>.ContentDatabase) <br /> { <br /> <span style="color: #0000ff;">this</span>.Title = <span style="color: #800000;">"Email Notification Job"</span>; <br /> } <br /> <br /><span style="color: #008000;"> /// &lt;summary&gt; </span><br /><span style="color: #008000;"> /// Execute method called when the timer job starts executing. It runs on "DB News Announcements" list which checks for all </span><br /><span style="color: #008000;"> /// approved annoucements and sends out an email to all users for all approved news. </span><br /><span style="color: #008000;"> /// &lt;/summary&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="contentDbId"&gt;&lt;/param&gt;</span> <br /> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">override</span> <span style="color: #0000ff;">void</span> Execute(<span style="color: #008080;">Guid</span> contentDbId) <br /> { <br /> <span style="color: #0000ff;">string</span> from = string.Empty; <br /> <span style="color: #0000ff;">string</span> smtpAddress = string.Empty; <br /> <span style="color: #0000ff;">string</span> to = <span style="color: #800000;">"someone@somecompany.com"</span>; <br /> <span style="color: #0000ff;">string</span> subject = <span style="color: #800000;">"Email Notification"</span>; <br /> <span style="color: #0000ff;">string</span> body = <span style="color: #800000;">"&lt;h1&gt; Email Sending from Email Notification Job &lt;/h1&gt;"</span>; <br /> <br /> <span style="color: #008080;">SPSecurity</span>.RunWithElevatedPrivileges(<span style="color: #0000ff;">delegate</span>() <br /> { <br /><span style="color: #008000;"> // get a reference to the current site collection's content database</span> <br /> <span style="color: #008080;">SPWebApplication</span> webApplication = <span style="color: #0000ff;">this</span>.Parent as <span style="color: #008080;">SPWebApplication</span>; <br /> <span style="color: #008080;">SPContentDatabase</span> contentDb = webApplication.ContentDatabases[contentDbId]; <br /> <br /> <span style="color: #008000;">// get a reference to the "Tasks" list in the RootWeb of the first site collection in the content database</span> <br /> <span style="color: #008080;">SPWeb</span> rootWeb = contentDb.Sites[0].RootWeb; <br /> <br /><span style="color: #008000;"> // Get the DB News Announcements List</span> <br /> <span style="color: #008080;">SPList</span> listjob = rootWeb.Lists.TryGetList(<span style="color: #800080;">"Tasks"</span>); <br /> <br /><span style="color: #008000;"> // Get sender address from web application settings</span> <br /> from = rootWeb.Site.WebApplication.OutboundMailSenderAddress; <br /> <br /><span style="color: #008000;"> // Get SMTP address from web application settings</span> <br /> smtpAddress = rootWeb.Site.WebApplication.OutboundMailServiceInstance.Server.Address; <br /> <br /><span style="color: #008000;"> // Send an email if the news is approved</span> <br /> <span style="color: #0000ff;">bool</span> emailSent = SendMail(smtpAddress, subject, body, true, from, to, null, null); <br /> <br /> if (listjob != <span style="color: #0000ff;">null</span> &amp;&amp; emailSent) <br /> { <br /> <span style="color: #008080;">SPListItem</span> newListItem = listjob.Items.Add(); <br /> newListItem[<span style="color: #800000;">"Title"</span>] = string.Concat<span style="color: #800000;">("Email Notification Sent at : "</span>, <span style="color: #008080;">DateTime</span>.Now.ToString()); <br /> newListItem.Update(); <br /> } <br /> }); <br /> <br /> } <br /> <br /><span style="color: #008000;"> /// &lt;summary&gt; </span><br /><span style="color: #008000;"> /// Send an email to indented users </span><br /><span style="color: #008000;"> /// &lt;/summary&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="smtpAddress"&gt;SMTP address to sending email&lt;/param&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="subject"&gt;subject of email&lt;/param&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="body"&gt;body of email&lt;/param&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="isBodyHtml"&gt;whether body is html or text&lt;/param&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="from"&gt;from address&lt;/param&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="to"&gt;to users(multiple email address can be seperated by comma(,) )&lt;/param&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="cc"&gt;cc users&lt;/param&gt; </span><br /><span style="color: #008000;"> /// &lt;param name="bcc"&gt;bcc users&lt;/param&gt; </span><br /><span style="color: #008000;"> /// &lt;returns&gt;Status whether email successfully sent or not&lt;/returns&gt;</span> <br /> <span style="color: #0000ff;">public</span> bool SendMail(<span style="color: #0000ff;">string</span> smtpAddress, <span style="color: #0000ff;">string</span> subject, <span style="color: #0000ff;">string</span> body, <span style="color: #0000ff;">bool</span> isBodyHtml, <span style="color: #0000ff;">string</span> from, <span style="color: #0000ff;">string</span> to, <span style="color: #0000ff;">string</span> cc, <span style="color: #0000ff;">string</span> bcc) <br /> { <br /> <span style="color: #0000ff;">bool</span> mailSent = <span style="color: #0000ff;">false</span>; <br /> <span style="color: #008080;">SmtpClient</span> smtpClient = <span style="color: #0000ff;">null</span>; <br /> <br /> try <br /> { <br /><span style="color: #008000;"> // Assign SMTP address</span> <br /> smtpClient = new <span style="color: #008080;">SmtpClient</span>(); <br /> smtpClient.Host = smtpAddress; <br /> <br /><span style="color: #008000;"> //Create an email message</span> <br /> <span style="color: #008080;">MailMessage</span> mailMessage = <span style="color: #0000ff;">new</span> MailMessage(from, to, subject, body); <br /> if (!String.IsNullOrEmpty(cc)) <br /> { <br /> <span style="color: #008080;">MailAddress</span> CCAddress = <span style="color: #0000ff;">new</span> <span style="color: #008080;">MailAddress</span>(cc); <br /> mailMessage.CC.Add(CCAddress); <br /> } <br /> if (!<span style="color: #008080;">String</span>.IsNullOrEmpty(bcc)) <br /> { <br /> <span style="color: #008080;">MailAddress</span> BCCAddress = <span style="color: #0000ff;">new</span> <span style="color: #008080;">MailAddress</span>(bcc); <br /> mailMessage.Bcc.Add(BCCAddress); <br /> } <br /> mailMessage.IsBodyHtml = isBodyHtml; <br /> <br /><span style="color: #008000;"> // Send the email</span> <br /> smtpClient.Send(mailMessage); <br /> mailSent = true; <br /> } <br /> catch (<span style="color: #008080;">Exception</span>) <br /> { <br /> mailSent = <span style="color: #0000ff;">false</span>; <br /> } <br /> <br /> <span style="color: #0000ff;">return</span> mailSent; <br /> } <br /> <br /> <br /> } <br />} </code></span></pre>
<p><code class="csharp"></code>&nbsp;</p>
<p><code class="csharp">&nbsp;7. Now add a new feature </code></p>
<p><code class="csharp"></code>&nbsp;</p>
<p><code class="csharp"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/1452.ScreenShot5.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/1452.ScreenShot5.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/1452.ScreenShot5.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/1452.ScreenShot5.png" /></a></code></p>
<p>&nbsp;</p>
<p></p>
<pre class="scroll">Rename the feature to <strong>NotificationTimerJobFeature </strong>and add add an event receiver for registering the timer job and scheduling it for every 5 minutes. Change the <strong>scope to Site</strong></pre>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/5488.ScreenShot6.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/5488.ScreenShot6.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/5488.ScreenShot6.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/5488.ScreenShot6.png" /></a>&nbsp;</p>
<pre class="scroll">9. Paste the below code snippet in event receiver for Feature activation and deactivation.</pre>
<pre class="scroll">&nbsp;</pre>
<pre class="scroll"><code class="csharp"><span style="font-size: x-small;"><span style="color: #0000ff;">using</span> System; </span><br /><span style="font-size: x-small;"><span style="color: #0000ff;">using</span> System.Runtime.InteropServices; </span><br /><span style="font-size: x-small;"><span style="color: #0000ff;">using</span> System.Security.Permissions; </span><br /><span style="font-size: x-small;"><span style="color: #0000ff;">using</span> Microsoft.SharePoint; </span><br /><span style="font-size: x-small;"><span style="color: #0000ff;">using</span> Microsoft.SharePoint.Security; </span><br /><span style="font-size: x-small;"><span style="color: #0000ff;">using</span> System.Linq; </span><br /> <br /><span style="font-size: x-small;">namespace NotificationCustomTimerJob.Features.NotificationTimerJobFeature </span><br /><span style="font-size: x-small;">{ </span><br /><span style="color: #008000; font-size: x-small;"> /// &lt;summary&gt; </span><br /><span style="color: #008000; font-size: x-small;"> /// This class handles events raised during feature activation, deactivation, installation, uninstallation, and upgrade. </span><br /><span style="color: #008000; font-size: x-small;"> /// &lt;/summary&gt; </span><br /><span style="color: #008000; font-size: x-small;"> /// &lt;remarks&gt; </span><br /><span style="color: #008000; font-size: x-small;"> /// The GUID attached to this class may be used during packaging and should not be modified. </span><br /><span style="color: #008000; font-size: x-small;"> /// &lt;/remarks&gt; </span><br /> <br /><span style="font-size: x-small;"> [Guid("67388410-1290-41d2-8645-5a1203b27bc4")] </span><br /><span style="font-size: x-small;"><span style="color: #0000ff;"> public class</span> <span style="color: #008080;">NotificationTimerJobFeatureEventReceiver</span> : SPFeatureReceiver </span><br /><span style="font-size: x-small;"> { </span><br /><span style="color: #008000; font-size: x-small;"> // Name of the Timer Job, but not the Title which is displayed in central admin </span><br /><span style="font-size: x-small;"> private const string List_JOB_NAME = "NotificationTimerJob"; </span><br /> <br /><span style="color: #008000; font-size: x-small;"> // Uncomment the method below to handle the event raised after a feature has been activated. </span><br /> <br /><span style="font-size: x-small;"> public override void FeatureActivated(SPFeatureReceiverProperties properties) </span><br /><span style="font-size: x-small;"> { </span><br /><span style="font-size: x-small;"> SPSecurity.RunWithElevatedPrivileges(delegate() </span><br /><span style="font-size: x-small;"> { </span><br /><span style="font-size: x-small;"> SPSite site = properties.Feature.Parent as SPSite; </span><br /> <br /><span style="color: #008000; font-size: x-small;"> // make sure the job isn't already registered </span><br /><span style="font-size: x-small;"> site.WebApplication.JobDefinitions.Where(t =&gt; t.Name.Equals(List_JOB_NAME)).ToList().ForEach(j =&gt; j.Delete()); </span><br /> <br /><span style="color: #008000; font-size: x-small;"> // install the job </span><br /><span style="font-size: x-small;"> NotificationTimerJob listLoggerJob = new NotificationTimerJob(List_JOB_NAME, site.WebApplication); </span><br /><span style="font-size: x-small;"> SPMinuteSchedule schedule = new SPMinuteSchedule(); </span><br /><span style="font-size: x-small;"> schedule.BeginSecond = 0; </span><br /><span style="font-size: x-small;"> schedule.EndSecond = 59; </span><br /><span style="font-size: x-small;"> schedule.Interval = 5; </span><br /><span style="font-size: x-small;"> listLoggerJob.Schedule = schedule; </span><br /><span style="font-size: x-small;"> listLoggerJob.Update(); </span><br /><span style="font-size: x-small;"> }); </span><br /><span style="font-size: x-small;"> } </span><br /> <br /> <br /><span style="color: #008000; font-size: x-small;"> // Uncomment the method below to handle the event raised before a feature is deactivated. </span><br /> <br /><span style="font-size: x-small;"> public override void FeatureDeactivating(SPFeatureReceiverProperties properties) </span><br /><span style="font-size: x-small;"> { </span><br /><span style="font-size: x-small;"> SPSecurity.RunWithElevatedPrivileges(delegate() </span><br /><span style="font-size: x-small;"> { </span><br /><span style="font-size: x-small;"> SPSite site = properties.Feature.Parent as SPSite; </span><br /> <br /><span style="font-size: x-small;"> // delete the job </span><br /><span style="font-size: x-small;"> site.WebApplication.JobDefinitions.Where(t =&gt; t.Name.Equals(List_JOB_NAME)).ToList().ForEach(j =&gt; j.Delete()); </span><br /><span style="font-size: x-small;"> }); </span><br /><span style="font-size: x-small;"> } </span><br /> <br /> <br /><span style="color: #008000; font-size: x-small;"> // Uncomment the method below to handle the event raised after a feature has been installed. </span><br /> <br /><span style="color: #008000; font-size: x-small;"> //public override void FeatureInstalled(SPFeatureReceiverProperties properties) </span><br /><span style="color: #008000; font-size: x-small;"> //{ </span><br /><span style="color: #008000; font-size: x-small;"> //} </span><br /> <br /> <br /><span style="color: #008000; font-size: x-small;"> // Uncomment the method below to handle the event raised before a feature is uninstalled. </span><br /> <br /><span style="color: #008000; font-size: x-small;"> //public override void FeatureUninstalling(SPFeatureReceiverProperties properties) </span><br /><span style="color: #008000; font-size: x-small;"> //{ </span><br /><span style="color: #008000; font-size: x-small;"> //} </span><br /> <br /><span style="color: #008000; font-size: x-small;"> // Uncomment the method below to handle the event raised when a feature is upgrading. </span><br /> <br /><span style="color: #008000; font-size: x-small;"> //public override void FeatureUpgrading(SPFeatureReceiverProperties properties, string upgradeActionName, System.Collections.Generic.IDictionary&lt;string, string&gt; parameters) </span><br /><span style="color: #008000; font-size: x-small;"> //{ </span><br /><span style="color: #008000; font-size: x-small;"> //} </span><br /><span style="font-size: x-small;"> }</span> <br />} <br /></code></pre>
<pre class="scroll">&nbsp;</pre>
<pre class="scroll">10. Deploy the feature by right click on the project and deploy.</pre>
<pre class="scroll"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/3833.ScreenShot7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/3833.ScreenShot7.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/3833.ScreenShot7.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/3833.ScreenShot7.png" /></a></pre>
<pre class="scroll">&nbsp;</pre>
<pre class="scroll">11. Now navigate to <strong><a id="ctl00_PlaceHolderSiteName_onetidProjectPropertyTitle" href="https://blogs.msdn.com/">Central Administration</a> -&gt; Monitoring -&gt; Review Job Definitions </strong>under <strong>Timer Jobs </strong>section.</pre>
<pre class="scroll">&nbsp;</pre>
<pre class="scroll"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/3554.ScreenShot8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/3554.ScreenShot8.png"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/42/44/3554.ScreenShot8.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-44/3554.ScreenShot8.png" /></a></pre>
<pre class="scroll">12. Administrator can change the settings of the timer job schedule. Now this job sends an email and adds a Task in the task list.</pre>
<pre class="scroll">&nbsp;</pre>
<pre class="scroll">&nbsp;</pre>]]></content:encoded>
    </item>
  </channel>
</rss>