private async Task ExportingPluginConfigurationXml(Model.ConnectionData connectionData, Model.CommonConfiguration commonConfig) { var service = await ConnectAndWriteToOutputAsync(connectionData); if (service == null) { return; } var filePath = await CreatePluginDescription(connectionData, service, commonConfig); this._iWriteToOutput.PerformAction(service.ConnectionData, filePath); }
public async Task ExecuteExportingPluginConfigurationXml(Model.ConnectionData connectionData, Model.CommonConfiguration commonConfig) { string operation = string.Format(Properties.OperationNames.ExportingPluginConfigurationXmlFormat1, connectionData?.Name); this._iWriteToOutput.WriteToOutputStartOperation(connectionData, operation); try { await ExportingPluginConfigurationXml(connectionData, commonConfig); } catch (Exception ex) { this._iWriteToOutput.WriteErrorToOutput(connectionData, ex); } finally { this._iWriteToOutput.WriteToOutputEndOperation(connectionData, operation); } }
private async Task <string> CreatePluginDescription(Model.ConnectionData connectionData, IOrganizationServiceExtented service, Model.CommonConfiguration commonConfig) { Model.Backup.PluginDescription description = await GetPluginDescription(service); if (connectionData.User != null) { description.CRMConnectionUserName = connectionData.User.Username; } else if (CredentialCache.DefaultNetworkCredentials != null) { description.CRMConnectionUserName = (!string.IsNullOrEmpty(CredentialCache.DefaultNetworkCredentials.Domain) ? CredentialCache.DefaultNetworkCredentials.Domain + "\\" : "") + CredentialCache.DefaultNetworkCredentials.UserName ; } description.Organization = connectionData.UniqueOrgName; description.DiscoveryService = connectionData.DiscoveryUrl; description.OrganizationService = connectionData.OrganizationUrl; description.PublicUrl = connectionData.PublicUrl; description.MachineName = Environment.MachineName; description.ExecuteUserDomainName = Environment.UserDomainName; description.ExecuteUserName = Environment.UserName; commonConfig.CheckFolderForExportExists(this._iWriteToOutput); string fileName = string.Format("{0}.{1} {2}.xml" , connectionData.Name , commonConfig.PluginConfigurationFileName.Trim() , EntityFileNameFormatter.GetDateString() ); string filePath = Path.Combine(commonConfig.FolderForExport, fileName); description.Save(filePath); this._iWriteToOutput.WriteToOutput(connectionData, "Plugin Description exported to {0}", filePath); this._iWriteToOutput.WriteToOutputFilePathUri(connectionData, filePath); return(filePath); }
private async Task ExportingPluginConfigurationIntoFolder(EnvDTE.SelectedItem selectedItem, Model.ConnectionData connectionData, Model.CommonConfiguration commonConfig) { var service = await ConnectAndWriteToOutputAsync(connectionData); if (service == null) { return; } string filePath = string.Empty; //filePath = CreatePluginDescription(connectionData, service, commonConfig.FolderForExport, commonConfig.PluginConfigurationFileName, connectionData.Name); if (selectedItem.ProjectItem != null) { string folder = selectedItem.ProjectItem.FileNames[1]; filePath = await CreatePluginDescription(connectionData, service, commonConfig); File.SetAttributes(filePath, FileAttributes.ReadOnly); selectedItem.ProjectItem.ProjectItems.AddFromFileCopy(filePath); selectedItem.ProjectItem.ContainingProject.Save(); } else if (selectedItem.Project != null) { string relativePath = DTEHelper.GetRelativePath(selectedItem.Project); string solutionPath = Path.GetDirectoryName(selectedItem.DTE.Solution.FullName); string folder = Path.Combine(solutionPath, relativePath); if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } filePath = await CreatePluginDescription(connectionData, service, commonConfig); File.SetAttributes(filePath, FileAttributes.ReadOnly); selectedItem.Project.ProjectItems.AddFromFile(filePath); } this._iWriteToOutput.PerformAction(service.ConnectionData, filePath); service.TryDispose(); }