예제 #1
0
        private IDictionary <string, object> RpcGetConfiguration(string uuid)
        {
            IUserObject instance = m_mot.GetInstance(Guid.Parse(uuid));

            if (instance == null)
            {
                throw new ArgumentException("No such object.");
            }
            IDictionary <string, object> config = m_mot.GetConfiguration(instance.UUID);

            if (config == null)
            {
                throw new ArgumentException("Object does not have a configuration.");
            }
            // Set up the result
            Dictionary <string, object> result = new Dictionary <string, object>();

            result["active"] = config;
            IConfigurationDescription            configDescription = m_mot.GetConfigurationDescription(instance.UUID);
            List <IDictionary <string, object> > details           = new List <IDictionary <string, object> >();

            foreach (IConfigurationValue value in configDescription)
            {
                details.Add(value.Pack());
            }
            result["details"] = details;
            return(result);
        }
예제 #2
0
        /// <summary>
        /// Constructor
        /// </summary>
        public ServiceManager()
        {
            // Add ourselves to the MOT
            MasterObjectTable mot = Locator.Current.GetService <MasterObjectTable>();

            mot.AddMetaData(Utilities.GetContainingAssembly <ServiceManager>());
            mot.AddInstance(this);
            // Load and apply our configuration (IFolder must be available by now)
            IConfigurationDescription    serverConfigDescription = mot.GetConfigurationDescription(UUID);
            IDictionary <string, object> serverConfig            = mot.GetConfigurationFromFile(UUID, "SensHub.json");

            ApplyConfiguration(serverConfigDescription, serverConfig);
        }