Пример #1
0
 /// <summary>
 /// Adds the specified entry.
 /// </summary>
 /// <param name="entry">The entry.</param>
 /// <exception cref="DuplicateNameException">Thrown when there is 
 /// already an entry with the same hash exists.</exception>
 public void AddChunk(DataChunk chunk)
 {
     try {
         _session.Save(chunk);
     } catch (NHibernate.Exceptions.GenericADOException ex) {
         throw new DuplicateNameException(
             "Chunk hash needs to be unique.", ex);
     }
 }
Пример #2
0
 /// <summary>
 /// Adds the chunk if not exists.
 /// </summary>
 /// <param name="session">The session.</param>
 /// <param name="chunk">The chunk.</param>
 /// <returns>True if the chunk already exists and this chunk is not 
 /// inserted.</returns>
 public static bool AddChunkIfNotExists(IStatelessSession session, 
     DataChunk chunk)
 {
     ICriteria crit = session.CreateCriteria(typeof(DataChunk));
     ICriterion hashEq = Expression.Eq("Hash", chunk.Hash);
     crit.Add(hashEq);
     if ((DataChunk)crit.UniqueResult() == null) {
         // Save if no duplicate is found.
         session.Insert(chunk);
         return false;
     } else {
         return true;
     }
 }