コード例 #1
0
ファイル: ContextInitializer.cs プロジェクト: ippobm/PPVR
        protected override void Seed(AppDbContext context)
        {
            var path =
                @"C:\Projects\PPVR\src\PPVR.WebApp\bin\Migrations\dataset\consulta_cand_2016\consulta_cand_2016_MG.txt";

            using (var streamReader = new StreamReader(path, Encoding.GetEncoding("ISO-8859-1")))
            {
                string line;

                while ((line = streamReader.ReadLine()) != null)
                {
                    var c = line.Split(';');

                    if (c.Length != 46)
                    {
                        throw new Exception("aaa");
                    }

                    for (var i = 0; i < c.Length; i++)
                    {
                        c[i] = c[i].Substring(1, c[i].Length - 2);
                    }

                    var situacaoCandidato = c[16];

                    if (situacaoCandidato == "DEFERIDO")
                    {
                        #region Eleição

                        var eleicaoAno       = int.Parse(c[2]);
                        var eleicaoDescricao = c[4];
                        var eleicaoTurno     = byte.Parse(c[3]);

                        var eleicao =
                            context.Eleicoes.FirstOrDefault(
                                x => x.Ano == eleicaoAno && x.Descricao == eleicaoDescricao && x.Turno == eleicaoTurno);

                        if (eleicao == null)
                        {
                            eleicao = new Eleicao
                            {
                                Descricao = eleicaoDescricao,
                                Ano       = eleicaoAno,
                                Turno     = eleicaoTurno
                            };
                        }

                        #endregion

                        #region Partido

                        var numeroPartido = byte.Parse(c[17]);
                        var partido       = context.Partidos.FirstOrDefault(x => x.NumeroEleitoral == numeroPartido);

                        if (partido == null)
                        {
                            partido = new Partido
                            {
                                NumeroEleitoral = numeroPartido,
                                Nome            = c[19],
                                Sigla           = c[18]
                            };
                        }

                        #endregion

                        CargoEletivo cargo;
                        Enum.TryParse(c[9], true, out cargo);

                        var candidato = new Candidato
                        {
                            SiglaUnidadeFederacao     = c[5],
                            SiglaUnidadeEleitoral     = c[6],
                            DescricaoUnidadeEleitoral = c[7],
                            Nome     = c[10],
                            NomeUrna = c[14],
                            Partido  = partido,
                            Eleicao  = eleicao
                        };

                        var numeroEleitoral = int.Parse(c[12]);
                        candidato.SetNumeroEleitoral(cargo, numeroEleitoral);

                        context.Candidatos.Add(candidato);
                        context.SaveChanges();
                    }
                }
            }
        }