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(); } }
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(); } }