public CRMEntity GetConfigurationHostedControlM2MEntity(IOrganizationService service, string fetchXml)
        {
            EntityCollection results = service.RetrieveMultiple(new FetchExpression(fetchXml));

            if (results != null && results.Entities != null && results.Entities.Count > 0)
            {
                List <CRMM2MRecord> crmM2MRecords = new List <CRMM2MRecord>();
                foreach (Entity entity in results.Entities)
                {
                    Guid configurationId = entity.GetAttributeValue <Guid>("msdyusd_configurationid");
                    Guid hostedControlId = entity.GetAttributeValue <Guid>("uii_hostedapplicationid");

                    CRMM2MRecord m2mRecord = new CRMM2MRecord
                    {
                        Entity1AttributeId = configurationId,
                        Entity1LogicalName = "msdyusd_configuration",
                        Entity2AttributeId = hostedControlId,
                        Entity2LogicalName = "uii_hostedapplication"
                    };

                    crmM2MRecords.Add(m2mRecord);
                }

                CRMEntity crmEntity = new CRMEntity {
                    CRMM2MRecords = crmM2MRecords, IsIntersect = true, LogicalName = results.EntityName, RecordCount = results.Entities.Count
                };
                return(crmEntity);
            }

            return(null);
        }
        public static Entity ToEntity(this CRMM2MRecord crmM2MRecord, CRMM2MEntityMapping m2mEntityMapping, Dictionary <Guid, Guid> sourceTargetIdMappings)
        {
            Entity entity = null;

            if (crmM2MRecord == null)
            {
                return(entity);
            }


            entity = new Entity(crmM2MRecord.EntityLogicalName);
            entity[m2mEntityMapping.Entity1Attribute] = crmM2MRecord.Entity1AttributeId;
            entity[m2mEntityMapping.Entity2Attribute] = crmM2MRecord.Entity2AttributeId;

            return(entity);
        }
示例#3
0
        public CRMEntity GetCRMEntityM2M(IOrganizationService service, QueryExpression query, CRMM2MEntityMapping crmM2MEntityMapping)
        {
            EntityCollection results = service.RetrieveMultiple(query);

            if (results != null && results.Entities != null && results.Entities.Count > 0)
            {
                List <CRMM2MRecord> records = new List <CRMM2MRecord>();
                foreach (Entity entity in results.Entities)
                {
                    CRMM2MRecord crmM2MRecord = entity.ToCRMM2MRecord(crmM2MEntityMapping);
                    records.Add(crmM2MRecord);
                }


                CRMEntity crmEntity = new CRMEntity {
                    CRMM2MRecords = records, IsIntersect = true, LogicalName = results.EntityName, RecordCount = results.Entities.Count
                };
                return(crmEntity);
            }


            return(null);
        }
        public static CRMM2MRecord ToCRMM2MRecord(this Entity entity, CRMM2MEntityMapping crmM2MEntityMapping)
        {
            CRMM2MRecord crmM2Mrecord = null;

            if (entity == null)
            {
                return(crmM2Mrecord);
            }

            Guid entity1AttributeId = entity.GetAttributeValue <Guid>(crmM2MEntityMapping.Entity1Attribute);
            Guid entity2AttributeId = entity.GetAttributeValue <Guid>(crmM2MEntityMapping.Entity2Attribute);

            crmM2Mrecord = new CRMM2MRecord
            {
                EntityLogicalName  = entity.LogicalName,
                Entity1LogicalName = crmM2MEntityMapping.Entity1,
                Entity1AttributeId = entity1AttributeId,
                Entity2LogicalName = crmM2MEntityMapping.Entity2,
                Entity2AttributeId = entity2AttributeId
            };

            return(crmM2Mrecord);
        }