Beispiel #1
0
        public void DeploymentTest()
        {
            var ph = new ProjectHandler().Initialize();

            var resp = new SalesforceRepository(ph.GetContext("Dev58 SandBox"), new NoPullStrategy());

            var options = new DeployOptions()
            {
                CheckOnly       = false,
                IgnoreWarnings  = false,
                PerformeRetrive = false,
                RollbackOnError = true
            };

            var id = resp.Deploy(@"D:\salesforce.migrations\solution\Dev49 SandBox\10-13-2015-16-08-55", options);

            MetaDataService.DeployResult result = SalesforceRepositoryHelpers.WaitDeployResult(id, resp.GetContext, new CancellationToken());

            if (result.details.componentFailures != null)
            {
                foreach (DeployMessage item in result.details.componentFailures)
                {
                    if (!string.IsNullOrWhiteSpace(item.problem))
                    {
                        Console.WriteLine(item.problem);
                    }
                }
            }

            Assert.IsTrue(result.done);
        }
        public string Deploy(string folder, DeployOptions options)
        {
            if (!Directory.Exists(folder))
            {
                throw new DirectoryNotFoundException();
            }

            if (!Directory.EnumerateDirectories(folder).Any())
            {
                throw new DirectoryNotFoundException("Couldn't find visual force related subfolders under package folder.");
            }

            var vfFolders   = Path.Combine(folder, "package");
            var directories = Directory.EnumerateDirectories(vfFolders);

            IList <IDeployableItem> members = Enumerable.Cast <IDeployableItem>((from directory in directories
                                                                                 from file in Directory.GetFiles(directory, "*.*", SearchOption.AllDirectories)
                                                                                 select new SalesForceLocalFileDeployableItem
            {
                FileBody = ZipPackageFileHelper.ReadAllBytes(file),
                FileName = file
            })).ToList();


            byte[] zip = ZipPackageFileHelper.ZipObjectsForDeploy(members.Where(w => w.Type != MetadataType.Unknown).ToList());

            SalesforceFileProcessing.SaveByteArray(String.Format("{0}\\package_VF_{1}.zip", folder, Guid.NewGuid()), zip);

            var id = Context.MetadataServiceAdapter.Deploy(zip, options).id;

            return(id);
        }
        public string Deploy(string folder, DeployOptions deployOptions)
        {
            if (_deploymentStrategy == null)
            {
                throw new InvalidDeploymentStrategyException();
            }

            return(_deploymentStrategy.Deploy(folder, deployOptions));
        }
        public static void PushStaticResources([Required] string environment, string packagedirectory)
        {
            var ph = new ProjectHandler().Initialize();

            if (String.IsNullOrWhiteSpace(packagedirectory))
            {
                packagedirectory = System.IO.Directory.GetCurrentDirectory();
            }

            Console.WriteLine("Pushing from: {0}", packagedirectory);

            try
            {
                var resp = new SalesforceRepository(ph.GetContext(environment), null, new StaticResourcesOnlyDeploymentStrategy());

                var options = new DeployOptions()
                {
                    CheckOnly       = false,
                    IgnoreWarnings  = false,
                    PerformeRetrive = false,
                    RollbackOnError = true
                };

                var id = resp.Deploy(packagedirectory, options);

                Salesforce.Migrations.Assistant.Library.MetaDataService.DeployResult result = SalesforceRepositoryHelpers.WaitDeployResult(id, resp.GetContext, new CancellationToken());

                if (result.details.componentFailures != null)
                {
                    foreach (DeployMessage item in result.details.componentFailures)
                    {
                        if (!string.IsNullOrWhiteSpace(item.problem))
                        {
                            Console.WriteLine(item.problem);
                        }
                    }
                }

                if (result.done == true && result.success == true)
                {
                    Console.WriteLine("Deployment completed successfully with no errors!");
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
                throw;
            }
        }
Beispiel #5
0
        public void PushDeployAllFiles()
        {
            var ph = new ProjectHandler().Initialize();

            var resp = new SalesforceRepository(ph.GetContext("Dev58 SandBox"), null, new VisualForceDeploymentStrategy());

            var options = new DeployOptions()
            {
                CheckOnly       = false,
                IgnoreWarnings  = false,
                PerformeRetrive = false,
                RollbackOnError = true
            };


            resp.Deploy(@"D:\\salesforce.migrations\\solution\\Dev54 SandBox\\_current", options);
        }
 public DeployResult DeployComponents(byte[] zipFile, DeployOptions deployOptions,
     int timeToPollingDeployResultInSeconds,
     int intervalInSeconds)
 {
     throw new NotImplementedException();
 }
        public static void PushStaticResources([Required] string environment, string packagedirectory)
        {
            var ph = new ProjectHandler().Initialize();

            if(String.IsNullOrWhiteSpace(packagedirectory))
                packagedirectory = System.IO.Directory.GetCurrentDirectory();
            
            Console.WriteLine("Pushing from: {0}", packagedirectory);

            try
            {
                var resp = new SalesforceRepository(ph.GetContext(environment), null, new StaticResourcesOnlyDeploymentStrategy());

                var options = new DeployOptions()
                {
                    CheckOnly = false,
                    IgnoreWarnings = false,
                    PerformeRetrive = false,
                    RollbackOnError = true
                };

                var id = resp.Deploy(packagedirectory, options);

                Salesforce.Migrations.Assistant.Library.MetaDataService.DeployResult result = SalesforceRepositoryHelpers.WaitDeployResult(id, resp.GetContext, new CancellationToken());

                if (result.details.componentFailures != null)
                {
                    foreach (DeployMessage item in result.details.componentFailures)
                    {
                        if (!string.IsNullOrWhiteSpace(item.problem))
                        {
                            Console.WriteLine(item.problem);
                        }
                    }
                }

                if (result.done == true && result.success == true)
                {
                    Console.WriteLine("Deployment completed successfully with no errors!");
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
                throw;
            }
        }
 public DeployResult DeployComponents(byte[] zipFile, DeployOptions deployOptions,
                                      int timeToPollingDeployResultInSeconds,
                                      int intervalInSeconds)
 {
     throw new NotImplementedException();
 }
        public void PushDeployAllFiles()
        {
            var ph = new ProjectHandler().Initialize();

            var resp = new SalesforceRepository(ph.GetContext("Dev58 SandBox"),null, new VisualForceDeploymentStrategy());

            var options = new DeployOptions()
            {
                CheckOnly = false,
                IgnoreWarnings = false,
                PerformeRetrive = false,
                RollbackOnError = true
            };


            resp.Deploy(@"D:\\salesforce.migrations\\solution\\Dev54 SandBox\\_current", options);
        }
        public void DeploymentTest()
        {
            var ph = new ProjectHandler().Initialize();

            var resp = new SalesforceRepository(ph.GetContext("Dev58 SandBox"), new NoPullStrategy());

            var options = new DeployOptions()
            {
                CheckOnly = false,
                IgnoreWarnings = false,
                PerformeRetrive = false,
                RollbackOnError = true
            };

            var id = resp.Deploy(@"D:\salesforce.migrations\solution\Dev49 SandBox\10-13-2015-16-08-55", options);

            MetaDataService.DeployResult result = SalesforceRepositoryHelpers.WaitDeployResult(id, resp.GetContext, new CancellationToken());

            if (result.details.componentFailures != null)
            {
                foreach (DeployMessage item in result.details.componentFailures)
                {
                    if (!string.IsNullOrWhiteSpace(item.problem))
                    {
                        Console.WriteLine(item.problem);
                    }
                }
            }

            Assert.IsTrue(result.done);
        }
        public string Deploy(string folder, DeployOptions options)
        {
            if (!Directory.Exists(folder))
            {
                throw new DirectoryNotFoundException();
            }

            var staticResourceFolder = Path.Combine(folder, "package\\staticresources");

            if (!Directory.Exists(staticResourceFolder))
            {
                throw new DirectoryNotFoundException("Couldn't find static resources subfolder under package folder.");
            }

            var directories = Directory.EnumerateDirectories(staticResourceFolder);

            IList <IDeployableItem> members = new List <IDeployableItem>();

            foreach (var directory in directories)
            {
                var      splits  = directory.Split('\\');
                var      zipName = splits[splits.Length - 1];
                string[] files   = Directory.GetFiles(directory, "*.*", SearchOption.AllDirectories);

                var directoryPlusZipName = Path.Combine(staticResourceFolder, zipName);

                using (ZipFile zip = new ZipFile())
                {
                    foreach (var file in files)
                    {
                        var zipFileNamePlusDirectory = file.Replace(directoryPlusZipName, String.Empty);
                        var zipDirectory             = Path.GetDirectoryName(zipFileNamePlusDirectory);
                        zip.AddFile(file, zipDirectory);
                    }

                    MemoryStream memoryStream = new MemoryStream();
                    zip.Save(memoryStream);

                    members.Add(new StaticResourceDeployableItem
                    {
                        FileBody = memoryStream.ToArray(),
                        FileName = String.Format("{0}\\{1}.resource", directory, zipName),
                        FileNameWithoutExtension = String.Format("{0}", zipName)
                    });

                    XmlOutput xo = new XmlOutput()
                                   .XmlDeclaration()
                                   .Node("StaticResource").Attribute("xmlns", "http://soap.sforce.com/2006/04/metadata").Within()
                                   .Node("cacheControl").InnerText("Public")
                                   .Node("contentType").InnerText("application/zip").EndWithin();

                    members.Add(new StaticResourceDeployableItem
                    {
                        FileBody = System.Text.Encoding.Default.GetBytes(xo.GetOuterXml()),
                        FileName = String.Format("{0}\\{1}.resource-meta.xml", directory, zipName),
                        FileNameWithoutExtension = String.Format("{0}.resource-meta.xml", zipName),
                        AddToPackage             = false
                    });
                }
            }

            PackageEntity pe = new PackageEntity
            {
                Types = new[]
                {
                    new PackageTypeEntity
                    {
                        Members = members.Where(w => w.AddToPackage).Select(s => s.FileNameWithoutExtension).ToArray(),
                        Name    = "StaticResource"
                    }
                },
                Version = "29.0"
            };

            var zipFile = UnzipPackageFilesHelper.ZipObjectsForDeploy(members, pe.GetXml().OuterXml);

            SalesforceFileProcessing.SaveByteArray(String.Format("{0}\\package_{1}.zip", folder, Guid.NewGuid()), zipFile);

            var id = Context.MetadataServiceAdapter.Deploy(zipFile, options).id;

            return(id);
        }