Exemplo n.º 1
0
        private void ProgressReport(object importId)
        {
            var options = new ProgressBarOptions
            {
                ProgressCharacter   = '_',
                ProgressBarOnBottom = false
            };
            var pbar = new ProgressBar(100, $"\t Import Job Id : {importId}\t Connected : {CdsClient.ConnectedOrgFriendlyName}", options);

            while (true)
            {
                try
                {
                    var job       = CdsClient.Retrieve("importjob", (Guid)importId, new ColumnSet("solutionname", "progress", "completedon"));
                    var progress  = Convert.ToDecimal(job["progress"]);
                    var completed = job.Attributes.ContainsKey("completedon") ? job["completedon"] : null;
                    pbar.Tick(Convert.ToInt32(job["progress"]));

                    if (progress == 100 || completed != null)
                    {
                        return;
                    }
                }
                catch (Exception ex)
                {
                    pbar.WriteLine(ex.Message);
                }

                Thread.Sleep(1000);
            }
        }
Exemplo n.º 2
0
        private void ImportSolution()
        {
            var solutionFilePath = $@"{_solutionSettings.SolutionExportDirectory}{_solutionSettings.SolutionName}.zip";

            var data     = File.ReadAllBytes(solutionFilePath);
            var importId = Guid.NewGuid();

            Console.WriteLine("Importing unmanged solution {0} to environment {1}.",
                              _solutionSettings.SolutionName,
                              CdsClient.ConnectedOrgFriendlyName);

            var importSolutionRequest = new ImportSolutionRequest
            {
                CustomizationFile = data,
                ImportJobId       = importId,
                PublishWorkflows  = true,
                OverwriteUnmanagedCustomizations = true,
                ConvertToManaged = false,
                SkipProductUpdateDependencies = false
            };

            void Starter() => ProgressReport(importId);

            var t = new Thread(Starter);

            t.Start();

            CdsClient.Execute(importSolutionRequest);
            Console.WriteLine("Solution {0} successfully imported into {1}",
                              solutionFilePath,
                              CdsClient.ConnectedOrgFriendlyName);
        }
Exemplo n.º 3
0
        private void Publish()
        {
            var publishAllXmlRequest = new PublishAllXmlRequest();

            if (!(CdsClient.Execute(publishAllXmlRequest) is PublishAllXmlResponse))
            {
                Console.WriteLine("Not Connected");
                return;
            }

            Console.WriteLine("All customizations published successfully");
        }
Exemplo n.º 4
0
        private void ExportSolution()
        {
            Console.WriteLine("Exporting solution {0} to environment {1}.",
                              _solutionSettings.SolutionName,
                              CdsClient.ConnectedOrgFriendlyName);
            var exportSolutionRequest = new ExportSolutionRequest
            {
                Managed = false, SolutionName = _solutionSettings.SolutionName
            };
            var exportSolutionResponse = CdsClient.Execute(exportSolutionRequest) as ExportSolutionResponse;
            var solutionFilePath       = $@"{_solutionSettings.SolutionExportDirectory}{_solutionSettings.SolutionName}.zip";

            if (exportSolutionResponse == null)
            {
                _logger.LogError("Failed exporting {0}.", _solutionSettings.SolutionName);
                return;
            }

            File.WriteAllBytes(solutionFilePath, exportSolutionResponse.ExportSolutionFile);
            _logger.LogDebug("Solution exported to {0}.", solutionFilePath);
        }
        private void WhoAmI()
        {
            var whoAmIRequest = new WhoAmIRequest();

            if (!(CdsClient.Execute(whoAmIRequest) is WhoAmIResponse whoAmIResponse))
            {
                Console.WriteLine("Not Connected");
                return;
            }

            var systemUser = CdsClient.Retrieve("systemuser", whoAmIResponse.UserId, new ColumnSet("firstname", "lastname", "domainname"));

            Console.WriteLine("Logged in as {0} {1} to {2}\n", systemUser.Attributes["firstname"],
                              systemUser.GetAttributeValue <string>("lastname"),
                              CdsClient.ConnectedOrgFriendlyName);
            Console.WriteLine("Organization Information:");
            Console.WriteLine("\tOrg ID:\t{0}", CdsClient.ConnectedOrgId);
            Console.WriteLine("\tUnique Name:\t{0}", CdsClient.ConnectedOrgUniqueName);
            Console.WriteLine("\tFriendly Name:\t{0}", CdsClient.ConnectedOrgFriendlyName);
            Console.WriteLine("\tOrg Url:\t{0}", CdsClient.CdsConnectOrgUriActual);
            Console.WriteLine("\tUser Id:\t{0}", systemUser.Attributes["domainname"]);
        }
Exemplo n.º 6
0
        private void RetrieveAttributeHistory()
        {
            var req = new RetrieveAttributeChangeHistoryRequest
            {
                Target = new EntityReference(EntityName, new Guid(EntityId)),
                AttributeLogicalName = AttributeName
            };

            if (!(CdsClient.Execute(req) is RetrieveAttributeChangeHistoryResponse resp))
            {
                return;
            }

            var details = resp.AuditDetailCollection;

            foreach (var detail in details.AuditDetails)
            {
                //Important: the AuditDetailCollection.AuditDetails doesn’t always contain the type of AttributeAuditDetail, so make sure it is of correct type before casting

                if (!(detail is AttributeAuditDetail attributeDetail))
                {
                    continue;
                }
                string oldValue = " ", newValue = " ";

                if (attributeDetail.OldValue.Contains(AttributeName))
                {
                    oldValue = attributeDetail.OldValue[AttributeName].ToString();
                }
                Console.WriteLine($"Old Value : {oldValue ?? ""}");

                if (attributeDetail.NewValue.Contains(AttributeName))
                {
                    newValue = attributeDetail.NewValue[AttributeName].ToString();
                }
                Console.WriteLine($"New Value : {newValue ?? ""}");
            }
        }
Exemplo n.º 7
0
        private void DeleteSolution()
        {
            var queryImportedSolution = new QueryExpression
            {
                EntityName = "solution",
                ColumnSet  = new ColumnSet("solutionid", "friendlyname"),
                Criteria   = new FilterExpression()
            };

            queryImportedSolution.Criteria.AddCondition("uniquename", ConditionOperator.Equal, _solutionSettings.SolutionName);
            var importedSolution = CdsClient.RetrieveMultiple(queryImportedSolution);

            if (importedSolution.Entities == null || importedSolution.Entities.Count <= 0)
            {
                return;
            }

            var solution = importedSolution.Entities[0];

            CdsClient.Delete("solution", (Guid)solution["solutionid"]);

            Console.WriteLine("Deleted the {0} solution.", solution["friendlyname"]);
        }