/// <summary> /// Initializes a new instance of the <see cref="OrganizationSnapshot"/> class. /// </summary> /// <param name="connectionDetail">Object holding connection details to given organization.</param> /// <param name="reference"> /// Instance of the <see cref="OrganizationSnapshot"/> class, serving as refenece. Only /// these solutions and assemblies will be included, that are already present in the reference. /// </param> public OrganizationSnapshot(ConnectionDetail connectionDetail, OrganizationSnapshot reference) { Solution[] solutions = null; PluginAssembly[] assemblies = null; DataCollection<Entity> entities = null; var organizationService = connectionDetail.GetOrganizationService(); try { entities = organizationService.RetrieveMultiple(Helpers.CreateSolutionsQuery()).Entities; solutions = entities.ToArray<Entity>().Select(x => new Solution(x)).ToArray<Solution>(); solutions = solutions.Where(x => reference.Solutions.Where(y => y.UniqueName == x.UniqueName).Count() > 0).ToArray<Solution>(); entities = organizationService.RetrieveMultiple(Helpers.CreateAssembliesQuery()).Entities; assemblies = entities.ToArray<Entity>().Select(x => new PluginAssembly(x)).ToArray<PluginAssembly>(); assemblies = assemblies.Where(x => reference.Assemblies.Where(y => y.UniqueName == x.UniqueName).Count() > 0).ToArray<PluginAssembly>(); } catch (Exception ex) { // Hiding exceptions } this.ConnectionDetail = connectionDetail; this.Solutions = solutions; this.Assemblies = assemblies; }
public ViewResults(OrganizationSnapshot[] matrix) { InitializeComponent(); this.Matrix = matrix; this.JustifyToolStrip(); }
/// <summary> /// Updating list of solutions from connection provided by XrmToolBox plugin class /// </summary> /// <param name="plugin">XrmToolBox plugin class</param> private void RetrieveSnapshot(MainControl plugin) { plugin.WorkAsync(string.Format("Getting solutions information from '{0}'...", plugin.ConnectionDetail.OrganizationFriendlyName), (e) => // Work To Do Asynchronously { if (string.IsNullOrEmpty(plugin.ConnectionDetail.ServerName)) { e.Result = new OrganizationSnapshot(plugin.ConnectionDetail.OrganizationServiceUrl); //Helpers.LoadSolutionFile(plugin.ConnectionDetail.OrganizationServiceUrl); } else { e.Result = new OrganizationSnapshot(plugin.ConnectionDetail); } }, (a) => // Cleanup when work has completed { this.Snapshot = (OrganizationSnapshot)a.Result; } ); }