private string Export(ExportSolutionConfig config, ExportSolutionOverrideInformation solutionInfo) { var solution = _service.Retrieve(Solution.EntityLogicalName, config.IdSolution, ColumnSetInstances.AllColumns).ToEntity <Solution>(); string solutionName = solution.UniqueName; string solutionVersion = solution.Version; solutionVersion = RemoveSymbols(solutionVersion); ExportSolutionRequest request = new ExportSolutionRequest() { SolutionName = solutionName, Managed = config.Managed, }; if (config.ExportAutoNumberingSettings) { request.ExportAutoNumberingSettings = config.ExportAutoNumberingSettings; } if (config.ExportCalendarSettings) { request.ExportCalendarSettings = config.ExportCalendarSettings; } if (config.ExportCustomizationSettings) { request.ExportCustomizationSettings = config.ExportCustomizationSettings; } if (config.ExportEmailTrackingSettings) { request.ExportEmailTrackingSettings = config.ExportEmailTrackingSettings; } if (config.ExportExternalApplications) { request.ExportExternalApplications = config.ExportExternalApplications; } if (config.ExportGeneralSettings) { request.ExportGeneralSettings = config.ExportGeneralSettings; } if (config.ExportIsvConfig) { request.ExportIsvConfig = config.ExportIsvConfig; } if (config.ExportMarketingSettings) { request.ExportMarketingSettings = config.ExportMarketingSettings; } if (config.ExportOutlookSynchronizationSettings) { request.ExportOutlookSynchronizationSettings = config.ExportOutlookSynchronizationSettings; } if (config.ExportRelationshipRoles) { request.ExportRelationshipRoles = config.ExportRelationshipRoles; } if (config.ExportSales) { request.ExportSales = config.ExportSales; } var response = (ExportSolutionResponse)_service.Execute(request); var fileBody = response.ExportSolutionFile; if (!Directory.Exists(config.ExportFolder)) { Directory.CreateDirectory(config.ExportFolder); } if (solutionInfo.OverrideNameAndVersion || solutionInfo.OverrideDescription) { fileBody = OverrideSolutionInformation(fileBody, solutionInfo); } string fileName = string.Format("{0}.{1}_{2}{3} at {4}.zip" , config.ConnectionName , solutionName , solutionVersion , (config.Managed ? "_managed" : string.Empty) , EntityFileNameFormatter.GetDateString() ); string filePath = Path.Combine(config.ExportFolder, FileOperations.RemoveWrongSymbols(fileName)); File.WriteAllBytes(filePath, fileBody); return(filePath); }
public Task <string> ExportAsync(ExportSolutionConfig config, ExportSolutionOverrideInformation solutionInfo) { return(Task.Run(() => Export(config, solutionInfo))); }