/// <summary> /// Inserts or updates a person. /// </summary> /// <param name="person">The person to persist.</param> public void SaveOrUpdate(Person person) { if (person == null) throw new ArgumentNullException("person"); CurrentSession.SaveOrUpdate(person); }
public void ShouldRetrieveInsertedPersonAfterInsert() { var person = new Person { FirstName = "steve", LastName = "blah" }; _sut.SaveOrUpdate(person); var retrieved = InMemorySession.Query<Person>().ToArray(); Assert.AreEqual(retrieved.Length, 1); Assert.AreEqual(retrieved.First().FirstName, person.FirstName); }
public void ShouldRetrievePreviouslyInsertedPersonsOnGetAll() { var person = new Person { FirstName = "steve", LastName = "blah" }; using (var transaction = InMemorySession.BeginTransaction()) { InMemorySession.Save(person); transaction.Commit(); } var retrieved = _sut.GetAll().ToArray(); Assert.AreEqual(retrieved.Length, 1); Assert.AreEqual(retrieved.First().FirstName, person.FirstName); }
public void ShouldUpdateNotInsertOnSaveOrUpdate() { var person = new Person {FirstName = "steve", LastName = "blah"}; using (var transaction = InMemorySession.BeginTransaction()) { InMemorySession.Save(person); transaction.Commit(); } var retrieved = InMemorySession.Query<Person>().First(); retrieved.FirstName = "john"; using (var transaction = InMemorySession.BeginTransaction()) { _sut.SaveOrUpdate(retrieved); transaction.Commit(); } Assert.AreEqual(1, InMemorySession.Query<Person>().Count()); Assert.AreEqual(retrieved.FirstName, InMemorySession.Query<Person>().First().FirstName); }
/// <summary> /// Adapts retrieved detailed movie information into a useable movie object. /// </summary> /// <param name="info">The retrieved information.</param> /// <returns>The adapted information.</returns> private Movie AdaptDetails(dynamic info) { var data = info[0]; var year = new DateTime(Convert.ToInt32(data["released"].Substring(0, 4)), 1, 1); var movie = new Movie { DateAdded = DateTime.Now, Description = data["overview"], Name = data["name"], PosterLocation = DerivePoster(data), Genres = DeriveGenres(data), Year = year }; var cast = data["cast"]; var actors = new List<Person>(); var producers = new List<Person>(); foreach (IDictionary<string, object> member in cast) { var person = _personRepository.GetByName(member["name"] as string); if (person == null) { person = new Person {FirstName = ((string) member["name"]).Split(' ')[0], LastName = ((string) member["name"]).Split(' ')[1]}; _personRepository.SaveOrUpdate(person); } switch ((string)member["job"]) { case "Director": movie.Director = person; break; case "Producer": producers.Add(person); break; case "Actor": actors.Add(person); break; } } movie.Producers = producers; movie.Actors = actors; return movie; }