Beispiel #1
0
    // crm service
    /// <summary>
    ///  Retrieve Entity from Crm service proxy
    /// </summary>
    /// <param name="cservice">Crm Service proxy</param>
    /// <param name="entityName">Entity Name</param>
    /// <param name="entityGuid">Entity Guid (Guid)</param>
    /// <returns></returns>
    public static DynamicEntity RetriveDynamicEntity(this CrmService cservice, String entityName, Guid entityGuid, Boolean retrieveAllColumns)
    {
        // Create/Set the Target object.
        TargetRetrieveDynamic targetRetrieve = new TargetRetrieveDynamic
        {
            EntityName = entityName,
            EntityId   = (entityGuid)
        };

        // Create/Set the Retrieve object.
        RetrieveRequest retrieve = new RetrieveRequest();

        retrieve.Target = targetRetrieve;
        if (retrieveAllColumns == true)
        {
            retrieve.ColumnSet = new AllColumns();
        }                                                                              //// Indicate to retrieve all columns
        retrieve.ReturnDynamicEntities = true;

        // Indicate that the BusinessEntity should be retrieved as a DynamicEntity.
        // Execute the request.
        RetrieveResponse retrieved = (RetrieveResponse)cservice.Execute(retrieve);
        // Extract the DynamicEntity from the request.
        DynamicEntity retriveEntity = (DynamicEntity)retrieved.BusinessEntity;

        return(retriveEntity);
    }
Beispiel #2
0
 public object Execute(object request)
 {
     if (request.GetType().Name == "RetrieveMultipleRequest")
     {
         RetrieveMultipleResponse response = new RetrieveMultipleResponse();
         response.BusinessEntityCollection = RetrieveMultiple((( RetrieveMultipleRequest )request).Query);
         return(response);
     }
     else if (request.GetType().Name == "RetrieveRequest")
     {
         RetrieveResponse response        = new RetrieveResponse();
         RetrieveRequest  retrieveRequest = ( RetrieveRequest )request;
         TargetRetrieve   target          = retrieveRequest.Target;
         if (target.GetType().Name == "TargetRetrieveDynamic")
         {
             TargetRetrieveDynamic trd = ( TargetRetrieveDynamic )target;
             response.BusinessEntity = Retrieve(trd.EntityName, trd.EntityId, retrieveRequest.ColumnSet);
         }
         else
         {
             // request sent using a specific strongly-typed business entity
             // rather than a DynamicEntity
             throw new NotImplementedException();
         }
         return(response);
     }
     else
     {
         throw new NotImplementedException();
     }
 }
Beispiel #3
0
    // crm service
    /// <summary>
    ///  Retrieve Entity from Crm service proxy
    /// </summary>
    /// <param name="cservice">Crm Service proxy</param>
    /// <param name="entityName">Entity Name</param>
    /// <param name="entityGuid">Entity Guid (String)</param>
    /// <returns></returns>
    public static DynamicEntity RetriveDynamicEntity(this CrmService cservice, String entityName, String entityGuid)
    {
        // Create/Set the Target object.
        TargetRetrieveDynamic targetRetrieve = new TargetRetrieveDynamic
        {
            EntityName = entityName,
            EntityId   = new Guid(entityGuid)
        };

        // Create/Set the Retrieve object.
        RetrieveRequest retrieve = new RetrieveRequest
        {
            Target = targetRetrieve,
            //ColumnSet = new AllColumns(),
            ReturnDynamicEntities = true        // Indicate that the BusinessEntity should be retrieved as a DynamicEntity.
        };


        // Execute the request.
        RetrieveResponse retrieved = (RetrieveResponse)cservice.Execute(retrieve);
        // Extract the DynamicEntity from the request.
        DynamicEntity retriveEntity = (DynamicEntity)retrieved.BusinessEntity;

        return(retriveEntity);
    }
