using System; using System.Collections.Generic; using System.Linq; //+ namespace TabulaRasa.Service { public class PersonService : IPersonService { private static List personDatabase = null; //+ //- @Ctor -// public PersonService() { } //+ //- @InitDatabase -// public void InitDatabase() { personDatabase = new List( new Person[] { new Person{ Id=1, FirstName="David", LastName="Betz", City="Unknown", PostalCode="12345", State="KS" }, new Person{ Id=2, FirstName="John", LastName="Doe", City="Unknown", PostalCode="23456", State="MA" }, new Person{ Id=3, FirstName="Bob", LastName="Smith", City="Unknown", PostalCode="45678", State="MO" }, new Person{ Id=4, FirstName="Jane", LastName="Doe", City="Unknown", PostalCode="34567", State="FL" }, new Person{ Id=5, FirstName="John", LastName="Smith", City="Unknown", PostalCode="56789", State="VA" } } ); } //+ //- @LoadPersonList -// public List LoadPersonList() { if (personDatabase == null) { InitDatabase(); } //+ return personDatabase; } //- @LoadPerson -// public Person LoadPerson(Int32 personId) { if (personDatabase == null) { InitDatabase(); } //+ return personDatabase.SingleOrDefault(p => p.Id == personId); } //- @LoadPersonWithSimulatedException -// public Person LoadPersonWithSimulatedException( ) { if (personDatabase == null) { InitDatabase(); } //+ return personDatabase.Single(p => p.Id == 100); } //- @SavePerson -// public Int32 SavePerson(Person person) { if (personDatabase == null) { InitDatabase(); } //+ lock (personDatabase) { Int32 max = personDatabase.Max(p => p.Id); person.Id = max + 1; personDatabase.Add(person); //+ return person.Id; } } } }