/// <summary> /// Saves a wiki. /// </summary> /// <param name="wiki">The wiki.</param> /// <returns> /// A <see cref="ValidationResult"/> with any validation errors. /// </returns> public ValidationResult SaveWiki(Wiki wiki) { using (var transaction = Session.BeginTransaction(IsolationLevel.Serializable)) { var validationResult = wiki.Validate(); // Ensure WikiName is unique amongst active wikis if (Session.CreateCriteria(typeof(Wiki)) .Add(Restrictions.Like("Name", wiki.Name)) .Add(Restrictions.Not(Restrictions.Eq("Id", wiki.Id))) .Add(Restrictions.Eq("IsActive", true)) .SetLockMode(LockMode.Upgrade) .UniqueResult() != null) { validationResult.FlagRule("OpenId", string.Format("The name '{0}' is already in use amongst active wikis.", wiki.Name)); } // Commit the record if (validationResult.Valid) { Session.SaveOrUpdate(wiki); transaction.Commit(); } return validationResult; } }
private static Entry CreateNewEntry(string name, string title, Wiki wiki) { var entry = new Entry(); entry.Wiki = wiki; entry.Name = name; entry.Title = title; entry.Summary = ""; return entry; }
private static Wiki CreateAndSaveWiki(ISession session, string name) { var wiki = new Wiki(); wiki.Name = name; wiki.Title = "Hello"; new WikiRepository(session).SaveWiki(wiki); return wiki; }