Exemplo n.º 1
0
        // public static async void GetDataMode (string path)
        // {
        //     string url = $"https://swapi.dev/api/{path}/";


        // }
        private static void SeedFilms(dynamic json, StarwarsContext _context)
        {
            dynamic _films = json["results"];

            // parse though the films and add to the context.
            foreach (var _film in _films)
            {
                _context.Add(new Films
                {
                    Url          = _film["url"],
                    Title        = _film["title"],
                    EpisodeId    = _film["episode_id"],
                    OpeningCrawl = _film["opening_crawl"],
                    Director     = _film["director"],
                    Producer     = _film["producer"],
                    ReleaseDate  = _film["release_date"],
                    Created      = _film["created"]
                });

                // get the array objects
                var characters = _film["characters"];
                foreach (var ch in characters)
                {
                    _context.Add(new FilmToPeople {
                        FilmUrl = _film["url"], PeopleUrl = ch
                    });
                }
                var planets = _film["planets"];
                foreach (var pl in planets)
                {
                    _context.Add(new PlanetsToFilms {
                        FilmsUrl = _film["url"], PlanetUrl = pl
                    });
                }
                var starships = _film["starships"];
                foreach (var st in starships)
                {
                    _context.Add(new FilmToCraft {
                        FilmUrl = _film["url"], CraftUrl = st
                    });
                }
                var vehicles = _film["vehicles"];
                foreach (var ch in vehicles)
                {
                    _context.Add(new FilmToCraft {
                        FilmUrl = _film["url"], CraftUrl = ch
                    });
                }
                var species = _film["species"];

                foreach (var sp in species)
                {
                    _context.Add(new  FilmsToSpecies {
                        FilmUrl = _film["url"], SpeciesUrl = sp
                    });
                }
                _context.SaveChangesAsync();
            }
        }
        public async Task <bool> Add(Film film)
        {
            _context.Films.Add(film);
            try
            {
                await _context.SaveChangesAsync();

                return(true);
            }
            catch (DbUpdateException err)
            {
                logger.LogError(err.Message);
                return(false);
            }
        }
        public async Task <bool> Add(Planet planet)
        {
            try
            {
                await _context.Planets.AddAsync(planet).ConfigureAwait(false);

                await _context.SaveChangesAsync().ConfigureAwait(false);

                return(true);
            }
            catch (DbUpdateException ex)
            {
                _logger.LogError(ex.Message);
                return(false);
            }
        }
        public async Task <bool> Add(Specie specie)
        {
            try
            {
                await _context.Species.AddAsync(specie);

                await _context.SaveChangesAsync();

                return(true);
            }
            catch (Exception e)
            {
                _logger.LogInformation(e.Message);
                return(false);
            }
        }
        public async Task <AddEntityResponse <People> > Add(PeopleViewModel people)
        {
            var(Name, Height, Mass, HairColor, SkinColor, EyeColor, BirthYear, Gender, HomeWorld, Films, Vehicles, Specie) = people;
            var newPeople = new People
            {
                Name      = Name,
                Height    = Height,
                Mass      = Mass,
                HairColor = HairColor,
                SkinColor = SkinColor,
                EyeColor  = EyeColor,
                BirthYear = BirthYear,
                Gender    = Gender
            };

            if (Films != null)
            {
                var peopleFilms = Films.Select(film => new PeopleFilms {
                    FilmId = film.Id, PeopleId = newPeople.Id
                }).ToList();
                newPeople.Films = peopleFilms;
            }

            if (HomeWorld != null)
            {
                var peopleHomeworld = new Planet {
                    Id = HomeWorld.Id
                };
                _context.Planets.Attach(peopleHomeworld);
                newPeople.HomeWorld = peopleHomeworld;
            }
            if (Vehicles != null)
            {
                var peopleVehicles = Vehicles.Select(v => new VehiclePilot {
                    PeopleId = newPeople.Id, VehicleId = v.Id
                }).ToList();
                newPeople.Vehicles = peopleVehicles;
            }

            if (Specie != null)
            {
                var peopleSpecie = new Specie {
                    Id = people.Specie.Id
                };
                _context.Species.Attach(peopleSpecie);
                newPeople.Specie = peopleSpecie;
            }

            try
            {
                await _context.People.AddAsync(newPeople).ConfigureAwait(false);

                await _context.SaveChangesAsync().ConfigureAwait(false);

                return(new AddEntityResponse <People> {
                    EntitySuccessfullyAdded = true, Entity = newPeople
                });
            }

            catch (DbUpdateException ex)
            {
                _logger.LogInformation($"PeopleRpository::Add -> { ex.Message }");
                return(new AddEntityResponse <People> {
                    EntitySuccessfullyAdded = false, Entity = newPeople
                });
            }
        }
        public async Task <AddEntityResponse <Vehicle> > Add(VehicleViewModel vehicle)
        {
            var(
                Id,
                Name,
                Model,
                Manufacturer,
                CostInCredits,
                Length,
                MaxAtmosphericSpeed,
                Crew,
                Passengers,
                CargoCapacity,
                Consumables,
                VehicleClass,
                Pilots,
                Films) = vehicle;

            var newVehicle = new Vehicle
            {
                Name                = Name,
                Model               = Model,
                Manufacturer        = Manufacturer,
                CostInCredits       = CostInCredits,
                Length              = Length,
                MaxAtmosphericSpeed = MaxAtmosphericSpeed,
                Crew                = Crew,
                Passengers          = Passengers,
                CargoCapacity       = CargoCapacity,
                Consumables         = Consumables,
                VehicleClass        = VehicleClass
            };

            if (Films != null)
            {
                var vehicleFilms = Films.Select(f => new VehicleFilm {
                    FilmId = f.Id, VehicleId = newVehicle.Id
                }).ToList();
                newVehicle.Films = vehicleFilms;
            }

            if (Pilots != null)
            {
                var vehiclePilots = Pilots.Select(p => new VehiclePilot {
                    VehicleId = newVehicle.Id, PeopleId = (Guid)p.Id
                }).ToList();
            }

            var result = new AddEntityResponse <Vehicle> {
                Entity = newVehicle
            };

            try
            {
                await _context.Vehicles.AddAsync(newVehicle);

                await _context.SaveChangesAsync();

                result.EntitySuccessfullyAdded = true;
                return(result);
            }
            catch (Exception err)
            {
                _logger.LogError(err.Message);
                result.EntitySuccessfullyAdded = false;
                return(result);
            }
        }