public EntityExists DoesPluginAssemblyExist(AssemblyName assemblyName) { using (var orgService = (OrganizationServiceContext)_ServiceProvider.GetOrganisationService()) { var query = new QueryByAttribute(PluginAssembly.EntityLogicalName); query.ColumnSet = new ColumnSet(true); query.Attributes.AddRange("name"); query.Values.AddRange(assemblyName.Name); var results = orgService.RetrieveMultiple(query); if (results.Entities != null && results.Entities.Count > 0) { var reference = new EntityReference(PluginAssembly.EntityLogicalName, results.Entities[0].Id); return(EntityExists.Yes(reference)); } else { return(EntityExists.No()); } } }
/// <summary> /// Gets a subset of metadata for the specified entity, as dictated by the filters specified. /// </summary> /// <param name="entityLogicalName"></param> /// <param name="filters"></param> /// <returns></returns> public EntityMetadata GetEntityMetadata(string entityLogicalName, EntityFilters filters) { var metaRequest = new RetrieveEntityRequest() { EntityFilters = EntityFilters.All, LogicalName = entityLogicalName }; try { IOrganizationService service = _CrmServiceProvider.GetOrganisationService(); using (service as IDisposable) { var metaResponse = (RetrieveEntityResponse)service.Execute(metaRequest); return(metaResponse.EntityMetadata); } } catch (Exception e) { throw new Exception("Unable to obtain CRM metadata for entity: " + entityLogicalName + " as CRM returned a fault. See inner exception for details.", e); } }
/// <summary> /// Ensures test entity is deleted from CRM. /// </summary> /// <param name="serviceProvider"></param> private void DeleteEntities(ICrmServiceProvider serviceProvider, IEnumerable <KeyValuePair <string, Guid> > entities) { using (var orgService = (OrganizationServiceContext)serviceProvider.GetOrganisationService()) { foreach (var entity in entities) { try { orgService.Execute(new DeleteRequest() { Target = new EntityReference() { LogicalName = entity.Key, Id = entity.Value } }); } catch (Exception e) { Debug.Write(e.Message); throw; } } } }
/// <summary> /// Ensures test entity is deleted from CRM. /// </summary> /// <param name="serviceProvider"></param> private void DeleteEntities(ICrmServiceProvider serviceProvider, IEnumerable<KeyValuePair<string, Guid>> entities) { using (var orgService = (OrganizationServiceContext)serviceProvider.GetOrganisationService()) { foreach (var entity in entities) { try { orgService.Execute(new DeleteRequest() { Target = new EntityReference() { LogicalName = entity.Key, Id = entity.Value } }); } catch (Exception e) { Debug.Write(e.Message); throw; } } } }