/// <summary>
		/// Gets the archive for the tag with the given slug.
		/// </summary>
		/// <param name="slug">The unique slug</param>
		/// <param name="page">Optional page number</param>
		/// <returns>The archive</returns>
		public async Task<Models.TagArchive> GetTagArchiveAsync(string slug, int page = 1) { 
			var model = new Models.TagArchive();

			var tagRep = new TagRepository(uow);
			var postRep = new PostRepository(uow);

			model.Tag = await tagRep.GetBySlugAsync(slug);

			if (model.Tag != null) {
				// Fill model
				model.TotalCount = await uow.Posts.Where(p => p.Published.HasValue && p.Tags.Any(t => t.Slug == slug)).CountAsync();
				model.PageSize = Config.Blog.ArchivePageSize;
				model.PageCount = Math.Max(Convert.ToInt32(Math.Ceiling(((double)model.TotalCount) / model.PageSize)), 1);
				model.CurrentPage = Math.Min(page, model.PageCount);
				model.Posts = await postRep.GetAsync(p => p.Published.HasValue && p.Tags.Any(t => t.Slug == slug), model.CurrentPage * model.PageSize);

				// Filter out the current page
				model.Posts = model.Posts.Subset((model.CurrentPage - 1) * model.PageSize).ToList();

				return model;
			}
			return null;
		}