Sunday, 29 November 2015

Restful Services In WCF

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.ServiceModel.Web;
namespace WcfServiceLibrary_demo
{
    // 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]
        [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json,UriTemplate="sample",BodyStyle=WebMessageBodyStyle.Wrapped)]
        RootObject GetData(User value, paramters lstparmterts, List<items> lstItems);


        [OperationContract]
        [WebGet(BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, UriTemplate = "Getdata1")]
        RootObject GetData_new();

        // TODO: Add your service operations here
    }

    [DataContract]
    public class User
    {
        [DataMember]
        public string empoyeeno { get; set; }
        [DataMember]
        public string empoyeename { get; set; }
        [DataMember]
        public string empoyeeid { get; set; }
        [DataMember]
        public string empoyeemail { get; set; }
        //4 properties

    }


    [DataContract]
    public class paramters
    {
        [DataMember]
        public string OpCode { get; set; }
        [DataMember]
        public string MaxCount { get; set; }
        [DataMember]
        public string CheckMaxCount { get; set; }
        [DataMember]
        public string CheckUserContext { get; set; }

    }


    [DataContract]

    public class items
    {
        [DataMember]
        public string SearchTerm { get; set; }
        [DataMember]
        public string SearchCode { get; set; }



    }

    [DataContract]
    public class returnitems
    {
        [DataMember]
        public string oppid { get; set; }
        [DataMember]
        public string empno { get; set; }

    }

    [DataContract]
    public class RootObject
    {
        [DataMember]
        public List<Datum> Data { get; set; }
    }
    [DataContract]
    public class Datum
    {
        [DataMember]
        public string ReturnFlag { get; set; }
        [DataMember]
        public string ReturnMessage { get; set; }
        [DataMember]
        public string ItemCount { get; set; }
        [DataMember]
        public List<returnitems> Item { get; set; }
    }


}
///////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.Text;

namespace WcfServiceLibrary_demo
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in both code and config file together.

   
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

    public class Service1 : IService1
    {

        public RootObject GetData(User value, paramters lstparmterts, List<items> lstItems)
        {
            // throw new NotImplementedException();

            RootObject root = new RootObject();
            List<Datum> datums = new List<Datum>();
            Datum datum = new Datum();
            datum.ReturnFlag = "S";
            datum.ReturnMessage = "Success";
            datum.ItemCount = "10";//here, it is no.of Records which you got.
            datums.Add(datum);
            //datum.Item
            List<returnitems> items = new List<returnitems>();
            for (int i = 0; i < 2; i++)
            {
                returnitems item = new returnitems();
                item.oppid = "opp1";
                item.empno = "acc1";

                items.Add(item);
            }
            datum.Item = items;
            root.Data = datums;
            //DataContractJsonSerializer js = new DataContractJsonSerializer(root);
            return root;
        }


        public RootObject GetData_new()
        {

            RootObject root = new RootObject();
            List<Datum> datums = new List<Datum>();
            Datum datum = new Datum();
            datum.ReturnFlag = "S";
            datum.ReturnMessage = "Success";
            datum.ItemCount = "10";//here, it is no.of Records which you got.
            datums.Add(datum);
            //datum.Item
            List<returnitems> items = new List<returnitems>();
            for (int i = 0; i < 2; i++)
            {
                returnitems item = new returnitems();
                item.oppid = "opp1";
                item.empno = "acc1";

                items.Add(item);
            }
            datum.Item = items;
            root.Data = datums;
            //DataContractJsonSerializer js = new DataContractJsonSerializer(root);
            return root;
        }
    }
}
//////////////////////////////////////////////////
web.Config File


<?xml version="1.0"?>
<configuration>

  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5"/>
  </system.web>
  <system.serviceModel>
    <services>
      <service name="WcfServiceLibrary_demo.Service1">
        <endpoint address="" binding="webHttpBinding" bindingConfiguration="" behaviorConfiguration="webbehviour"
          name="wpebht" contract="WcfServiceLibrary_demo.IService1" />
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior name="webbehviour">
          <webHttp />
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <protocolMapping>
      <add binding="webHttpsBinding" scheme="https" />
    </protocolMapping>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <!--
        To browse web app root directory during debugging, set the value below to true.
        Set to false before deployment to avoid disclosing web app folder information.
      -->
    <directoryBrowse enabled="true"/>
  </system.webServer>

</configuration>




Saturday, 7 November 2015

Json objects to C#


/////////////////////////////////////////////////////////////// Json objects Conversations in  OUT /PUT

http://jsonlint.com/

http://json2csharp.com/

http://jsonlint.com/

http://json2csharp.com/

Tuesday, 13 October 2015

