|
using System;
using System.Collections.Generic;
using System.Text;
using NHibernate;
using NHibernate.Expression;
namespace Eucalypto.Wiki
{
/// <summary>
/// Class that use NHibernate to save the VersionedArticle entities
/// </summary>
public class VersionedArticleDataStore : EntityDataStoreBase<VersionedArticle, string>
{
public VersionedArticleDataStore(TransactionScope transactionScope)
: base(transactionScope)
{
}
public VersionedArticle FindByArticleVersion(Article article, int version)
{
ICriteria criteria = CreateCriteria();
criteria.CreateCriteria("Article").Add(Expression.Eq("Id", article.Id));
criteria.Add(Expression.Eq("Version", version));
return FindUnique(criteria);
}
/// <summary>
/// Get a list of versionedarticle ordered by version desc
/// </summary>
/// <param name="article"></param>
/// <returns></returns>
public IList<VersionedArticle> GetArticleVersions(Article article)
{
//string hql = "SELECT T.Version FROM VersionedArticle T INNER JOIN T.Article A WHERE A.Id = :articleId";
//IQuery query = CreateQuery(hql);
//query.SetParameter("articleId", article.Id);
//IList<int> versions = query.List<int>();
//int[] arrVersions = new int[versions.Count];
//versions.CopyTo(arrVersions, 0);
//return arrVersions;
ICriteria criteria = CreateCriteria();
criteria.CreateCriteria("Article").Add(Expression.Eq("Id", article.Id));
criteria.AddOrder(Order.Desc("Version"));
return Find(criteria);
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.