/// <summary>
 /// The map from.
 /// </summary>
 /// <param name="blog">
 /// The blog containing the blog posts.
 /// </param>
 /// <param name="archiveMonth">
 /// The archive month.
 /// </param>
 /// <returns>
 /// The collection of months with archived blog posts.
 /// </returns>
 public ArchiveMonthViewModel MapFrom(Blog blog, int archiveMonth)
 {
     return new ArchiveMonthViewModel
         {
             Value = archiveMonth, Name = new DateTime(1999, archiveMonth, 1).ToString("MMMM") 
         };
 }
        /// <summary>
        /// The map from.
        /// </summary>
        /// <param name="blog">
        /// The blog to map from.
        /// </param>
        /// <param name="archiveYear">
        /// The the archived post year.
        /// </param>
        /// <returns>
        /// The mappped arcihve year view model.
        /// </returns>
        public ArchiveYearViewModel MapFrom(Blog blog, int archiveYear)
        {
            var blogPosts = blog.BlogPosts.Where(x => x.PostDate.Year == archiveYear);

            var archiveMonthsValues = GetArchiveMonthsValues(blogPosts);

            if (archiveMonthsValues.Count == 0)
            {
                return null;
            }

            var archiveMonths = archiveMonthsValues.Select(x => this.archiveMonthsViewModelMapper.MapFrom(blog, x));

            return new ArchiveYearViewModel
                {
                    BlogUrl = blog.Url, ArchiveYear = archiveYear, ArchiveMonths = archiveMonths 
                };
        }