Monday 28 May 2018

Console Application for Dynamics CRM connection


make sure to use the SDK  libraries


using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Client;
using Microsoft.Xrm.Sdk.Query;
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel.Description;
using System.Text;
using System.Threading.Tasks;

namespace Crm2
{
    public class Class1
    {
        static IOrganizationService _service;
        static void Main(string[] args)
        {
            ConnectToMSCRM("crm@midjune.onmicrosoft.com", "dora@123", "https://midjune.api.crm.dynamics.com/XRMServices/2011/Organization.svc");
            Guid userid = ((WhoAmIResponse)_service.Execute(new WhoAmIRequest())).UserId;
            if (userid != Guid.Empty)
            {

             
                Console.WriteLine("Connection Established Successfully");
                Console.ReadKey();
            }
        }
        public static void ConnectToMSCRM(string UserName, string Password, string SoapOrgServiceUri)
        {
            try
            {
                ClientCredentials credentials = new ClientCredentials();
                credentials.UserName.UserName = UserName;
                credentials.UserName.Password = Password;
                Uri serviceUri = new Uri(SoapOrgServiceUri);
                OrganizationServiceProxy proxy = new OrganizationServiceProxy(serviceUri, null, credentials, null);
                proxy.EnableProxyTypes();
                _service = (IOrganizationService)proxy;

                //Entity ent = new Entity("annotation");
                ////ent.Attributes["name"] = "Created from Console App4";
                ////_service.Create(ent);


             
                //// Create a column set to define which attributes should be retrieved.
                //ColumnSet attributes = new ColumnSet(new string[] { "name", "ownerid" });

                //// Retrieve the account and its name and ownerid attributes.
                //account = _service.Retrieve(account.LogicalName, _accountId, attributes);
                //Console.Write("retrieved, ");

             

            }
            catch (Exception ex)
            {
                Console.WriteLine("Error while connecting to CRM " + ex.Message);
                Console.ReadKey();
            }
        }
    }
}




using web-api




using Microsoft.Crm.Sdk.Messages;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Tooling.Connector;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.ServiceModel;
using System.Text;
using System.Threading.Tasks;

namespace CSharpConsole2
{
    class Program
    {
        private static CrmServiceClient _client;

        public static void Main(string[] args)
        {

            using (_client = new CrmServiceClient(ConfigurationManager.ConnectionStrings["CRMConnectionString"].ConnectionString))
            {
                string resource = "https://junealdous.crm8.dynamics.com";
                string contact1Uri = "https://junealdous.api.crm8.dynamics.com/api/data/v9.0/invoices(14102aa1-d085-e811-a962-000d3af03d2e)";


                // TODO Substitute your app registration values that can be obtained after you

                // register the app in Active Directory on the Microsoft Azure portal.

                string clientId1 = "12345683-bd7a-45bc-aaac-480c2d9212d4";

                string redirectUrl = "https://some.api.crm8.dynamics.com/api/data/v9.0/";





                // Authenticate the registered application with Azure Active Directory.

                AuthenticationContext authContext1 =

                    new AuthenticationContext("https://login.windows.net/common", false);

                AuthenticationResult result1 = authContext1.AcquireToken(resource, clientId1, new

                                                                       Uri(redirectUrl));



                using (System.Net.Http.HttpClient httpClient = new HttpClient())

                {

                    httpClient.Timeout = new TimeSpan(0, 2, 0);  // 2 minutes

                    httpClient.DefaultRequestHeaders.Authorization =

                        new AuthenticationHeaderValue("Bearer", result1.AccessToken);

                    httpClient.BaseAddress = new Uri(redirectUrl);

                    var response = httpClient.GetAsync("accounts?$select=name").Result;

                    if (response.IsSuccessStatusCode)

                    {

                        var accounts = response.Content.ReadAsStringAsync().Result;

                     JObject contact1Update = new JObject();
        //contact1Update.Add("invoiceid", new Guid("14102aa1-d085-e811-a962-000d3af03d2e"));
        contact1Update.Add("overriddencreatedon", DateTime.Now);
                contact1Update.Add("name", "Test1233");
                //contact1Update.Add("description", "Assignment to-be-determined");

                HttpRequestMessage updateRequest2 = new HttpRequestMessage(
                   new HttpMethod("PATCH"), contact1Uri);
     
                    updateRequest2.Content = new StringContent(contact1Update.ToString(),
                    Encoding.UTF8, "application/json");
        Task<HttpResponseMessage> response1 = httpClient.SendAsync(updateRequest2);
                    if (response1.IsCompleted)
                {
               
                }


}

                }



            }


        }
    }
}

Git Basic working

  Develop = dev   r