Beispiel #1
0
        public TConfigurationItem Reset <TConfigurationItem>() where TConfigurationItem : ConfigurationItem <TConfigurationItem>, new()
        {
            var item = new TConfigurationItem();

            if (items.Contains(item.ConfigurationItemId))
            {
                items[item.ConfigurationItemId].Pod      = new JsonPod <object, Guid>(item, item.ConfigurationItemId);
                items[item.ConfigurationItemId].Instance = null;
            }
            return(item);
        }
        public TConfigurationItem Reset <TConfigurationItem>() where TConfigurationItem : ConfigurationItem <TConfigurationItem>, new()
        {
            var newConfig = new TConfigurationItem();

            // If is already instantiated, destroy it
            if (objects.ContainsKey(newConfig.ConfigurationItemId))
            {
                objects.Remove(newConfig.ConfigurationItemId);
            }
            // If is in elements, destroy it
            if (elements.ContainsKey(newConfig.ConfigurationItemId))
            {
                elements.Remove(newConfig.ConfigurationItemId);
            }
            // Create new and return it
            elements.Add(newConfig.ConfigurationItemId, newConfig.ToXElement <TConfigurationItem>());
            return(Get <TConfigurationItem>());
        }
        public TConfigurationItem Get <TConfigurationItem>() where TConfigurationItem : ConfigurationItem <TConfigurationItem>, new()
        {
            var id = new TConfigurationItem().ConfigurationItemId;

            if (objects.ContainsKey(id))
            {
                return(objects[id] as TConfigurationItem);
            }
            if (elements.ContainsKey(id))
            {
                var obj = elements[id].FromXElement <TConfigurationItem>();
                objects.Add(id, obj);
                return(obj);
            }
            else
            {
                var res = new TConfigurationItem();
                elements.Add(res.ConfigurationItemId, res.ToXElement <TConfigurationItem>());
                objects.Add(id, res);
                return(res);
            }
        }
Beispiel #4
0
        public TConfigurationItem Get <TConfigurationItem>() where TConfigurationItem : ConfigurationItem <TConfigurationItem>, new()
        {
            var id = new TConfigurationItem().ConfigurationItemId;

            if (items.Contains(id))
            {
                var item = items[id];
                if (item.Instance != null)
                {
                    return((TConfigurationItem)item.Instance);
                }
                if (item.Pod.Is <TConfigurationItem>())
                {
                    return(item.Pod.As <TConfigurationItem>());
                }
                throw new InvalidCastException($"Configuration item with id '{id}' is not of type '{typeof(TConfigurationItem).Name}'");
            }
            else
            {
                var res = new TConfigurationItem();
                AddItem(res);
                return(res);
            }
        }