Beispiel #4
0
        /// <summary>
        /// This method is used to get attributes from a specified entity. It returns Dictionary containing all the required attributes values.
        /// </summary>
        /// <param name="entityGuid">GUID of the entity</param>
        /// <param name="entityName_">The entity name type (contact,lead,...)</param>
        ///<param name="entityAttributes">The ArrayList containing the attributes names types you want to retrieve (firstname,lastname,...)</param>
        public Dictionary<string, string> getEntity(Guid entityGuid, string entityName_, ArrayList entityAttributes)
        {
            Dictionary<string, string> arrayData = new Dictionary<string, string>();
            try
            {
                isconnected();

                ArrayList arrayResults = new ArrayList();
                // Create the retrieve target.
                TargetRetrieveDynamic targetRetrieve = new TargetRetrieveDynamic();

                // Set the properties of the target.
                targetRetrieve.EntityName = entityName_;
                targetRetrieve.EntityId = entityGuid;

                // Create the request object.
                RetrieveRequest retrieve = new RetrieveRequest();
                ColumnSet col = new ColumnSet();

                // Set the properties of the request object.
                retrieve.Target = targetRetrieve;
                for (int i = 0; i < entityAttributes.Count; i++)
                {
                    col.AddColumn(entityAttributes[i].ToString());
                }

                retrieve.ColumnSet = col;

                // Indicate that the BusinessEntity should be retrieved as a
                // DynamicEntity.
                retrieve.ReturnDynamicEntities = true;

                // Execute the request.
                RetrieveResponse retrieved = (RetrieveResponse)m_crmService.Execute(retrieve);

                // Extract the DynamicEntity from the request.
                DynamicEntity entity = (DynamicEntity)retrieved.BusinessEntity;

                Microsoft.Crm.Sdk.CrmDateTime crmDateTimeVar = new Microsoft.Crm.Sdk.CrmDateTime();
                Microsoft.Crm.Sdk.CrmNumber crmNumberVar = new Microsoft.Crm.Sdk.CrmNumber();
                Picklist crmPickList = new Picklist();
                Guid crmGuid = new Guid();
                Microsoft.Crm.Sdk.Key keyVar = new Microsoft.Crm.Sdk.Key();
                Lookup lookupVar = new Lookup();
                Microsoft.Crm.Sdk.CrmBoolean boolVar = new Microsoft.Crm.Sdk.CrmBoolean();
                for (int i = 0; i < entityAttributes.Count; i++)
                {
                    if (entity.Properties.Contains(entityAttributes[i].ToString()))
                    {
                        if (entity.Properties[entityAttributes[i].ToString()].GetType().Equals(crmDateTimeVar.GetType()))
                        {
                            crmDateTimeVar = (Microsoft.Crm.Sdk.CrmDateTime)entity.Properties[entityAttributes[i].ToString()];
                            arrayData.Add(entityAttributes[i].ToString(),crmDateTimeVar.date.ToString());
                        }
                        else
                        {
                            if (entity.Properties[entityAttributes[i].ToString()].GetType().Equals(crmNumberVar.GetType()))
                            {
                                crmNumberVar = (Microsoft.Crm.Sdk.CrmNumber)entity.Properties[entityAttributes[i].ToString()];
                                arrayData.Add(entityAttributes[i].ToString(), crmNumberVar.Value.ToString());
                            }
                            else
                            {
                                if (entity.Properties[entityAttributes[i].ToString()].GetType().Equals(keyVar.GetType()))
                                {
                                    keyVar = (Microsoft.Crm.Sdk.Key)entity.Properties[entityAttributes[i].ToString()];
                                    arrayData.Add(entityAttributes[i].ToString(), keyVar.Value.ToString());
                                }
                                else
                                {
                                    if (entity.Properties[entityAttributes[i].ToString()].GetType().Equals(lookupVar.GetType()))
                                    {
                                        lookupVar = (Microsoft.Crm.Sdk.Lookup)entity.Properties[entityAttributes[i].ToString()];
                                        arrayData.Add(entityAttributes[i].ToString(), lookupVar.Value.ToString());
                                    }
                                    else
                                    {
                                        if (entity.Properties[entityAttributes[i].ToString()].GetType().Equals(boolVar.GetType()))
                                        {
                                            boolVar = (Microsoft.Crm.Sdk.CrmBoolean)entity.Properties[entityAttributes[i].ToString()];
                                            arrayData.Add(entityAttributes[i].ToString(), boolVar.Value.ToString());
                                        }
                                        else
                                        {
                                            if (entity.Properties[entityAttributes[i].ToString()].GetType().Equals(crmPickList.GetType()))
                                            {
                                                crmPickList = (Microsoft.Crm.Sdk.Picklist)entity.Properties[entityAttributes[i].ToString()];
                                                arrayData.Add(entityAttributes[i].ToString(), crmPickList.Value.ToString());
                                            }
                                            else
                                            {
                                                if (entity.Properties[entityAttributes[i].ToString()].GetType().Equals(crmGuid.GetType()))
                                                {
                                                    crmGuid = (Guid)entity.Properties[entityAttributes[i].ToString()];
                                                    arrayData.Add(entityAttributes[i].ToString(), crmGuid.ToString());
                                                }
                                                else
                                                {
                                                    arrayData.Add(entityAttributes[i].ToString(), entity.Properties[entityAttributes[i].ToString()].ToString());
                                                }

                                            }

                                        }
                                    }
                                }

                            }
                        }

                    }
                    else
                    {
                        arrayData.Add(entityAttributes[i].ToString(), "");
                    }
                }
                return arrayData;
            }
            catch (SoapException ex)
            {
                throw new InvalidPluginExecutionException("!SoapException!\n" + ex.Detail.SelectSingleNode("//description").InnerText);
            }
            catch (Exception ex)
            {
                throw new ESC_CRM_EX.getEntityException(ex.Message, entityName_, entityGuid);
            }
        }
Beispiel #5
0
        public bool campaignExists(string campaignID)
        {
            try
            {
                isconnected();

                ArrayList arrayResults = new ArrayList();
                // Create the retrieve target.
                TargetRetrieveDynamic targetRetrieve = new TargetRetrieveDynamic();

                // Set the properties of the target.
                targetRetrieve.EntityName = "campaign";
                targetRetrieve.EntityId = new Guid(campaignID);

                // Create the request object.
                RetrieveRequest retrieve = new RetrieveRequest();
                ColumnSet col = new ColumnSet();

                // Set the properties of the request object.
                retrieve.Target = targetRetrieve;
                col.AddColumn("name");

                retrieve.ColumnSet = col;

                // Indicate that the BusinessEntity should be retrieved as a
                // DynamicEntity.
                retrieve.ReturnDynamicEntities = true;

                // Execute the request.
                RetrieveResponse retrieved = (RetrieveResponse)m_crmService.Execute(retrieve);

                // Extract the DynamicEntity from the request.
                DynamicEntity entity = (DynamicEntity)retrieved.BusinessEntity;
                if (entity.Properties["name"].Equals(null)) return false;
                return true;
             }
            catch (Exception)
            {
                return false;
            }
        }