private List <Dependency> GetSolutionMissingDependencies(string solutionUniqueName) { var request = new RetrieveMissingDependenciesRequest { SolutionUniqueName = solutionUniqueName }; var response = (RetrieveMissingDependenciesResponse)_service.Execute(request); var listComponent = response.EntityCollection.Entities.Select(e => e.ToEntity <Dependency>()).ToList(); return(listComponent); }
/// <summary> /// Method gets solution components dependency /// </summary> /// <param name="serviceProxy">service proxy</param> /// <param name="masterSolutionId">master solution id</param> /// <param name="solutionUniqueName">solution unique name</param> /// <returns>returns components dependency entity collection</returns> private List <EntityCollection> GetDependentComponents(OrganizationServiceProxy serviceProxy, Guid masterSolutionId, string solutionUniqueName) { List <EntityCollection> dependentDetails = new List <EntityCollection>(); RetrieveMissingDependenciesRequest missingDependenciesRequest = new RetrieveMissingDependenciesRequest { SolutionUniqueName = solutionUniqueName }; RetrieveMissingDependenciesResponse missingDependenciesResponse = (RetrieveMissingDependenciesResponse)serviceProxy.Execute(missingDependenciesRequest); if (missingDependenciesResponse != null && missingDependenciesResponse.EntityCollection != null && missingDependenciesResponse.EntityCollection.Entities.Count > 0) { dependentDetails.Add(missingDependenciesResponse.EntityCollection); } return(dependentDetails); }
public EntityCollection GetMissingDependencies( string SolutionName) { Logger.LogInformation("Retrieving Missing Dependencies for Solution: {0}", SolutionName); if (string.IsNullOrEmpty(SolutionName)) { throw new Exception("SolutionName is required to retrieve missing dependencies"); } var request = new RetrieveMissingDependenciesRequest() { SolutionUniqueName = SolutionName }; RetrieveMissingDependenciesResponse response = OrganizationService.Execute(request) as RetrieveMissingDependenciesResponse; Logger.LogInformation("{0} Missing dependencies retrieved for Solution", response.EntityCollection.Entities.Count); return(response.EntityCollection); }
private List <SolutionComponent> GetSolutionAllRequiredComponents(Guid solutionId, string solutionUniqueName) { var request = new RetrieveMissingDependenciesRequest { SolutionUniqueName = solutionUniqueName, }; var response = (RetrieveMissingDependenciesResponse)_service.Execute(request); var listComponent = response.EntityCollection.Entities.Select(e => e.ToEntity <Dependency>()).ToList(); GetAllRequiredComponents(listComponent); HashSet <Tuple <int, Guid> > result = new HashSet <Tuple <int, Guid> >(); foreach (var item in listComponent.Where(d => d.RequiredComponentObjectId.HasValue && d.RequiredComponentType != null)) { result.Add(Tuple.Create(item.RequiredComponentType.Value, item.RequiredComponentObjectId.Value)); } var repository = new SolutionComponentRepository(_service); var components = repository.GetSolutionComponents(solutionId, new ColumnSet(SolutionComponent.Schema.Attributes.componenttype, SolutionComponent.Schema.Attributes.objectid, SolutionComponent.Schema.Attributes.rootcomponentbehavior)); foreach (var item in components.Where(c => c.ObjectId.HasValue && c.ComponentType != null)) { var key = Tuple.Create(item.ComponentType.Value, item.ObjectId.Value); result.Remove(key); } return(result.Select(c => new SolutionComponent() { ComponentType = new OptionSetValue(c.Item1), ObjectId = c.Item2, }).ToList()); }