private void DeployPackage(DeployPackageRequest request, LogController controller, ServiceResponseBase <DataImportResponseItem> response)
        {
            var xrmRecordService = new XrmRecordService(request.Connection, controller);
            var packageFolder    = request.FolderContainingPackage.FolderPath;
            var solutionFiles    = Directory.GetFiles(packageFolder, "*.zip");

            ImportSolutions(solutionFiles, controller, xrmRecordService);

            foreach (var childFolder in Directory.GetDirectories(packageFolder))
            {
                if (new DirectoryInfo(childFolder).Name == "Data")
                {
                    var dataImportService = new ImportXmlService(xrmRecordService);
                    var importResponse    = new ImportXmlResponse();
                    dataImportService.ImportXml(childFolder, controller, importResponse);
                    if (importResponse.Exception != null)
                    {
                        response.AddResponseItem(new DataImportResponseItem("Fatal Data Import Error", importResponse.Exception));
                    }
                    foreach (var item in importResponse.ResponseItems)
                    {
                        response.AddResponseItem(item);
                    }
                }
            }
        }
Beispiel #2
0
        private void DeployPackage(DeployPackageRequest request, ServiceRequestController controller, DeployPackageResponse response)
        {
            var xrmRecordService = new XrmRecordService(request.Connection, controller.Controller);
            var packageFolder    = request.FolderContainingPackage.FolderPath;
            var solutionFiles    = Directory.GetFiles(packageFolder, "*.zip")
                                   .OrderBy(s => s)
                                   .ToArray();

            var importItems = ImportSolutions(solutionFiles, controller.Controller, xrmRecordService);

            response.Connection = request.Connection;
            response.AddResponseItems(importItems.Select(it => new DataImportResponseItem(it.Type, null, it.Name, null, $"{it.Result} - {it.ErrorCode} - {it.ErrorText}", null, it.GetUrl())));

            foreach (var childFolder in Directory.GetDirectories(packageFolder))
            {
                if (new DirectoryInfo(childFolder).Name == "Data")
                {
                    var dataImportService = new ImportXmlService(xrmRecordService);
                    var importResponse    = new ImportXmlResponse();
                    dataImportService.ImportXml(childFolder, controller, importResponse);
                    response.LoadImportxmlResponse(importResponse);
                }
            }

            response.Message = $"The Package Has Been Deployed Into {request.Connection}";
        }
        private void DeployPackage(DeployPackageRequest request, ServiceRequestController controller, DeployPackageResponse response)
        {
            var xrmRecordService = new XrmRecordService(request.Connection, controller.Controller, XrmServiceFactory);
            var packageFolder    = request.FolderContainingPackage.FolderPath;
            var solutionFiles    = Directory.GetFiles(packageFolder, "*.zip")
                                   .OrderBy(s => s)
                                   .ToArray();

            var importSolutionResponse = ImportSolutions(solutionFiles, controller.Controller, xrmRecordService);

            response.Connection = request.Connection;
            response.LoadImportSolutionsResponse(importSolutionResponse);

            if (!importSolutionResponse.Success)
            {
                response.Message = $"There was an error importing the solution during deployment";
            }
            else
            {
                foreach (var childFolder in Directory.GetDirectories(packageFolder))
                {
                    if (new DirectoryInfo(childFolder).Name == "Data")
                    {
                        var dataImportService = new ImportXmlService(xrmRecordService);
                        var importResponse    = new ImportXmlResponse();
                        dataImportService.ImportXml(request, controller, importResponse, executeMultipleSetSize: 10, targetCacheLimit: 200);
                        response.LoadImportxmlResponse(importResponse);
                    }
                }
                response.Message = $"The Package Has Been Deployed Into {request.Connection}";
            }
        }
Beispiel #4
0
 public void LoadImportxmlResponse(ImportXmlResponse dataImportResponse)
 {
     if (dataImportResponse.Exception != null)
     {
         AddResponseItem(new DataImportResponseItem("Fatal Data Import Error", dataImportResponse.Exception));
     }
     AddResponseItems(dataImportResponse.ResponseItems);
     _importedRecords.AddRange(dataImportResponse.ImportSummary);
 }
Beispiel #5
0
        public override void ExecuteExtention(ImportRecordsRequest request, ImportRecordsResponse response,
                                              ServiceRequestController controller)
        {
            //just use the method in ImportXmlService to do the import
            var xrmRecordService  = new XrmRecordService(request.Connection, ConnectionFactory);
            var service           = new ImportXmlService(xrmRecordService);
            var importXmlResponse = new ImportXmlResponse();

            service.ImportXml(request, controller, importXmlResponse, executeMultipleSetSize: 10, targetCacheLimit: 200);
            response.LoadDataImport(importXmlResponse);
        }
