示例#1
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }
示例#7
0
        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);
        }
示例#8
0
        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);
        }