private bool dbPutPark(int id, ParkRepresentation park) { var parkInDb = db.Parks.Find(id); if (parkInDb == null) { return(false); } foreach (var animalGenus in parkInDb.AnimalGenuses) { animalGenus.Parks.Remove(parkInDb); } parkInDb.AnimalGenuses = new List <AnimalGenus>(); foreach (var animalGenus in park.AnimalGenuses) { var animalGenusInDatabase = db.AnimalGenuses.FirstOrDefault(elem => elem.Name == animalGenus.Name); if (animalGenusInDatabase == null) { animalGenusInDatabase = new AnimalGenus() { Name = animalGenus.Name }; } animalGenusInDatabase.Parks.Add(parkInDb); parkInDb.AnimalGenuses.Add(animalGenusInDatabase); } foreach (var ringStation in parkInDb.RingStations) { ringStation.Park = null; } parkInDb.RingStations = new List <RingStation>(); foreach (var ringStation in park.RingStations) { var ringStationInDatabase = db.RingStations.FirstOrDefault(elem => elem.Name == ringStation.Name); if (ringStationInDatabase == null || (ringStationInDatabase != null && ringStationInDatabase.Park != null && !ringStationInDatabase.Park.Equals(parkInDb))) { ringStationInDatabase = new RingStation() { Name = ringStation.Name }; } ringStationInDatabase.Park = parkInDb; parkInDb.RingStations.Add(ringStationInDatabase); } parkInDb.Name = park.Name; db.SaveChanges(); return(true); }
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 RingStationRepresentation GetRingStation(RingStation ringStation) { var representation = new RingStationRepresentation() { Id = ringStation.Id, Name = ringStation.Name }; representation.Links.Add(LinkTemplates.RingStations.DeleteRingStation.CreateLink(new { id = ringStation.Id })); representation.Links.Add(LinkTemplates.RingStations.UpdateRingStation.CreateLink(new { id = ringStation.Id })); return(representation); }
private RingStationRepresentation GetRingStation(RingStation ringStation) { var representation = new RingStationRepresentation() { Id = ringStation.Id, Name = ringStation.Name }; representation.Links.Add(LinkTemplates.RingStations.DeleteRingStation.CreateLink(new { id = ringStation.Id })); representation.Links.Add(LinkTemplates.RingStations.UpdateRingStation.CreateLink(new { id = ringStation.Id })); representation.Park = ringStation.Park == null ? null : GetPark(ringStation.Park); representation.AnimalTypes = ringStation.AnimalTypes.Select(animalType => GetAnimalType(animalType)).ToList(); return(representation); }
private RingStation dbPostRingStation(RingStationRepresentation ringStation) { var ringStationInDatabase = db.RingStations.FirstOrDefault(elem => elem.Name == ringStation.Name); if (ringStationInDatabase != null) { return(null); } ringStationInDatabase = new RingStation() { Name = ringStation.Name }; db.RingStations.Add(ringStationInDatabase); foreach (var animalType in ringStation.AnimalTypes) { var animalTypeInDatabase = db.AnimalTypes.FirstOrDefault(elem => elem.Name == animalType.Name); if (animalTypeInDatabase == null) { animalTypeInDatabase = new AnimalType() { Name = animalType.Name }; } animalTypeInDatabase.RingStations.Add(ringStationInDatabase); ringStationInDatabase.AnimalTypes.Add(animalTypeInDatabase); } if (ringStation.Park != null) { var parkInDb = db.Parks.FirstOrDefault(elem => elem.Name == ringStation.Park.Name); if (parkInDb == null) { parkInDb = new Park() { Name = ringStation.Park.Name }; } ringStationInDatabase.Park = parkInDb; parkInDb.RingStations.Add(ringStationInDatabase); } db.SaveChanges(); return(ringStationInDatabase); }
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); }
private Park dbPostPark(ParkRepresentation park) { if (db.Parks.FirstOrDefault(elem => elem.Name == park.Name) != null) { return(null); } var parkInDb = new Park() { Name = park.Name }; db.Parks.Add(parkInDb); foreach (var animalGenus in park.AnimalGenuses) { var animalGenusInDb = db.AnimalGenuses.FirstOrDefault(elem => elem.Name == animalGenus.Name); if (animalGenusInDb == null) { animalGenusInDb = new AnimalGenus() { Name = animalGenus.Name }; } parkInDb.AnimalGenuses.Add(animalGenusInDb); animalGenusInDb.Parks.Add(parkInDb); } foreach (var ringStation in park.RingStations) { var newStation = new RingStation { Name = ringStation.Name }; db.RingStations.Add(newStation); newStation.Park = parkInDb; parkInDb.RingStations.Add(newStation); } db.SaveChanges(); return(parkInDb); }
private RingStation dbDeleteRingStation(int id) { RingStation ringStation = db.RingStations.Find(id); if (ringStation == null) { return(null); } foreach (var animalType in ringStation.AnimalTypes) { animalType.RingStations.Remove(ringStation); } if (ringStation.Park != null) { ringStation.Park.RingStations.Remove(ringStation); } db.RingStations.Remove(ringStation); db.SaveChanges(); return(ringStation); }