using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Principal;
using Microsoft.Crm.Sdk;
using Microsoft.Crm.SdkTypeProxy;
using MyCrmService = ProfessionalServicesPlugins.CrmSdk;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
namespace ProfessionalServicesPlugins
{
public class CreateProjectPlugin : IPlugin
{
///
/// Provision a SharePoint web when new Projects are created
///
public void Execute(IPluginExecutionContext context)
{
DynamicEntity entity = null;
// Create the task on the Microsoft CRM server.
MyCrmService.CrmService crmService = GetCrmService();
// Check if the input parameters property bag contains a target
// of type DynamicEntity and it is the correct entity type
if (context.InputParameters.Properties.Contains("Target") &&
context.InputParameters.Properties["Target"] is DynamicEntity &&
context.PrimaryEntityName == MyCrmService.EntityName.new_project.ToString())
{
// Obtain the target business entity from the input parmameters
entity = (DynamicEntity)context.InputParameters.Properties["Target"];
// Get the Project CRM properties
string projectName = entity.Properties["new_name"].ToString();
// Because plug-ins run as Network Service,
// we need to run with elevated
// privileges within SharePoint
SPSecurity.RunWithElevatedPrivileges(delegate()
{
// Access the root site collection
using (SPSite elevatedSite = new
SPSite("http://localhost:7777/sites/projects"))
{
SPWebCollection sites = elevatedSite.AllWebs;
elevatedSite.AllowUnsafeUpdates = true;
// Create the new Web
using (SPWeb web = sites.Add(projectName, projectName,
projectName, 1033, "STS#0", false, false))
{
// Add the URL to the entity
entity.Properties.Add(new StringProperty("new_sharepointurl",
web.Url));
}
}
});
}
}
private MyCrmService.CrmService GetCrmService()
{
// Setup the Authentication Token
MyCrmService.CrmAuthenticationToken token = new
MyCrmService.CrmAuthenticationToken();
token.OrganizationName = "MicrosoftCRM";
MyCrmService.CrmService crmService = new MyCrmService.CrmService();
crmService.Credentials = System.Net.CredentialCache.DefaultCredentials;
crmService.CrmAuthenticationTokenValue = token;
return crmService;
}
}
}
Tag Cloud
CRM 2011
(161)
CRM 4.0
(144)
C#
(116)
JScript
(109)
Plugin
(92)
Registry
(90)
Techpedia
(77)
PyS60
(68)
WScript
(43)
Plugin Message
(31)
Exploit
(27)
ShellCode
(26)
FAQ
(22)
JavaScript
(21)
Killer Codes
(21)
Hax
(18)
VB 6.0
(17)
Commands
(16)
VBScript
(16)
Quotes
(15)
Turbo C++
(13)
WMI
(13)
Security
(11)
1337
(10)
Tutorials
(10)
Asp.Net
(9)
Safe Boot
(9)
Python
(8)
Interview Questions
(6)
video
(6)
Ajax
(5)
VC++
(5)
WebService
(5)
Workflow
(5)
Bat
(4)
Dorks
(4)
Sql Server
(4)
Aptitude
(3)
Picklist
(3)
Tweak
(3)
WCF
(3)
regex
(3)
Config
(2)
LINQ
(2)
PHP
(2)
Shell
(2)
Silverlight
(2)
TSql
(2)
flowchart
(2)
serialize
(2)
ASHX
(1)
CRM 4.0 Videos
(1)
Debug
(1)
FetchXml
(1)
GAC
(1)
General
(1)
Generics
(1)
HttpWebRequest
(1)
InputParameters
(1)
Lookup
(1)
Offline Plug-ins
(1)
OutputParameters
(1)
Plug-in Constructor
(1)
Protocol
(1)
RIA
(1)
Sharepoint
(1)
Walkthrough
(1)
Web.config
(1)
design patterns
(1)
generic
(1)
iframe
(1)
secure config
(1)
unsecure config
(1)
url
(1)
Pages
Sunday, February 17, 2013
Create a SharePoint Website from a CRM Plug-in
Labels:
C#,
CRM 4.0,
Plugin,
Sharepoint
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment