public static ContentPage ToShortModel(this RepositoryContent repositoryContent, DateTime modifiedDate)
		{
			var retVal = new ContentPage();

			retVal.Name = Path.GetFileNameWithoutExtension(repositoryContent.Name);
			retVal.ModifiedDate = modifiedDate;
			retVal.Language = GetLanguageFromFullPath(repositoryContent.Path);

			return retVal;
		}
		public static ContentPage ToShortModel(this TreeItem treeItem)
		{
		    var retVal = new ContentPage
		                 {
		                     Name = Path.GetFileNameWithoutExtension(treeItem.Path),
		                     Language = GetLanguageFromFullPath(treeItem.Path)
		                 };


		    return retVal;
		}
        public static ContentPage ToPageModel(this RepositoryContent repositoryContent)
		{
		    var retVal = new ContentPage { Name = Path.GetFileNameWithoutExtension(repositoryContent.Name) };

		    if (!string.IsNullOrEmpty(repositoryContent.Content))
			{
				retVal.ByteContent = Encoding.UTF8.GetBytes(repositoryContent.Content);
			}
			retVal.Language = GetLanguageFromFullPath(repositoryContent.Path);

			return retVal;
		}
		public static ContentPage AsContentPage(this Page page)
		{
			var retVal = new ContentPage();

			retVal.Id = page.Id;
			retVal.Language = page.Language;
			retVal.Path = page.Id;
			retVal.Name = page.PageName;
			retVal.ByteContent = page.ByteContent;
			retVal.ContentType = page.ContentType;

			return retVal;
		}
		public void SavePage(string path, ContentPage page)
		{
			var existingItem = Pages.FirstOrDefault(p => p.Path == path);
			if (existingItem != null)
			{
				existingItem.ByteContent = page.ByteContent;
				existingItem.ModifiedDate = DateTime.UtcNow;
				Update(existingItem);
			}
			else
			{
				page.Path = path;
				Add(page);
			}

			UnitOfWork.Commit();
		}