private static void EditEnvironment(EnvironmentSettingsManager environmentSettingsManager, string EnvironmentName, string EnvironmentDesc, string EnvironmentId, bool IsDefault) { EnvironmentInstance environment = environmentSettingsManager.EnvironmentTemplates.FindEnvironment(EnvironmentId); environment.EnvironmentName = EnvironmentName; environment.EnvironmentDescription = EnvironmentDesc; environment.IsDefaultEnvironment = IsDefault; environment.SaveUpdate(); }
private void LoadDefaultEnvironmentFields() { bool mutexCreated; MutexSecurity mutexsecurity = new MutexSecurity(); mutexsecurity.AddAccessRule(new MutexAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), MutexRights.Synchronize | MutexRights.Modify, AccessControlType.Allow)); envMutex = new Mutex(false, "Global\\environmentMutext", out mutexCreated, mutexsecurity); envMutex.WaitOne(); Dictionary <string, string> tempEnv = new Dictionary <string, string>(); EnvironmentSettingsManager environmentManager = new EnvironmentSettingsManager(false, true); environmentManager.ConnectToServer(BaseAPIConnectionString); environmentManager.InitializeSettingsManager(); EnvironmentInstance env = environmentManager.EnvironmentTemplates.DefaultTemplate.DefaultEnvironment; if (!string.IsNullOrEmpty(EnvironmentToUseConfiguration)) { env = environmentManager.EnvironmentTemplates.DefaultTemplate.Environments[EnvironmentToUseConfiguration]; } environmentManager.GetEnvironmentFields(env); foreach (EnvironmentField field in env.EnvironmentFields) { // For some reason, a environment can have 2 environment fields with the same name. Go figure. if (!tempEnv.ContainsKey(field.FieldName)) { tempEnv.Add(field.FieldName, field.Value); } } if (!tempEnv.ContainsKey("SmartForms Runtime")) { foreach (EnvironmentField field in env.EnvironmentFields) { if (field.IsDefaultField && string.Compare(field.FieldTypeId, "EC07ABC1-259D-40CE-9485-04EEB3E5DCF0", true) == 0) { tempEnv.Add("SmartForms Runtime", field.Value); break; } } } environmentFields = tempEnv; envMutex.ReleaseMutex(); }
private static void AddEnvironment(EnvironmentSettingsManager environmentSettingsManager, string EnvironmentName, string EnvironmentDesc, string EnvironmentId, string TemplateName, bool IsDefault) { EnvironmentId = System.Guid.NewGuid().ToString(); // Create a new environment instance with the given values. EnvironmentInstance environment = new EnvironmentInstance(EnvironmentId, EnvironmentName, EnvironmentDesc); environment.IsDefaultEnvironment = IsDefault; InitializeEnvironmentSettingsManager(out environmentSettingsManager); var template = environmentSettingsManager.EnvironmentTemplates.GetItemByName(TemplateName); // Add new environment to the EnvironmentInstanceCollection template.Environments.Add(environment); }
public static DeploymentPackage GetPackage(string environmentServer, string destinationTemplate, string destinationEnvironment, Project project, bool testOnly) { //Create connection string to environment server var envionmentServerConnection = EnvionmentServerConnection(environmentServer); //Retrieve the environments from the server EnvironmentSettingsManager environmentManager = new EnvironmentSettingsManager(true); environmentManager.ConnectToServer(envionmentServerConnection); environmentManager.InitializeSettingsManager(true); environmentManager.Refresh(); //Get the template and environment objects. EnvironmentTemplate template = environmentManager.EnvironmentTemplates[destinationTemplate]; EnvironmentInstance environment = template.Environments[destinationEnvironment]; //Create the package DeploymentPackage package = project.CreateDeploymentPackage(); //Set all of the environment fields to the package DeploymentEnvironment deploymentEnv = package.AddEnvironment(environment.EnvironmentName); foreach (EnvironmentField field in environment.EnvironmentFields) { deploymentEnv.Properties[field.FieldName] = field.Value; } //Set fields on the package package.SelectedEnvironment = destinationEnvironment; package.DeploymentLabelName = DateTime.Now.ToString(CultureInfo.InvariantCulture); package.DeploymentLabelDescription = "Template: " + destinationTemplate + ",Environment: " + destinationEnvironment; package.TestOnly = testOnly; //Get the Default SmartObject Server in the Environment //environment.GetDefaultField(typeof(SmartObjectField)); package.SmartObjectConnectionString = envionmentServerConnection; //Get the Default Workflow Management Server in the Environment //environment.GetDefaultField(typeof(WorkflowManagementServerField)); package.WorkflowManagementConnectionString = envionmentServerConnection; return(package); }