Пример #1
0
        private void InitaliseEnvironmentForSpecifiedEnvironment(EnvironmentSettingsManager environmentManager, string devString)
        {
            Console.WriteLine("\n**************** GetEnvironmentFields({0})*********************", devString);
            environmentManager.ConnectToServer(ConnectionString);
            environmentManager.InitializeSettingsManager();
            environmentManager.ConnectToServer(ConnectionString);

            environmentManager.ChangeEnvironment(devString);
            environmentManager.InitializeSettingsManager();
            environmentManager.GetEnvironmentFields(environmentManager.CurrentEnvironment);
        }
Пример #2
0
        internal virtual EnvironmentField GetItemByName(string fieldName)
        {
            using (_environmentSettingsManager)
            {
                var template    = _environmentSettingsManager.EnvironmentTemplates.DefaultTemplate;
                var environment = template.DefaultEnvironment;

                _environmentSettingsManager.GetEnvironmentFields(environment);

                return(environment.EnvironmentFields.GetItemByName(fieldName));
            }
        }
Пример #3
0
        /// <summary>
        /// Gets an EnvironmentSettingsManager for the specified environment.
        /// </summary>
        /// <param name="ConnStr">The K2 connection string.</param>
        /// <param name="EnvName">The targetted K2 environment.</param>
        /// <param name="UseCache">Use local K2 Environment Cache?</param>
        /// <returns>
        /// An EnvironmentSettingsManager object containing settings
        /// for the specified environment
        /// </returns>
        public static EnvironmentSettingsManager GetEnvironmentManager(
            string ConnStr, string EnvName, bool LocalOnly)
        {
            LogHelper.LogMessage("   -- Creating K2 Environment Manager");
            LogHelper.LogMessage("   -- Use Local Environment Cache = " + LocalOnly.ToString());
            EnvironmentSettingsManager environmentManager = new EnvironmentSettingsManager(false, true);

            environmentManager.ConnectionString = ConnStr;

            // Use the Local Environment Cache only.  Do not connect to the K2 Server
            if (LocalOnly)
            {
                environmentManager.WorkOffline = true;

                LogHelper.LogMessage("   -- Loading Environment Cache");
                environmentManager.LoadCache();
            }
            // Connect to the K2 Server to retrieve the Environment settings
            else
            {
                LogHelper.LogMessage("   -- Connecting Environment Manager to K2 Server");
                environmentManager.ConnectToServer();

                LogHelper.LogMessage("   -- Refreshing Environment");
                environmentManager.Refresh();

                LogHelper.LogMessage("   -- Saving Environment to local cache");
                environmentManager.SaveCache();
            }

            LogHelper.LogMessage("   -- Setting the Environment to " + EnvName);
            if (!string.IsNullOrEmpty(EnvName))
            {
                environmentManager.ChangeEnvironment(EnvName);
            }

            LogHelper.LogMessage("   -- Initializing Environment Settings Manager");
            environmentManager.InitializeSettingsManager();

            LogHelper.LogMessage("   -- Getting the Environment fields");
            if (environmentManager.CurrentEnvironment == null)
            {
                throw new ArgumentException("Environment does not exist!");
            }
            else
            {
                environmentManager.GetEnvironmentFields(environmentManager.CurrentEnvironment);
            }

            return(environmentManager);
        }
Пример #4
0
        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();
        }
Пример #5
0
        private EnvironmentSettingsManager GetEnvironmentManager()
        {
            EnvironmentSettingsManager environmentManager = new EnvironmentSettingsManager(false, false);

            // This is weird but the only way I could get it to work!
            environmentManager.ConnectToServer(ConnectionString);
            environmentManager.InitializeSettingsManager();
            environmentManager.ConnectToServer(ConnectionString);

            if (!string.IsNullOrEmpty(environment))
            {
                environmentManager.ChangeEnvironment(environment);
            }
            environmentManager.InitializeSettingsManager();
            environmentManager.GetEnvironmentFields(environmentManager.CurrentEnvironment);

            //////////foreach (EnvironmentInstance env in environmentManager.CurrentTemplate.Environments)
            //////////{

            //////////    InitaliseEnvironmentForSpecifiedEnvironment(environmentManager, env.EnvironmentName);
            //////////}

            return(environmentManager);
        }
        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();
        }
Пример #7
0
        /// <summary>
        /// Gets an EnvironmentSettingsManager for the specified environment.
        /// </summary>
        /// <param name="ConnStr">The K2 connection string.</param>
        /// <param name="EnvName">The targetted K2 environment.</param>
        /// <param name="UseCache">Use local K2 Environment Cache?</param>
        /// <returns>
        /// An EnvironmentSettingsManager object containing settings 
        /// for the specified environment
        /// </returns>
        public static EnvironmentSettingsManager GetEnvironmentManager(
            string ConnStr, string EnvName, bool LocalOnly)
        {
            LogHelper.LogMessage("   -- Creating K2 Environment Manager");
            LogHelper.LogMessage("   -- Use Local Environment Cache = " + LocalOnly.ToString());
            EnvironmentSettingsManager environmentManager = new EnvironmentSettingsManager(false, true);

            environmentManager.ConnectionString = ConnStr;

            // Use the Local Environment Cache only.  Do not connect to the K2 Server
            if (LocalOnly)
            {
                environmentManager.WorkOffline = true;

                LogHelper.LogMessage("   -- Loading Environment Cache");
                environmentManager.LoadCache();
            }
            // Connect to the K2 Server to retrieve the Environment settings
            else
            {
                LogHelper.LogMessage("   -- Connecting Environment Manager to K2 Server");
                environmentManager.ConnectToServer();

                LogHelper.LogMessage("   -- Refreshing Environment");
                environmentManager.Refresh();

                LogHelper.LogMessage("   -- Saving Environment to local cache");
                environmentManager.SaveCache();
            }

            LogHelper.LogMessage("   -- Setting the Environment to " + EnvName);
            if (!string.IsNullOrEmpty(EnvName))
                environmentManager.ChangeEnvironment(EnvName);

            LogHelper.LogMessage("   -- Initializing Environment Settings Manager");
            environmentManager.InitializeSettingsManager();

            LogHelper.LogMessage("   -- Getting the Environment fields");
            if (environmentManager.CurrentEnvironment == null)
            {
                throw new ArgumentException("Environment does not exist!");
            }
            else
            {
                environmentManager.GetEnvironmentFields(environmentManager.CurrentEnvironment);
            }

            return environmentManager;
        }