public async Task <IActionResult> PostAsync([FromBody] CollisionDTO value) { var now = DateTime.Now; try { var collision = await FillCollision(value); collision.LastSeen = now; var existing = await CollisionRepository.Find(value.Date, collision.Location); if (existing != null) { collision.Key = existing.Key; collision.FirstSeen = existing.FirstSeen == DateTime.MinValue ? now : existing.FirstSeen; await CollisionRepository.Update(collision); } else { collision.FirstSeen = now; await CollisionRepository.Add(collision); } return(Ok(Mapper.Map <CollisionDTO>(collision))); } catch (Exception e) { Logger.LogError("Error adding collision:\n{message}", e.Message); return(BadRequest(e.ToString())); } }
public async void ShouldUpdateCollision() { //Given var collision = Collisions[0]; collision.Helmet = true; //When await Repository.Add(collision); collision.Helmet = false; await Repository.Update(collision); collision = await Repository.Find(1); //Then Assert.Equal(1, await Repository.Count()); Assert.Equal(false, collision.Helmet); }