public override void Execute(IOrganizationService service)
        {
            if (!this.Validate())
            {
                throw new ArgumentNullException(nameof(this.FileName));
            }

            using (var crm = new CrmOrganization(service))
            {
                using (FileStream zip = File.Open(Path.Combine(_solutionsDirectory, this.FileName), FileMode.Open))
                {
                    Logger.Log($"Starting with import of {this.FileName}", LogLevel.Info);
                    var message = new ImportSolutionMessage(crm)
                    {
                        SolutionFileStream               = zip,
                        HoldingSolution                  = this.HoldingSolution,
                        OverwriteIfSameVersionExists     = this.OverwriteIfSameVersionExists,
                        OverwriteUnmanagedCustomizations = this.OverwriteUnmanagedCustomizations,
                        PublishWorkflows                 = this.PublishWorkflows,
                        SkipProductUpdateDependencies    = this.SkipProductDependencies,
                    };

                    crm.Execute(message);
                }
            }
        }
        protected override void ProcessRecord()
        {
            Logger.Log(ObjectLogger.GetLogFor(this), LogLevel.Info);

            var crm = new CrmOrganization(this.OrganizationService);

            using (FileStream solution = File.Open(this.SolutionFile, FileMode.Open))
            {
                var message = new ImportSolutionMessage(crm)
                {
                    SolutionFileStream           = solution,
                    OverwriteIfSameVersionExists = this.OverwriteIfSameVersionExists,
                    HoldingSolution  = this.HoldingSolution,
                    PublishWorkflows = this.PublishWorkflows,
                    ConvertToManaged = this.ConvertToManaged,
                    OverwriteUnmanagedCustomizations = this.OverwriteUnmanagedCustomizations,
                    SkipProductUpdateDependencies    = this.SkipProductUpdateDependencies,
                };

                var result = (ImportSolutionResult)crm.Execute(message);
                WriteObject(result);
            }
        }