Friday, October 30, 2015

Sample CRUD Operations Using C# in MSCRM

Steps to Achieve:


  1. Create a console Application in Visual Studio and add (Microsoft.Crm.Sdk.Proxy.dll, Microsoft.Xrm.Sdk.dll) in references section.
  2. Download this C# Class files to get crm service ,If you have this files just skip this step https://www.dropbox.com/s/pyj6zym6u9ea7wp/deviceidmanager.cs?dl=0 https://www.dropbox.com/s/q82xp39jn0nqi0j/OnlineService.cs?dl=0
  3. Open OnlineService.cs file and enter your crm credentials as shown below
           ClientCredentials credentials = new ClientCredentials();
            credentials.UserName.UserName = "Username@Domain.onmicrosoft.com";//Username
            credentials.UserName.Password = "yourpasswordhere";//Password
            var _servproxy = new OrganizationServiceProxy(new     Uri("https://Domain.api.crm5.dynamics.com/XRMServices/2011/Organization.svc"), null,   credentials, GetDeviceCredentials());//ServerUrl

Code Snippet:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Sdk.Messages;

namespace SampleCrudOperations
{
    class CrudOperations
    {
        public void CreateRecord()
        {
            IOrganizationService service = OnlineService.servproxy;//To get CRM Service
            if (service != null)
            {
                Entity myentity = new Entity("new_employee");
                myentity.Attributes["new_name"] = "Rahul";
                myentity.Attributes["new_ename"] = "Veldandi";
                myentity.Attributes["new_employeesalary"] = new Money(23000);//Currency
                myentity.Attributes["new_employeelocation"] = new OptionSetValue(100000003);//optionset
                myentity.Attributes["new_employeehobbies"] = "TV \n Playing Cricket";//MultiLineText
                myentity.Attributes["new_employeegender"] = false;//Two Options                myentity.Attributes["new_employeeaccount"] = new EntityReference("account", new Guid("A478321B-E44C-E511-8102-C4346BADA644"));//Lookup
                myentity.Attributes["new_department"] = new EntityReference("new_department", new Guid("E07CB8D2-6C50-E511-810E-C4346BAD5740"));//Lookup
                myentity.Attributes["createdon"] = new DateTime(2015, 09, 11);//Date Time
                service.Create(myentity);
                Console.WriteLine("Record Created Successfully");
            }
        }
        public void RetrieveRecord()
        {
            Entity et = OnlineService.servproxy.Retrieve("new_employee", new Guid("BF18416B-2E58-E511-810E-C4346BAD3768"), new ColumnSet(true));
            string name = et["new_name"].ToString();
            string hobbies = et["new_employeehobbies"].ToString();
            string account = et.GetAttributeValue<EntityReference>("new_employeeaccount").Name;
            string gender = et.FormattedValues["new_employeegender"].ToString();
            string location = et.FormattedValues["new_employeelocation"].ToString();
            string dept = et.GetAttributeValue<EntityReference>("new_department").Name;
            decimal sal = et.GetAttributeValue<Money>("new_employeesalary").Value;
            Console.WriteLine("employee Name:" + name);
            Console.WriteLine("employee hobbies:" + hobbies);
            Console.WriteLine("employee account" + account);
            Console.WriteLine("employee gender" + gender);
            Console.WriteLine("employee location" + location);
            Console.WriteLine("employee department" + dept);
            Console.WriteLine("employee salary" + sal);
        }
        public void UpdateRecord()
        {
            Entity myet = OnlineService.servproxy.Retrieve("new_employee", new Guid("BF18416B-2E58-E511-810E-C4346BAD3768"), new ColumnSet("new_employeesalary", "new_employeelocation", "new_employeeaccount", "new_employeehobbies"));
            Console.WriteLine("Enter Employee salary");
            decimal sal = Convert.ToDecimal(Console.ReadLine());
            myet["new_employeesalary"] = new Money(sal); ;
            myet["new_employeelocation"] = new OptionSetValue(100000002);
            myet["new_employeeaccount"] = new EntityReference("account", new Guid("9C78321B-E44C-E511-8102-C4346BADA644"));
            myet["new_employeehobbies"] = "Watching TV";
            OnlineService.servproxy.Update(myet);
            Console.WriteLine("Record Updated Successfully");
        }
        public void delete()
        {
            OnlineService.servproxy.Delete("new_employee", new Guid("24E6B2EF-7B57-E511-810A-C4346BADB280"));
            Console.WriteLine("Record Deleted Sucessfully");
        }
        public void multiretrive()
        {
            QueryExpression query = new QueryExpression();
            query.EntityName = "new_employee";
            query.ColumnSet = new ColumnSet(true);
            RetrieveMultipleRequest request = new RetrieveMultipleRequest();
            request.Query = query;
            RetrieveMultipleResponse responce = (RetrieveMultipleResponse)OnlineService.servproxy.Execute(request);
            foreach (Entity emp in responce.EntityCollection.Entities)
            {
                string name = emp["new_name"].ToString();
                string hobbies = emp["new_employeehobbies"].ToString();
                string account = emp.GetAttributeValue<EntityReference>("new_employeeaccount").Name;
                string gender = emp.FormattedValues["new_employeegender"].ToString();
                string location = emp.FormattedValues["new_employeelocation"].ToString();
                string dept = string.Empty;
                if (emp.Attributes.Contains("new_department"))
                {
                    dept = emp.GetAttributeValue<EntityReference>("new_department").Name;
                }
                decimal sal = emp.GetAttributeValue<Money>("new_employeesalary").Value;
                Console.WriteLine("employee Name : " + name);
                Console.WriteLine("employee hobbies : " + hobbies);
                Console.WriteLine("employee account : " + account);
                Console.WriteLine("employee gender : " + gender);
                Console.WriteLine("employee location : " + location);
                Console.WriteLine("employee department : " + dept);
                Console.WriteLine("employee salary : " + sal);
            }
        }
    }
}

Finally Call all the methods in Program.cs file..Like below

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;
using Microsoft.Xrm.Sdk.Messages;
namespace SampleCrudOperations
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Enter Your Choice: C for Create , U for update  , D for delete");
            char ch =char.Parse(Console.ReadLine());
            switch (ch)
            {
                case 'c':
                    CrudOperations c = new CrudOperations();
                    c.create();
                    break;
                case 'u':
                    CrudOperations u = new CrudOperations();
                    u.update();
                    break;
                case 'd':
                    CrudOperations d = new CrudOperations();
                    d.delete();
                    break;
                default:
                    Console.WriteLine("Please Choose any one from given choices");
                    break;
            }
            Console.ReadLine();
        }
    }
}

Thank you.......

1 comment:

  1. A Forex CRM can benefit businesses in a number of different ways. For example, it allows them to easily track customer activity and identify key opportunities to boost customer engagement. It also provides automated marketing tools that businesses can use to market their products or services more effectively. On top of this, it helps create a comprehensive view of client data, making it easier to spot trends and uncover new opportunities.

    Our Other Best Services:-

    Grey Label Forex
    Forex PSP
    MT5 Server License
    Forex Payment Gateway
    Forex Website Design
    CRM for Vertex

    ReplyDelete