/// <summary>
        /// Saves the configuration.
        /// </summary>
        /// <param name="filePath">The file path.</param>
        /// <param name="configuration">The configuration.</param>
        public static void Save(ConfigurationRoot configuration, String filePath = defaultConfigurationPath)
        {
            string directoryPath = Path.GetDirectoryName(filePath);
            if (!Directory.Exists(directoryPath))
            {
                Directory.CreateDirectory(directoryPath);
            }

            XmlSerializer serializer = new XmlSerializer(typeof(ConfigurationRoot));

            using (TextWriter textWriter = new StreamWriter(filePath))
            {
                serializer.Serialize(textWriter, configuration);
            }
        }
        /// <summary>
        /// Saves the configuration.
        /// </summary>
        /// <param name="filePath">The file path.</param>
        /// <param name="configuration">The configuration.</param>
        public static void Save(ConfigurationRoot configuration, String filePath = defaultConfigurationPath)
        {
            string directoryPath = Path.GetDirectoryName(filePath);

            if (!Directory.Exists(directoryPath))
            {
                Directory.CreateDirectory(directoryPath);
            }

            XmlSerializer serializer = new XmlSerializer(typeof(ConfigurationRoot));

            using (TextWriter textWriter = new StreamWriter(filePath))
            {
                serializer.Serialize(textWriter, configuration);
            }
        }
        /// <summary>
        /// Builds the planning templates.
        /// </summary>
        /// <param name="pageModel">The page model.</param>
        /// <param name="configuration">The configuration.</param>
        private void BuildPlanningTemplates(PlanWorkItemPageModel pageModel, ConfigurationRoot configuration)
        {
            if (configuration.Templates != null && configuration.Templates.Count > 0)
            {
                ObservableCollection<PlanningTemplate> planningTemplates = new ObservableCollection<PlanningTemplate>();

                foreach (Template template in configuration.Templates.OrderBy(x => x.DisplayOrder).ThenBy(x => x.DisplayName))
                {
                    planningTemplates.Add((PlanningTemplate)template);
                }

                pageModel.PlanningTemplates = planningTemplates;
            }
        }