/// <summary> /// Builds the categorisation dictionary where dataflow <see cref="IMaintainableRefObject"/> are keys and lists of /// <see cref="ICategorisationMutableObject"/> /// the value. /// </summary> /// <param name="categorisations"> /// The categorisations. /// </param> /// <param name="itemScheme"> /// The Category Scheme /// </param> /// <returns> /// The categorisation dictionary /// </returns> private static IDictionaryOfLists<string, ICategorisationMutableObject> BuildCategorisationMap( IEnumerable<ICategorisationMutableObject> categorisations, IMaintainableMutableObject itemScheme) { var categorisationMap = new DictionaryOfLists<string, ICategorisationMutableObject>(StringComparer.Ordinal); var categorySchemeRef = new MaintainableRefObjectImpl( itemScheme.AgencyId, itemScheme.Id, itemScheme.Version); foreach (ICategorisationMutableObject categorisation in categorisations) { IStructureReference structureReference = categorisation.StructureReference; switch (structureReference.MaintainableStructureEnumType.EnumType) { case SdmxStructureEnumType.Dataflow: IStructureReference categoryRef = categorisation.CategoryReference; if (categorySchemeRef.Equals(categoryRef.MaintainableReference)) { IList<ICategorisationMutableObject> categoryDataflows; string categoryId = categoryRef.ChildReference.GetLastId(); if (!categorisationMap.TryGetValue(categoryId, out categoryDataflows)) { categoryDataflows = new List<ICategorisationMutableObject>(); categorisationMap.Add(categoryId, categoryDataflows); } categoryDataflows.Add(categorisation); } break; } } return categorisationMap; }
/// <summary> /// Builds the categorisation dictionary where dataflow <see cref="IMaintainableRefObject"/> are keys and lists of /// <see cref="ICategorisationMutableObject"/> /// the value. /// </summary> /// <param name="categorisations"> /// The categorisations. /// </param> /// <returns> /// The categorisation dictionary /// </returns> private static IDictionaryOfLists<IMaintainableRefObject, ICategorisationMutableObject> BuildCategorisationMap( IEnumerable<ICategorisationMutableObject> categorisations) { var categorisationMap = new DictionaryOfLists<IMaintainableRefObject, ICategorisationMutableObject>(); foreach (ICategorisationMutableObject categorisation in categorisations) { IStructureReference structureReference = categorisation.StructureReference; switch (structureReference.MaintainableStructureEnumType.EnumType) { case SdmxStructureEnumType.Dataflow: IList<ICategorisationMutableObject> dataflowCategories; IMaintainableRefObject dataflowReference = structureReference.MaintainableReference; if (!categorisationMap.TryGetValue(dataflowReference, out dataflowCategories)) { dataflowCategories = new List<ICategorisationMutableObject>(); categorisationMap.Add(dataflowReference, dataflowCategories); } dataflowCategories.Add(categorisation); break; } } return categorisationMap; }