public static void run() { var db = new SqliteDB("myStuff.db"); Console.WriteLine($"Database is at {db.DatabaseFileName}"); // Create a DB Schema db.CreateTables() .Add <IntSample>() .Commit(); // reset before sample db.Execute("DELETE FROM IntSample"); var bobAccount = new IntSample() { Id = 0, // will be generated Name = "bob" }; //When using INT PrimaryKeys, the column becomes the sqlite's _rowid_ var id = db.InsertOrReplace(bobAccount); Console.WriteLine($"Inserted with ID {id}"); // bobAccount.Id is still zero // update bob bobAccount = db.Get <IntSample>(id); Console.WriteLine($"Name is still `{bobAccount.Name}`"); Console.WriteLine($"Previous inserted ID was: `{id}` and bobAccount.Id: `{bobAccount.Id}`"); bobAccount.Name = "Bob's account"; var id2 = db.InsertOrReplace(bobAccount); foreach (var bobs in db.GetAll <IntSample>()) { Console.WriteLine($"Id: {bobs.Id} Name: {bobs.Name}"); } }
public static void run() { SqliteDB db = new SqliteDB("myStuff.db"); Console.WriteLine($"Database is at {db.DatabaseFileName}"); // Create a DB Schema var result = db.CreateTables() .Add <MyData>() .Commit(); if (result.Length > 0 && result[0].WasTableCreated) { Console.WriteLine("A new table was created!"); } var d = new MyData() { MyId = (int)DateTimeOffset.Now.ToUnixTimeSeconds(), MyName = "My name is bob", MyBirthDate = DateTime.Now, MyUID = Guid.Empty, // When empty, a new Guid will be generated MyWebsite = new Uri("http://example.com"), MyFavColor = System.Drawing.Color.FromArgb(101, 102, 103, 104), MyDecimalValue = 123.4M, MyDoubleValue = 456.7, MyFloatValue = 789.3f, MyEnum = MyData.eIntEnum.Zero, }; Console.WriteLine($"New data to insert: Id={d.MyId} MyUID={d.MyUID}"); db.Insert(d); // get all data var allData = db.GetAll <MyData>(); Console.WriteLine("All data:"); foreach (var rowData in allData) { Console.WriteLine($" > {rowData.MyId} {rowData.MyName} {rowData.MyUID}"); } //get "bob" data var bobs = db.Query <MyData>("SELECT * FROM MyData WHERE MyName LIKE @name ", new { name = "%bob%" }); Console.WriteLine("All bob data:"); foreach (var rowData in bobs) { Console.WriteLine($" > {rowData.MyId} {rowData.MyName} {rowData.MyUID}"); } // change frst bob var firstBob = bobs.First(); firstBob.MyName = "Changed bob"; db.InsertOrReplace(firstBob); // show all data again Console.WriteLine("All data:"); foreach (var rowData in allData) { Console.WriteLine($" > {rowData.MyId} {rowData.MyName} {rowData.MyUID}"); } }
private static void Spider_FetchCompleted(object Sender, FetchCompleteEventArgs args) { var spider = (SimpleSpider)Sender; var hObj = args.GetHObject(); if (args.Link.EndsWith("/quem-sao")) { var lista = hObj["select > #parametro-nome > option"].GetAttributeValues("value"); spider.AddPages(lista.Where(i => i.Length > 0) .Select(c => new Uri($"https://www.camara.leg.br/deputados/{c}")), args.Link); for (int ano = 2021; ano >= 2020; ano--) { spider.AddPages(lista.Where(i => i.Length > 0) .Select(c => new Uri($"https://www.camara.leg.br/deputados/{c}/pessoal-gabinete?ano={ano}")), args.Link); } } else if (args.Link.Contains("/pessoal-gabinete?")) { string nomeDeputado = hObj["h1"].Trim(); int ano = args.Link.Uri.ToString().Split('=')[1].ToInt(); int deputado = args.Link.Uri.ToString().Split('/')[4].ToInt(); var rows = hObj["tr"]; var pessoas = new List <PessoalModel>(); foreach (var row in rows) { var cols = row["td"].TrimAll(); if (cols.Length == 0) { continue; } DateTime inicio = new DateTime(1900, 01, 01); DateTime fim = new DateTime(1900, 01, 01); var datas = cols[3].Split(' '); if (cols[3].Contains("Desde")) { inicio = datas[1].ToDateTime(); fim = DateTime.Now; } else if (cols[3].Contains("De ")) { inicio = datas[1].ToDateTime(); fim = datas[3].ToDateTime(); } var pessoa = new PessoalModel() { Ano = ano, IdDeputado = deputado, NomeDeputado = nomeDeputado, NomeFuncionario = cols[0], GrupoFuncional = cols[1], Cargo = cols[2], InicioExercicio = inicio, FimExercicio = fim, UrlRemuneracao = "", }; pessoas.Add(pessoa); } db.BulkInsert(pessoas, addReplace: true); } else { //Página do deputado int id = args.Link.Uri.ToString().Split('/')[4].ToInt(); Deputado dep = new Deputado() { Id = id, Nome = hObj["h2 > #nomedeputado"].Trim(), PartidoLideranca = hObj["span > .foto-deputado__partido-estado"].Trim(), }; foreach (var li in hObj["ul > .informacoes-deputado > li"]) { var hdr = li["span"].Trim(); switch (hdr) { case "Nome Civil:": dep.NomeCivil = li.Children("#text").Trim(); break; case "Telefone:": dep.Telefone = li.Children("#text").Trim(); break; case "E-mail:": dep.EMail = li["a"].Trim(); break; case "Endereço:": dep.Endereco = li.Children("#text").Trim(); break; case "Data de Nascimento:": dep.DataNascimento = li.Children("#text").Trim().ToDateTime(); break; case "Naturalidade:": dep.Naturalidade = li.Children("#text").Trim(); dep.Naturalidade_UF = dep.Naturalidade.Split('-')[1].Trim(); break; default: break; } } db.InsertOrReplace(dep); } }