Exemplo n.º 1
0
        /// <summary>
        /// Создание подкатегории c многими инстансами
        /// </summary>
        /// <param name="categoryName">Имя категории</param>
        /// <param name="categoryDescription">Описание категории</param>
        /// <returns>Созданная подкатегория</returns>
        public override MultiInstanceCategory CreateMultiInstanceSubCategory(string categoryName, string categoryDescription)
        {
            if (categoryName == null)
            {
                throw new ArgumentNullException("categoryName");
            }
            if (categoryDescription == null)
            {
                throw new ArgumentNullException("categoryDescription");
            }

            lock (_childCategories)
            {
                if (_childCategories.Any(o => o.Name == categoryName))
                {
                    throw new DuplicateCategoryNameException("Category with the same name is already registered. Name: " + categoryName);
                }

                var res = new InternalMultiInstanceCategory(categoryName, categoryDescription, this);
                _childCategories.Add(res);
                return(res);
            }
        }
 /// <summary>
 /// Конструктор для создания инстанса InternalInstanceInMultiInstanceCategory
 /// </summary>
 /// <param name="parent">Родительская многоинстовая категория</param>
 /// <param name="instanceName">Имя инстанса</param>
 public InternalInstanceInMultiInstanceCategory(InternalMultiInstanceCategory parent, string instanceName)
     : base(parent, instanceName)
 {
     _counters = parent.Counters.ToDictionary(key => key.Key, val => val.Value.CreateCounter());
 }