Aggregations In FetchXML using Javascript


    var FORM_TYPE_CREATE = 2;
    var formType = Xrm.Page.ui.getFormType();
    if (formType == FORM_TYPE_CREATE) {
        var guId = Xrm.Page.data.entity.getId();

        var fetch = "<fetch version='1.0' output-format='xml-platform' mapping='logical' aggregate='true'>" +
       "<entity name='new_paymentmodeselection'>" +
       "<attribute name='new_fees' alias='ChequeSales_sum' aggregate='sum' />" +
       "<filter type='and'>" +
         "<condition attribute='new_paymentmodeid' operator='eq' uitype='new_importdata' value='" + guId + "' />" +
       "</filter>" +
       "</entity>" +
       "</fetch>";
        var Cheque = XrmServiceToolkit.Soap.Fetch(fetch);
        if (Cheque.length > 0) {
            var totalFee ;
            if (typeof Cheque[0].attributes.ChequeSales_sum != "undefined") {

                totalFee = Cheque[0].attributes.ChequeSales_sum.value;
            }
            //var totalAmount = parseFloat(totalFee);
            Xrm.Page.getAttribute("new_chequesalegrandtotal").setValue(totalFee);
        }

    }//////////////////////////////////////////////////////////////////////Groupby Examples in Fetchxm/////////////

 var fetch = "<fetch version='1.0' output-format='xml-platform' mapping='logical' aggregate='true' >" +
             "<entity name='new_payments'>" +
                "<attribute name='new_fees' alias='fee_sum' aggregate='sum' />" +
               "<attribute name='new_paymentmodes' alias='paymentmodes' groupby='true' />" +
                "</entity>" +
           "</fetch>";


var Bankspay = parseInt(typeof totalFee[0].attributes.new_bank != "undefined" ? totalFee[0].attributes.new_bank.value : 0);
    var totalCash = parseInt(typeof totalFee[0].attributes.new_cashpayments != "undefined" ? totalFee[0].attributes.new_cashpayments.value : 0);

Sunday, 4 October 2015

showModalDialog in MSCRM

function ADD() {

    var _fullName = typeof _ApplicationRecs[i].attributes.new_fullname != "undefined" ? _aApplicationRecs[i].attributes.new_fullname.value : "";
    return typeof _printerConfigs[0].attributes.new_printername ? _printerConfigs[0].attributes.new_printername.value : null;
    if (_tAC = "" && _COde)
        {
        alert(_tAC == "" ? "Vat not found." : (_COde == "" ? "UK of Operation not found for this servicecategory." : "values not found for this missions."));


       

        var _width = 500;
        var _height = 600;

        var _left = (screen.width / 2) - (_width / 2);
        var _top = (screen.height / 2) - (_height / 2);
        var _URL = XrmServiceToolkit.Soap.GetServerURL() + "/WebResources/hppscm_/Webpages/data.html";
        var _pageProperties = 'dialogWidth=' + _width + 'px; dialogHeight=' + _height + 'px; dialogLeft=' + _left + 'px; dialogTop=' + _top + 'px;';
        window.showModalDialog(_URL, objectArray, _pageProperties);
}

SubgridSelectedRecordsGUIDS using Ribbon Button

function processrecords(selectedIds) {

    if (selectedIds != null && selectedIds != "") {

    var strIds = selectedIds.toString();

    var arrIds = strIds.split(",");

    for (var indxIds = 0; indxIds < arrIds.length; indxIds++) {

        alert(arrIds[indxIds]);

    }}}




parameters values: crm selectedcontrolItemsIds, Name SelectItems
save and Pubplish..... will get Selected record IDs In Ribbon Click.

Monday, 21 September 2015

WCF self host App.config file Samples

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>

      <service name ="WCFLibrary1.WCFService1"
               behaviorConfiguration="svcBehavior">
        <endpoint address ="http://localhost:8888/WCFService1"
                  binding ="basicHttpBinding" contract="WCFLibrary1.IWCFService1">        
        </endpoint>

        <endpoint address="http://localhost:8888/WCFService1/MEX"
                  binding="mexHttpBinding" contract="IMetadataExchange">        
        </endpoint>
        </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name ="svcBehavior">
          <serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8888/WCFService1">
          </serviceMetadata>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

Thursday, 30 July 2015

multivalues to lookup in mscrm

if (SAPVACs.length > 0) {
                var query = "";
                for (var i = 0; i < SAPVACs.length; i++) {
                    if (SAPVACs[i].attributes["vaccodeid"] !== undefined) {
                     

                        query += "<value uitype='vacmaping'>{" + vacid + "}</value>";
                    }
                }

                var filter = "<filter type='and'>" +
                    "<condition attribute='vacmapingid' operator='in'>" + query + "</condition>" +
                       "</filter>";
                Xrm.Page.getControl("vacfmcid").addCustomFilter(filter);
            }