Invoke WCF Service Using Microsoft Dynamics Crm


Hi ,
In this post I would like to share how to config , Wcf service with Crm service
Before starting Have a look  how to interact WCF Services.

Create WCF Application .
Refer Bellow Sample Code :


IService1.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
[ServiceContract]
public interface IService1
{
    [OperationContract]
    string CreateLead(string FirstName , string LastName , string EmailId);
}

 


Service1.cs
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.Text;

// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
public class Service1 : IService1
{
    /// <summary>
    ///   username = Declaring Organization credential User Name (Online / on premis)
    ///   url = Organization Service Url
    /// </summary>

    #region Organization Credential
    OrganizationServiceProxy _oService;
    string username = "parthiban@dyn.onmicrosoft.com";
    string password = "********";
    string url = "https://dyn.api.mscrm.dynamics.com/XRMServices/2011/Organization.svc";
    #endregion

    #region Create Lead Record
    /// <summary>
    /// Create Lead Record
    /// </summary>
    /// <param name="FirstName"></param>
    /// <param name="LastName"></param>
    /// <param name="EmailId"></param>
    /// <returns>New Created Lead Guid </returns>
    public string CreateLead(string FirstName, string LastName, string EmailId)
    {

        Guid newContactId = Guid.Empty;
        //Check Weather Crm Authentication
        if (InitializeCRMService(username, password, url))
        {
            Entity LeadEntity = new Entity("lead");
            LeadEntity["firstname"] = FirstName;
            LeadEntity["lastname"] = LastName;
            LeadEntity["emailaddress1"] = EmailId;
            LeadEntity["subject"] = "Lead Created From Web Service";
            newContactId = _oService.Create(LeadEntity);

            return "New Lead Created Id : " + newContactId.ToString();
        }

        else
        {
            return "Record Could Not Be Created :" + newContactId.ToString();
        }
    }
    #endregion

    #region check for CRM Authentication Service
    /// <summary>
    /// Checking For Client Credential
    /// </summary>
    /// <param name="userName"></param>
    /// <param name="passWord"></param>
    /// <param name="Url"></param>
    /// <returns>Bool Value Either True / False </returns>
    private bool InitializeCRMService(string userName, string passWord, string Url)
    {
        bool isSuccess = false;
        Uri organizationUrl = new Uri(Url);
        ClientCredentials credentials = new ClientCredentials();
        credentials.UserName.UserName = userName;
        credentials.UserName.Password = passWord;
        _oService = new OrganizationServiceProxy(organizationUrl, null, credentials, null);
        _oService.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
        //Validate Users Credential
        if (_oService != null)
            isSuccess = true;
        return isSuccess;
    }
    #endregion
}

Run Your Application Service1.svc

 

WCF Output Image

Leave a comment