示例#1
0
        public void SaveList(IGetFromAPI <Planet> getFrom)
        {
            string urlNext;

            using (var connection = new SqlConnection())
            {
                connection.ConnectionString = ConfigurationManager.ConnectionStrings["StarWarsConnectionString"].ConnectionString;
                connection.Open();

                do
                {
                    List <Planet>    planets  = getFrom.GetListObjects(Url, out urlNext);
                    List <DbCommand> commands = new List <DbCommand>();

                    foreach (var planet in planets)
                    {
                        var command = new SqlCommand
                        {
                            Connection  = connection,
                            CommandText = $"insert into planets(name,rotationPeriod,orbitalPeriod,diameter,climate,gravity,terrain,surfaceWater,populationPlanet) values(@name, @rotationPeriod,@orbitalPeriod,@diameter,@climate,@gravity, @terrain, @surfaceWater,@population)"
                        };

                        command.Parameters.AddRange(new SqlParameter[]
                        {
                            new SqlParameter("@name", planet.Name),
                            new SqlParameter("@rotationPeriod", planet.RotationPeriod),
                            new SqlParameter("@orbitalPeriod", planet.OrbitalPeriod),
                            new SqlParameter("@diameter", planet.Diameter),
                            new SqlParameter("@climate", planet.Climate),
                            new SqlParameter("@gravity", planet.Gravity),
                            new SqlParameter("@terrain", planet.Terrain),
                            new SqlParameter("@surfaceWater", planet.Terrain),
                            new SqlParameter("@population", planet.Population),
                        });

                        commands.Add(command);

                        Console.WriteLine("Creating the command...");
                    }

                    Console.WriteLine("Creating transaction...");
                    ExecuteInTransaction(connection, commands);
                    Console.WriteLine("Commiting transaction...");

                    Url = urlNext;
                } while (urlNext != string.Empty);
            }
        }
示例#2
0
        public void SaveList(IGetFromAPI <Person> getFrom)
        {
            string urlNext;

            using (var connection = new SqlConnection())
            {
                connection.ConnectionString = ConfigurationManager.ConnectionStrings["StarWarsConnectionString"].ConnectionString;
                connection.Open();
                do
                {
                    List <Person>    people   = getFrom.GetListObjects(Url, out urlNext);
                    List <DbCommand> commands = new List <DbCommand>();
                    foreach (var person in people)
                    {
                        var command = new SqlCommand
                        {
                            Connection  = connection,
                            CommandText = $"insert into people values (@name,@height,@mass,@hairColor,@skinColor,@eyeColor,@gender,@homeWorld,@url)"
                        };

                        command.Parameters.AddRange(new SqlParameter[]
                        {
                            new SqlParameter("@name", person.Name),
                            new SqlParameter("@height", person.Height),
                            new SqlParameter("@mass", person.Mass),
                            new SqlParameter("@hairColor", person.HairColor),
                            new SqlParameter("@skinColor", person.SkinColor),
                            new SqlParameter("@eyeColor", person.EyeColor),
                            new SqlParameter("@gender", person.Gender),
                            new SqlParameter("@homeworld", person.HomeworldId),
                            new SqlParameter("@url", person.Url),
                        });
                        commands.Add(command);
                        Console.WriteLine("Creating the command...");
                    }
                    ExecuteInTransaction(connection, commands);
                    Url = urlNext;
                } while (urlNext != string.Empty);
            }
        }