using System; using NPetshop.Domain; using NPetshop.Persistence.Interfaces; using IBatisNet.DataMapper.Exceptions; namespace NPetshop.Persistence.MapperDao { /// /// Summary description for SequenceSqlMapDao. /// public class SequenceSqlMapDao : BaseSqlMapDao, ISequenceDao { #region ISequenceDao Members /// /// This is a generic sequence ID generator that is based on a database /// table called 'SEQUENCE', which contains two columns (NAME, NEXTID). /// /// name The name of the sequence. /// The Next ID public int GetNextId(string name) { Sequence sequence = new Sequence(name, -1); sequence = ExecuteQueryForObject("GetSequence", sequence) as Sequence; if (sequence == null) { throw new DataMapperException("Error: A null sequence was returned from the database (could not get next " + name + " sequence)."); } object parameterObject = new Sequence(name, sequence.NextId + 1); ExecuteUpdate("UpdateSequence", parameterObject); return sequence.NextId; } #endregion } }