private async Task CreatingAllDependencyNodesDescription(ConnectionData connectionData, CommonConfiguration commonConfig) { var service = await ConnectAndWriteToOutputAsync(connectionData); if (service == null) { return; } StringBuilder content = new StringBuilder(); content.AppendLine(Properties.OutputStrings.ConnectingToCRM); content.AppendLine(connectionData.GetConnectionDescription()); content.AppendFormat(Properties.OutputStrings.CurrentServiceEndpointFormat1, service.CurrentServiceEndpoint).AppendLine(); var hash = new HashSet <Tuple <int, Guid> >(); { var repository = new DependencyNodeRepository(service); var components = await repository.GetDistinctListAsync(); foreach (var item in components.Where(en => en.ComponentType != null && en.ObjectId.HasValue)) { hash.Add(Tuple.Create(item.ComponentType.Value, item.ObjectId.Value)); } } if (hash.Any()) { content.AppendLine().AppendLine(); var solutionComponents = hash.Select(e => new SolutionComponent { ComponentType = new OptionSetValue(e.Item1), ObjectId = e.Item2, }).ToList(); var descriptor = new SolutionComponentDescriptor(service); descriptor.WithUrls = true; descriptor.WithManagedInfo = true; descriptor.WithSolutionsInfo = true; descriptor.MetadataSource.DownloadEntityMetadata(); var desc = await descriptor.GetSolutionComponentsDescriptionAsync(solutionComponents); content.AppendLine(desc); commonConfig.CheckFolderForExportExists(this._iWriteToOutput); string fileName = string.Format( "{0}.Dependency Nodes Description at {1}.txt" , connectionData.Name , DateTime.Now.ToString("yyyy.MM.dd HH-mm-ss") ); string filePath = Path.Combine(commonConfig.FolderForExport, FileOperations.RemoveWrongSymbols(fileName)); File.WriteAllText(filePath, content.ToString(), new UTF8Encoding(false)); this._iWriteToOutput.WriteToOutput(connectionData, "Dependency Nodes Description were exported to {0}", filePath); this._iWriteToOutput.PerformAction(service.ConnectionData, filePath); } }
private async Task CheckingComponentTypeEnum(ConnectionData connectionData, CommonConfiguration commonConfig) { var service = await ConnectAndWriteToOutputAsync(connectionData); if (service == null) { return; } StringBuilder content = new StringBuilder(); content.AppendLine(Properties.OutputStrings.ConnectingToCRM); content.AppendLine(connectionData.GetConnectionDescription()); content.AppendFormat(Properties.OutputStrings.CurrentServiceEndpointFormat1, service.CurrentServiceEndpoint).AppendLine(); var hash = new HashSet <Tuple <int, Guid> >(); { var repository = new SolutionComponentRepository(service); var components = await repository.GetDistinctSolutionComponentsAsync(); foreach (var item in components.Where(en => en.ComponentType != null && en.ObjectId.HasValue)) { if (!item.IsDefinedComponentType()) { hash.Add(Tuple.Create(item.ComponentType.Value, item.ObjectId.Value)); } } } { var repository = new DependencyNodeRepository(service); var components = await repository.GetDistinctListUnknownComponentTypeAsync(); foreach (var item in components.Where(en => en.ComponentType != null && en.ObjectId.HasValue)) { if (!item.IsDefinedComponentType()) { hash.Add(Tuple.Create(item.ComponentType.Value, item.ObjectId.Value)); } } } { var repository = new InvalidDependencyRepository(service); var components = await repository.GetDistinctListAsync(); foreach (var item in components.Where(en => en.MissingComponentType != null && en.MissingComponentId.HasValue)) { if (!item.IsDefinedMissingComponentType()) { hash.Add(Tuple.Create(item.MissingComponentType.Value, item.MissingComponentId.Value)); } } foreach (var item in components.Where(en => en.ExistingComponentType != null && en.ExistingComponentId.HasValue)) { if (!item.IsDefinedExistingComponentType()) { hash.Add(Tuple.Create(item.ExistingComponentType.Value, item.ExistingComponentId.Value)); } } } if (hash.Any()) { var groups = hash.GroupBy(e => e.Item1); content.AppendLine().AppendLine(); content.AppendFormat("ComponentTypes not founded in Enum: {0}", groups.Count()); foreach (var gr in groups.OrderBy(e => e.Key)) { content.AppendLine().AppendLine(); foreach (var item in gr.OrderBy(e => e.Item2)) { content.AppendFormat(_tabSpacer + item.Item1.ToString() + _tabSpacer + item.Item2.ToString()).AppendLine(); } } string fileName = string.Format("{0}.Checking ComponentType Enum at {1}.txt" , connectionData.Name , DateTime.Now.ToString("yyyy.MM.dd HH-mm-ss") ); commonConfig.CheckFolderForExportExists(this._iWriteToOutput); string filePath = Path.Combine(commonConfig.FolderForExport, FileOperations.RemoveWrongSymbols(fileName)); File.WriteAllText(filePath, content.ToString(), new UTF8Encoding(false)); this._iWriteToOutput.WriteToOutput(connectionData, "New ComponentTypes were exported to {0}", filePath); this._iWriteToOutput.PerformAction(service.ConnectionData, filePath); } else { this._iWriteToOutput.WriteToOutput(connectionData, "No New ComponentTypes in CRM were founded."); this._iWriteToOutput.ActivateOutputWindow(connectionData); } }