/// <summary>
 /// Loads from element.
 /// </summary>
 /// <param name="element">The element.</param>
 /// <param name="optional">The optional.</param>
 private void LoadFromElement(XElement element, MappingDictionary optional)
 {
     foreach (var mapping in element.Elements(mappingName))
     {
         Required[mapping.Attribute(keyName).Value] = mapping.Attribute(valueName).Value;
     }
 }
 /// <summary>
 /// Creates the mapping element.
 /// </summary>
 /// <param name="name">The name.</param>
 /// <param name="items">The items.</param>
 /// <returns></returns>
 public XElement CreateMappingElement(string name, MappingDictionary items)
 {
     return(new XElement(name,
                         items.Select(kvp =>
                                      new XElement(mappingName,
                                                   new XAttribute(keyName, kvp.Key),
                                                   new XAttribute(valueName, kvp.Value)))));
 }
        /// <summary>
        /// Gets the mappings.
        /// </summary>
        /// <param name="key">The key.</param>
        /// <returns></returns>
        private MappingDictionary GetMappings(string key)
        {
            var result = this[key] as MappingDictionary;

            if (result == null)
            {
                lock (_mappingsLock)
                {
                    //result = this[key] as MappingDictionary;
                    this[key] = result = new MappingDictionary();
                }
            }
            return(result);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="DatasetSummaryHelper"/> class.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="progress">The progress.</param>
        /// <param name="required">The required.</param>
        /// <param name="optional">The optional.</param>
        public DatasetSummaryHelper(
            DatasetContext context,
            ProgressState progress,
            MappingDictionary required,
            MappingDictionary optional)
        {
            Progress       = progress ?? new ProgressState(0, 1);
            MappingsHelper = new MappingsHelper(required, optional);
            var attrs = new List <XAttribute>();

            if (!string.IsNullOrEmpty(context.Year))
            {
                attrs.Add(new XAttribute("Year", context.Year ?? string.Empty));
            }

            if (context.Quarter.HasValue)
            {
                attrs.Add(new XAttribute("Quarter", context.Quarter.GetValueOrDefault()));
            }
            ReportingPeriod = new XElement("ReportingPeriod", attrs.ToArray());
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="MappingsHelper"/> class.
 /// </summary>
 /// <param name="required">The required.</param>
 /// <param name="optional">The optional.</param>
 public MappingsHelper(MappingDictionary required,
                       MappingDictionary optional)
 {
     Required = required ?? new MappingDictionary();
     Optional = optional ?? new MappingDictionary();
 }