public static Int32 LoadCSV <EntType>(String[][] campos, IEnumerable <TSEMapper> map, String path) { GC.Collect(); DateTime inicio = DateTime.Now; TSEdbContext DB = new TSEdbContext(); { int i = 0; foreach (String[] cmps in campos) { try { String jsonString = JsonObject(cmps, map); EntType entity = JsonSerializer.Deserialize <EntType>(jsonString); DB.Set(entity.GetType()).Add(entity); if (++i % 100 == 0) { //Console.Write("."); try { DB.SaveChanges(); DB.Dispose(); DB = new TSEdbContext(); } catch (Exception ex) { Console.WriteLine("Deu merda: {0}", ex.Message); Console.ReadLine(); } } } catch (Exception ex) { Console.WriteLine("Deu merda: {0}", ex.Message); Console.ReadLine(); } } try { DB.SaveChanges(); DB.Dispose(); } catch (Exception ex) { Console.WriteLine("Deu merda: {0}", ex.Message); Console.ReadLine(); } DateTime fim = DateTime.Now; TimeSpan intervalo = fim - inicio; Console.Write("Tempo: {0} ", intervalo.ToString()); } return(campos.Length); }
public static void SumValores <CnddtrType, BensType>() { GC.Collect(); TSEdbContext DB = new TSEdbContext(); { IQueryable <Candidatura> cnddtrs = (IQueryable <Candidatura>)DB.Set(typeof(CnddtrType)); IQueryable <BemCandidato> bens = (IQueryable <BemCandidato>)DB.Set(typeof(BensType)); var valores = (from bem in bens group bem by bem.BemSeqCand into bensCand select new { Cand = bensCand.Key, Bens = bensCand.Sum(b => b.BemCandValor) }).ToList(); int i = 0; foreach (var valor in valores) { Candidatura cnddtr = cnddtrs.First(c => c.SeqCand.Equals(valor.Cand)); cnddtr.TotBensValor = valor.Bens; if (++i % 100 == 0) { try { Console.Write("."); DB.SaveChanges(); DB.Dispose(); DB = new TSEdbContext(); cnddtrs = (IQueryable <Candidatura>)DB.Set(typeof(CnddtrType)); bens = (IQueryable <BemCandidato>)DB.Set(typeof(BensType)); } catch (Exception ex) { Console.WriteLine("Deu merda: {0}", ex.Message); Console.ReadLine(); } } } try { Console.WriteLine(); DB.SaveChanges(); DB.Dispose(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } }
static void Main(string[] args) { CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone(); culture.NumberFormat.NumberDecimalSeparator = "."; culture.NumberFormat.NumberGroupSeparator = ","; Thread.CurrentThread.CurrentCulture = culture; Maps maps = new Maps(); using (TSEdbContext contextDB = new TSEdbContext()) { try { contextDB.Database.CreateIfNotExists(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); Console.ReadKey(); } } String path = @"C:\Users\Paulo\Documents\Pessoal\Projeto QMR\Eleições {0}\{2}_{0}\{2}_{0}_{1}.txt"; DateTime inicio = DateTime.Now; Console.WriteLine("Inicio Programa: {0}", inicio.ToString()); LoadTSE.LoadCands <CandidatoS, CandidaturaS, BemCandidatoS>(sul, maps, path); LoadTSE.LoadCands <CandidatoMG, CandidaturaMG, BemCandidatoMG>(mg, maps, path); LoadTSE.LoadCands <CandidatoNE, CandidaturaNE, BemCandidatoNE>(nordeste, maps, path); LoadTSE.LoadCands <CandidatoSP, CandidaturaSP, BemCandidatoSP>(sp, maps, path); LoadTSE.LoadCands <CandidatoNCO, CandidaturaNCO, BemCandidatoNCO>(nortecentrooeste, maps, path); LoadTSE.LoadCands <CandidatoBAESRJ, CandidaturaBAESRJ, BemCandidatoBAESRJ>(baesrj, maps, path); TimeSpan tempo = DateTime.Now - inicio; Console.WriteLine("Tempo total: {0}", tempo.ToString()); Console.ReadLine(); }