Beispiel #6
0
        public bool Run()
        {
            try
            {
                // Set up the CRM Service.
                CrmService service = new CrmService();
                service.Credentials = System.Net.CredentialCache.DefaultCredentials;

                CrmAuthenticationToken token = new CrmAuthenticationToken();
                // TODO Replace 'AdventureWorksCycle' with your Microsoft CRM organization name.
                token.OrganizationName = "AdventureWorksCycle";

                service.CrmAuthenticationTokenValue = token;
                // TODO Replace 'localhost:5555' with your CRM server information.
                service.Url = @"http://*****:*****@"	<importexportxml>
													<entities>
														<entity>new_bankaccount</entity>
														<entity>new_safedepositbox</entity>
													</entities>
													<nodes/>
                                                    <securityroles/>
                                                    <settings/>
                                                    <workflows/>
												</importexportxml>"                                                ;

                // Execute the import.
                ImportXmlResponse importResponse = (ImportXmlResponse)service.Execute(importRequest);

                #endregion

                #region Publish new entities

                // Create the request.
                PublishXmlRequest publishRequest = new PublishXmlRequest();

                // Supply the request that is being published with the Bank Account and Safe Deposit Box.
                publishRequest.ParameterXml = @"<importexportxml>
												<entities>
														<entity>new_bankaccount</entity>
														<entity>new_safedepositbox</entity>
												</entities>
												<nodes/>
                                                <securityroles/>
                                                <settings/>
                                                <workflows/>
											</importexportxml>"                                            ;

                // Execute the request.
                PublishXmlResponse publishResponse = (PublishXmlResponse)service.Execute(publishRequest);

                #endregion
            }
            catch (System.Web.Services.Protocols.SoapException)
            {
                // Add your error handling code here.
            }

            return(true);
        }
Beispiel #7
0
        public bool Run()
        {
            try
            {
                string          configFileName = "demo.ini";
                IniConfigSource configSource   = new IniConfigSource(configFileName);

                IConfig demoConfigSection = configSource.Configs["Demo"];
                string  extractPath       = demoConfigSection.Get("extractPath", string.Empty);

                // Set up the CRM Service.
                CrmService service = new CrmService();
                service.Credentials = System.Net.CredentialCache.DefaultCredentials;

                CrmAuthenticationToken token = new CrmAuthenticationToken();
                // TODO Replace 'AdventureWorksCycle' with your Microsoft CRM organization name.
                token.OrganizationName = "IBMRational";

                service.CrmAuthenticationTokenValue = token;
                // TODO Replace 'localhost:5555' with your CRM server information.
                service.Url = @"http://*****:*****@"C:\Users\rsdiasoliveira\Downloads\sdk4\sdk\server\fullsample\importexportpublish\cs\bin\Debug\";
                //const string customizationPath = @"C:\AppProject\Smart\ExternalSmartStaff\site\document";
                Console.WriteLine(customizationPath);
                foreach (var file in Directory.GetFiles(customizationPath))
                {
                    File.Copy(file, Path.Combine(sourceDir, Path.GetFileName(file)), true);
                }


                // Pass the stream of customization XML to the import request.
                using (StreamReader sr = new StreamReader(Path.Combine(customizationPath + "customizations.xml")))
                {
                    string customizationXml = sr.ReadToEnd();
                    importRequest.CustomizationXml = customizationXml;
                }

                // Supply the request that is being imported with the Bank Accounts and Safe Deposit Boxes.

                // Supply the request that is being imported with the Bank Accounts and Safe Deposit Boxes.
                importRequest.ParameterXml = @"	<importexportxml>
													<entities>
                                                        <entity>contact</entity>
														<entity>incident</entity>
														<entity>credifin_campanhapromo</entity>
													</entities>
													<nodes/>
                                                    <securityroles/>
                                                    <settings/>
                                                    <workflows/>
												</importexportxml>"                                                ;

                // Execute the import.
                ImportXmlResponse importResponse = (ImportXmlResponse)service.Execute(importRequest);

                #endregion

                #region Publish new entities

                // Create the request.
                PublishXmlRequest publishRequest = new PublishXmlRequest();

                // Supply the request that is being published with the Bank Account and Safe Deposit Box.

                publishRequest.ParameterXml = @"<importexportxml>
													<entities>
                                                        <entity>contact</entity>
														<entity>incident</entity>
														<entity>credifin_campanhapromo</entity>
													</entities>
													<nodes/>
                                                    <securityroles/>
                                                    <settings/>
                                                    <workflows/>
												</importexportxml>"                                                ;

                // Execute the request.
                PublishXmlResponse publishResponse = (PublishXmlResponse)service.Execute(publishRequest);

                #endregion
            }
            catch (System.Web.Services.Protocols.SoapException)
            {
                // Add your error handling code here.
            }

            return(true);
        }