コード例 #1
0
        public static void AddCandidateList(string filename)
        {
            const int firstnameIndex = 1;
            const int lastnameIndex = 2;
            const int partynameIndex = 3;
            const int bundeslandIndex = 5;
            const int positionIndex = 6;

            var parsedFile = DataImportGeneral.ParseFile(filename);

            const int startIndex = 1;

            using (var context = new ElectionDBEntities())
            {
                var bundeslandDictionary = context.Bundeslands.ToDictionary(b => b.Name, b => b.Id);

                for (var i = startIndex; i < parsedFile.Count; i++)
                {
                    var line = parsedFile.ElementAt(i);

                    var result = GetTitleFirstnameLastnamePartynameFromLine(line);
                    var firstname = result.ElementAt(firstnameIndex);
                    var lastname = result.ElementAt(lastnameIndex);
                    var partyname = result.ElementAt(partynameIndex);

                    var bundeslandName = line[bundeslandIndex].Trim();
                    if (string.IsNullOrWhiteSpace(bundeslandName))
                    {
                        continue;
                    }

                    var bundeslandId = bundeslandDictionary[bundeslandName];

                    var position = int.Parse(line[positionIndex]);

                    var existing = GetExistingCandidate(context, firstname, lastname, partyname, line[2]);

                    var entry = new CandidateList
                    {
                        Election_Id = electionId,
                        Bundesland_Id = bundeslandId,
                        Person_Id = existing.Id,
                        Position = position
                    };

                    context.CandidateLists.Add(entry);

                    Console.WriteLine("Added person {0} for bundesland {1} on position {2} in election {3}", existing.Id, bundeslandId, position, electionId);
                }

                context.SaveChanges();
            }
        }
コード例 #2
0
        public static void AddCandidateList(string filename)
        {
            const int personIdIndex = 1;
            const int bundeslandIndex = 8;
            const int positionIndex = 9;

            var parsedFile = DataImportGeneral.ParseFile(filename);

            const int startIndex = 1;

            using (var context = new ElectionDBEntities())
            {
                var idDictionary = context.Bundeslands.ToDictionary(d => d.Name, d => d.Id);

                for (var i = startIndex; i < parsedFile.Count; i++)
                {
                    var line = parsedFile.ElementAt(i);

                    var bundeslandShort = line[bundeslandIndex];
                    if (string.IsNullOrWhiteSpace(bundeslandShort))
                    {
                        continue;
                    }

                    var bundeslandName = DataImportGeneral.BundeslaenderShortDictionary[bundeslandShort];
                    var bundeslandId = idDictionary[bundeslandName];

                    var personId = int.Parse(line[personIdIndex]);
                    var position = int.Parse(line[positionIndex]);

                    var entry = new CandidateList
                    {
                        Election_Id = electionId,
                        Person_Id = personId,
                        Bundesland_Id = bundeslandId,
                        Position = position
                    };

                    context.CandidateLists.Add(entry);
                }

                context.SaveChanges();
            }
        }