public override void ExecuteExtention(ImportSolutionRequest request, ImportSolutionResponse response, LogController controller) { //just use the method in DeployPackageService to do the import var xrmRecordService = new XrmRecordService(request.Connection); var service = new DeployPackageService(xrmRecordService); service.ImportSolutions(new[] { request.SolutionZip.FileName }, controller, xrmRecordService); }
public override void ExecuteExtention(ImportSolutionRequest request, ImportSolutionResponse response, ServiceRequestController controller) { //just use the method in DeployPackageService to do the import var xrmRecordService = new XrmRecordService(request.Connection); var service = new DeployPackageService(); var importItems = service.ImportSolutions(new[] { request.SolutionZip.FileName }, controller.Controller, xrmRecordService); response.AddResponseItems(importItems.Select(it => new ImportSolutionResponseItem(it))); }
public override void ExecuteExtention(ImportSolutionRequest request, ImportSolutionResponse response, ServiceRequestController controller) { //just use the method in DeployPackageService to do the import var xrmRecordService = new XrmRecordService(request.Connection, ConnectionFactory); var service = new DeployPackageService(null); var importSolutionResponse = service.ImportSolutions(new[] { request.SolutionZip.FileName }, controller.Controller, xrmRecordService); response.LoadImportSolutionsResponse(importSolutionResponse); response.Connection = request.Connection; if (!importSolutionResponse.Success) { response.Message = $"There was an error importing the solution"; } else { response.Message = $"The Solution Has Been Deployed Into {request.Connection}"; } }
private void CreateDeploymentPackage(CreatePackageRequest request, ServiceRequestController controller, CreatePackageResponse response) { var folderPath = request.FolderPath.FolderPath; var tasksDone = 0; var totalTasks = 4; var xrmRecordService = XrmRecordService; var service = xrmRecordService.XrmService; var solution = service.Retrieve(Entities.solution, new Guid(request.Solution.Id)); tasksDone++; if (solution.GetStringField(Fields.solution_.version) != request.ThisReleaseVersion) { controller.UpdateProgress(tasksDone, totalTasks, "Setting Release Version " + request.ThisReleaseVersion); solution.SetField(Fields.solution_.version, request.ThisReleaseVersion); service.Update(solution, new[] { Fields.solution_.version }); } controller.UpdateProgress(tasksDone, totalTasks, "Exporting Solution " + request.Solution.Name); var uniqueName = (string)solution.GetStringField(Fields.solution_.uniquename); var req = new ExportSolutionRequest(); req.Managed = request.ExportAsManaged; req.SolutionName = uniqueName; var exportResponse = (ExportSolutionResponse)service.Execute(req); var version = solution.GetStringField(Fields.solution_.version); var versionText = version == null ? null : version.Replace(".", "_"); var fileName = string.Format("{0}_{1}{2}.zip", uniqueName, versionText, request.ExportAsManaged ? "_managed" : null); FileUtility.WriteToFile(folderPath, fileName, exportResponse.ExportSolutionFile); ++tasksDone; if (request.DataToInclude != null && request.DataToInclude.Any()) { controller.UpdateProgress(tasksDone, totalTasks, "Exporting Data " + request.Solution.Name); var dataExportService = new ExportXmlService(xrmRecordService); dataExportService.ExportXml(request.DataToInclude, new Folder(GetDataExportFolder(folderPath)), request.IncludeNotes, request.IncludeNNRelationshipsBetweenEntities, controller.Controller); } tasksDone++; if (solution.GetStringField(Fields.solution_.version) != request.SetVersionPostRelease) { controller.UpdateProgress(tasksDone, totalTasks, "Setting New Solution Version " + request.SetVersionPostRelease); solution.SetField(Fields.solution_.version, request.SetVersionPostRelease); service.Update(solution, new[] { Fields.solution_.version }); } if (request.DeployPackageInto != null) { if (response.HasError) { throw new Exception("Package Deployment Aborted Due To Errors During Creating"); } else { var deployRequest = new DeployPackageRequest { FolderContainingPackage = request.FolderPath, Connection = request.DeployPackageInto }; var deployService = new DeployPackageService(); var deployPackageResponse = new DeployPackageResponse(); deployService.ExecuteExtention(deployRequest, deployPackageResponse, controller); response.LoadDeployPackageResponse(deployPackageResponse); } } }