private bool dbPutAnimalType(int id, AnimalTypeRepresentation animalType) { var animalTypeInDatabase = db.AnimalTypes.Find(id); if (animalTypeInDatabase == null) { return(false); } foreach (var ringStations in animalTypeInDatabase.RingStations) { ringStations.AnimalTypes.Remove(animalTypeInDatabase); } animalTypeInDatabase.RingStations = new List <RingStation>(); foreach (var ringStation in animalType.RingStations) { var ringStationInDatabase = db.RingStations.FirstOrDefault(elem => elem.Name == ringStation.Name); if (ringStationInDatabase == null) { ringStationInDatabase = new RingStation() { Name = ringStation.Name }; } animalTypeInDatabase.RingStations.Add(ringStationInDatabase); ringStationInDatabase.AnimalTypes.Add(animalTypeInDatabase); } if (animalTypeInDatabase.AnimalGenus != null) { animalTypeInDatabase.AnimalGenus.AnimalTypes.Remove(animalTypeInDatabase); animalTypeInDatabase.AnimalGenus = null; } if (animalType.AnimalGenus != null) { var animalGenusInDb = db.AnimalGenuses.FirstOrDefault(elem => elem.Name == animalType.AnimalGenus.Name); if (animalGenusInDb == null) { animalGenusInDb = new AnimalGenus() { Name = animalType.AnimalGenus.Name }; } animalTypeInDatabase.AnimalGenus = animalGenusInDb; animalGenusInDb.AnimalTypes.Add(animalTypeInDatabase); } animalTypeInDatabase.Name = animalType.Name; db.SaveChanges(); return(true); }
private AnimalTypeRepresentation GetAnimalType(AnimalType animalType) { var representation = new AnimalTypeRepresentation() { Id = animalType.Id, Name = animalType.Name }; representation.Links.Add(LinkTemplates.AnimalTypes.DeleteAnimalType.CreateLink(new { id = animalType.Id })); representation.Links.Add(LinkTemplates.AnimalTypes.UpdateAnimalType.CreateLink(new { id = animalType.Id })); return(representation); }
private AnimalTypeRepresentation GetAnimalType(AnimalType animalType) { var representation = new AnimalTypeRepresentation() { Id = animalType.Id, Name = animalType.Name }; representation.Links.Add(LinkTemplates.AnimalTypes.DeleteAnimalType.CreateLink(new { id = animalType.Id })); representation.Links.Add(LinkTemplates.AnimalTypes.UpdateAnimalType.CreateLink(new { id = animalType.Id })); representation.AnimalGenus = animalType.AnimalGenus == null ? null : GetAnimalGenus(animalType.AnimalGenus); representation.RingStations = animalType.RingStations.Select(ringStation => GetRingStation(ringStation)).ToList(); return(representation); }
public IHttpActionResult PutAnimalType(int id, AnimalTypeRepresentation animalType) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (dbPutAnimalType(id, animalType)) { return(StatusCode(HttpStatusCode.NoContent)); } else { return(NotFound()); } }
private AnimalType dbPostAnimalType(AnimalTypeRepresentation animalType) { var animalTypeInDatabase = db.AnimalTypes.FirstOrDefault(elem => elem.Name == animalType.Name); if (animalTypeInDatabase != null) { return(null); } animalTypeInDatabase = new AnimalType() { Name = animalType.Name }; db.AnimalTypes.Add(animalTypeInDatabase); foreach (var ringStation in animalType.RingStations) { var ringStationInDatabase = db.RingStations.FirstOrDefault(elem => elem.Name == ringStation.Name); if (ringStationInDatabase == null) { ringStationInDatabase = new RingStation() { Name = ringStation.Name }; } animalTypeInDatabase.RingStations.Add(ringStationInDatabase); ringStationInDatabase.AnimalTypes.Add(animalTypeInDatabase); } if (animalType.AnimalGenus != null) { var animalGenusInDb = db.AnimalGenuses.FirstOrDefault(elem => elem.Name == animalType.AnimalGenus.Name); if (animalGenusInDb == null) { animalGenusInDb = new AnimalGenus() { Name = animalType.AnimalGenus.Name }; } animalTypeInDatabase.AnimalGenus = animalGenusInDb; animalGenusInDb.AnimalTypes.Add(animalTypeInDatabase); } db.SaveChanges(); return(animalTypeInDatabase); }
public IHttpActionResult PostAnimalType(AnimalTypeRepresentation animalType) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var animalTypeInDatabase = dbPostAnimalType(animalType); if (animalTypeInDatabase != null) { return(CreatedAtRoute("DefaultApi", new { id = animalTypeInDatabase.Id }, GetAnimalType(animalTypeInDatabase))); } else { return(BadRequest()); } }