|
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 FileAttachment data
/// </summary>
public class FileAttachmentDataStore : EntityDataStoreBase<FileAttachment, string>
{
public FileAttachmentDataStore(TransactionScope transactionScope)
: base(transactionScope)
{
}
public string[] GetArticleAttachments(Article article, EnabledStatus enabledStatus)
{
string hql = "SELECT T.Name FROM FileAttachment T INNER JOIN T.Article A WHERE A.Id = :articleId";
if (enabledStatus == EnabledStatus.Disabled)
hql += " AND T.Enabled = 0";
else if (enabledStatus == EnabledStatus.Enabled)
hql += " AND T.Enabled = 1";
IQuery query = CreateQuery(hql);
query.SetParameter("articleId", article.Id);
IList<string> names = query.List<string>();
string[] arrNames = new string[names.Count];
names.CopyTo(arrNames, 0);
return arrNames;
}
public FileAttachment FindByArticleVersion(Article article, string name)
{
ICriteria criteria = CreateCriteria();
criteria.CreateCriteria("Article").Add(Expression.Eq("Id", article.Id));
criteria.Add(Expression.Eq("Name", name));
return FindUnique(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.