private void recuperarSalvarRegistros(int v1, int v2, Type item) { if (modelocrud.TotalRegistro(item, BDcomum.conecta2) > modelocrud.Modelos.Where(m => m.GetType() == item || m.GetType().IsSubclassOf(item)).ToList().Count) { while (v1 <= v2) { if (modelocrud.Modelos.Where(m => m.GetType() == item).ToList().FirstOrDefault(i => i.Id == v1) == null) { modelocrud m = null; modelocrud m2 = null; var listaTypes = modelocrud.listTypesSon(modelocrud.ReturnBase(item)); foreach (var i in listaTypes) { m = (modelocrud)Activator.CreateInstance(i); m2 = (modelocrud)Activator.CreateInstance(i); m.stringConexao = BDcomum.conecta2; m2.stringConexao = BDcomum.conecta1; if (m.recuperar(v1) && !m2.recuperar(v1)) { m.Id = 0; m.stringConexao = BDcomum.conecta1; m.salvar(BDcomum.conecta1); modelocrud.Modelos.Add(m); notifyIcon.ShowBalloonTip(5000, "Info", $"Uma informação do banco de dados remoto foi inserida neste programa. - {m.GetType().Name} - {m.Id}", ToolTipIcon.Info); } } } v1++; } } }
private void buscarLista(object list, Type itemType, SqlDataReader dr2) { IList collection = (IList)list; while (dr2.Read()) { var num = int.Parse(Convert.ToString(dr2["Id"])); modelocrud mod = null; if (itemType.IsAbstract) { mod = modelocrud.buscarConcreto(itemType, num); } else { mod = (modelocrud)Activator.CreateInstance(itemType); } mod.Id = num; mod.executando = true; mod.stringConexao = BDcomum.conecta1; if (mod.recuperar(mod.Id)) { collection.Add(mod); } } }
private void VerficaPropertyClassSetProperties(Type tipo, int id) { try { foreach (var item in tipo.GetProperties().Where(p => !p.PropertyType.IsAbstract && p.PropertyType != typeof(string) && p.PropertyType != typeof(DateTime) && p.PropertyType.Name != "List`1" && p.PropertyType.IsClass && p.GetType().GetProperties() .Where(pr => p.ReflectedType == pr.DeclaringType && pr.Name == "Id").ToList().Count == 1).ToList()) { object objeto = Activator.CreateInstance(item.PropertyType); modelocrud modelo = (modelocrud)objeto; modelo.Id = id; modelo.stringConexao = BDcomum.conecta1; modelo.executando = true; if (modelo.GetType().GetProperties() .Where(p => p.ReflectedType == p.DeclaringType && p.Name == "Id").ToList().Count == 1) { modelo.recuperar(Model.Id); } foreach (var item2 in Model.GetType().GetProperties()) { if (item == item2) { item2.SetValue(Model, modelo); } } } } catch (Exception ex) { throw new Exception(ex.InnerException.Message); } }
public List <modelocrud> BuscarPorRestricao(modelocrud modelo, string tipo, string comando) { var comand = ""; var innerjoin = ""; DataTable dtable = new DataTable(); if (modelo is business.classes.Abstrato.Membro) { innerjoin = " inner join Membro as MEM on M.Id=MEM.Id inner join PessoaDado as PD on MEM.Id=P.Id" + " inner join Pessoa as P on PD.Id=P.Id"; } if (modelo is business.classes.Abstrato.MembroLgpd) { innerjoin = " inner join MembroLgpd as MEM on M.Id=MEM.Id inner join PessoaLgpd as PL on MEM.Id=P.Id" + " inner join Pessoa as P on PD.Id=P.Id"; } if (modelo is business.classes.Pessoas.PessoaDado) { innerjoin = " inner join PessoaDado as PD on M.Id=P.Id inner join Pessoa as P on PD.Id=P.Id "; } if (modelo is business.classes.Pessoas.PessoaLgpd) { innerjoin = " inner join PessoaLgpd as PD on M.Id=P.Id inner join Pessoa as P on PD.Id=P.Id "; } if (modelo != null) { comand = $"select * from {modelo.GetType().Name} as M {innerjoin} "; } if (modelo == null) { comand = $"select * from {tipo} as M {innerjoin} "; } if (comando != "") { comand += $" where {comando} "; } SqlCommand c = new SqlCommand(comand, bd.obterconexao()); SqlDataAdapter objadp = new SqlDataAdapter(c); objadp.Fill(dtable); if (modelo == null && tipo == "Pessoa" || modelo == null && tipo == "PessoaLgpd" || modelo is business.classes.Pessoas.Visitante || modelo is business.classes.Pessoas.Crianca || modelo is business.classes.Pessoas.Membro_Aclamacao || modelo is business.classes.Pessoas.Membro_Batismo || modelo is business.classes.Pessoas.Membro_Reconciliacao || modelo is business.classes.Pessoas.Membro_Transferencia || modelo is business.classes.PessoasLgpd.VisitanteLgpd || modelo is business.classes.PessoasLgpd.CriancaLgpd || modelo is business.classes.PessoasLgpd.Membro_AclamacaoLgpd || modelo is business.classes.PessoasLgpd.Membro_BatismoLgpd || modelo is business.classes.PessoasLgpd.Membro_ReconciliacaoLgpd || modelo is business.classes.PessoasLgpd.Membro_TransferenciaLgpd) { List <modelocrud> l = new List <modelocrud>(); var listaPessoa = business.classes.Abstrato.Pessoa.recuperarTodos() .OfType <business.classes.Abstrato.Pessoa>().ToList(); var lista = new List <modelocrud>(); foreach (var itemlista in listaPessoa) { lista.Add(itemlista.recuperar(itemlista.IdPessoa)[0]); } foreach (var item in dtable.Select("")) { l.Add(lista.OfType <business.classes.Abstrato.Pessoa>() .First(i => i.IdPessoa == int.Parse(item["IdPessoa"].ToString()))); } return(l); } if (modelo == null && tipo == "Ministerio" || modelo is business.classes.Ministerio.Lider_Celula || modelo is business.classes.Ministerio.Lider_Celula_Treinamento || modelo is business.classes.Ministerio.Lider_Ministerio || modelo is business.classes.Ministerio.Lider_Ministerio_Treinamento || modelo is business.classes.Ministerio.Supervisor_Celula || modelo is business.classes.Ministerio.Supervisor_Celula_Treinamento || modelo is business.classes.Ministerio.Supervisor_Ministerio || modelo is business.classes.Ministerio.Supervisor_Ministerio_Treinamento) { List <modelocrud> l = new List <modelocrud>(); var listaMinisterio = business.classes.Abstrato.Ministerio.recuperarTodosMinisterios() .OfType <business.classes.Abstrato.Ministerio>().ToList(); var lista = new List <modelocrud>(); foreach (var itemlista in listaMinisterio) { lista.Add(itemlista.recuperar(itemlista.IdMinisterio)[0]); } foreach (var item in dtable.Select("")) { l.Add(lista.OfType <business.classes.Abstrato.Ministerio>() .First(i => i.IdMinisterio == int.Parse(item["IdMinisterio"].ToString()))); } return(l); } if (modelo == null && tipo == "Celula" || modelo is business.classes.Celulas.Celula_Adolescente || modelo is business.classes.Celulas.Celula_Adulto || modelo is business.classes.Celulas.Celula_Casado || modelo is business.classes.Celulas.Celula_Crianca || modelo is business.classes.Celulas.Celula_Jovem) { List <modelocrud> l = new List <modelocrud>(); var listaCelula = business.classes.Abstrato.Celula.recuperarTodasCelulas() .OfType <business.classes.Abstrato.Celula>().ToList(); var lista = new List <modelocrud>(); foreach (var itemlista in listaCelula) { lista.Add(itemlista.recuperar(itemlista.IdCelula)[0]); } foreach (var item in dtable.Select("")) { l.Add(lista.OfType <business.classes.Abstrato.Celula>() .First(i => i.IdCelula == int.Parse(item["IdCelula"].ToString()))); } return(l); } if (modelo is business.classes.Historico || modelo is business.classes.Reuniao || modelo is business.classes.Chamada || modelo is business.classes.MudancaEstado || modelo is business.classes.Endereco || modelo is business.classes.Telefone) { List <modelocrud> l = new List <modelocrud>(); foreach (var item in dtable.Select("")) { l.Add(modelo.recuperar(int.Parse(item["Id"].ToString()))[0]); } return(l); } return(null); }
public bool SetProperties(Type tipo) { try { Type t = Model.GetType(); if (tipo != Model.GetType()) { while (t != typeof(modelocrud)) { if (t.BaseType == tipo) { break; } else { t = t.BaseType; } } Model.Select_padrao = Model.Select_padrao.Replace(t.Name, tipo.Name); } var propertiesDeclaring = tipo.GetProperties().Where(e => e.ReflectedType == e.DeclaringType).ToList(); if (Model.conexao == null) { Model.conexao = Model.bd.obterconexao(Model.stringConexao); } if (Model.conexao.State == ConnectionState.Closed) { Model.conexao = Model.bd.obterconexao(Model.stringConexao); } SqlCommand comando = new SqlCommand(Model.Select_padrao, Model.conexao); try { Model.dr = comando.ExecuteReader(); } catch (Exception ex) { MessageBox.Show(ex.Message + " - " + Model.GetType()); } if (Model.conexao != null) { if (Model.dr.HasRows == false) { Model.dr.Close(); Model.bd.fecharconexao(Model.conexao); return(false); } try { Model.dr.Read(); foreach (var property in propertiesDeclaring) { Setar(property); } Model.dr.Close(); foreach (var property in propertiesDeclaring) { if (property.PropertyType.Name == "List`1" && !Model.executando) { Type itemType = property.PropertyType.GetGenericArguments()[0]; var lista = Activator.CreateInstance(property.PropertyType); bool condicao = false; for (var i = 0; i < itemType.Name.Length; i++) { if (i > 0 && char.IsUpper(itemType.Name[i]) && itemType.BaseType == typeof(modelocrud) && itemType.GetProperties().Where(e => e.ReflectedType == e.DeclaringType).ToList().Count == 4 && itemType.GetProperties().Where(e => e.ReflectedType == e.DeclaringType && e.PropertyType == typeof(int)).ToList().Count == 2) { condicao = true; break; } } if (condicao) { Type baseModel = modelocrud.ReturnBase(Model.GetType()); var propert = itemType.GetProperties().First(p => p.PropertyType == typeof(int) && p.Name.ToLower().Contains(baseModel.Name.ToLower())); SqlCommand comando2 = new SqlCommand($"select Id from {itemType.Name} where {propert.Name}={Model.Id}" , Model.conexao); SqlDataReader dr2 = comando2.ExecuteReader(); if (dr2.HasRows) { buscarLista(lista, itemType, dr2); } dr2.Close(); property.SetValue(Model, lista); } else { Type baseModel = modelocrud.ReturnBase(Model.GetType()); var propert = itemType.GetProperties().First(p => p.PropertyType == typeof(int) && p.Name.ToLower().Contains(baseModel.Name.ToLower()) || p.PropertyType == typeof(int?) && p.Name.ToLower().Contains(baseModel.Name.ToLower())); SqlCommand comando2 = new SqlCommand($"select Id from {itemType.Name} where {propert.Name}={Model.Id}" , Model.conexao); SqlDataReader dr2 = comando2.ExecuteReader(); if (dr2.HasRows) { buscarLista(lista, itemType, dr2); } dr2.Close(); property.SetValue(Model, lista); } } } } catch (Exception ex) { Model.dr.Close(); Model.TratarExcessao(ex); return(false); } finally { Model.bd.fecharconexao(Model.conexao); } if (Model.GetType().GetProperties().Where(p => p.PropertyType.GetProperties().Where(pr => pr.ReflectedType == pr.DeclaringType && pr.Name == "Id").ToList().Count != 0) .ToList().Count != 0) { VerficaPropertyClassSetProperties(Model.GetType(), Model.Id); } for (int j = 0; j < 5; j++) { if (Model.GetType().GetProperties().ToList().FirstOrDefault(p => p.PropertyType.IsClass && p.GetValue(Model) == null && p.PropertyType.IsAbstract || p.PropertyType.IsClass && p.GetValue(Model) == null && p.PropertyType.BaseType == typeof(modelocrud)) != null) { var prop = Model.GetType().GetProperties().ToList().FirstOrDefault(p => p.PropertyType.IsClass && p.GetValue(Model) == null && p.PropertyType.IsAbstract || p.PropertyType.IsClass && p.GetValue(Model) == null && p.PropertyType.BaseType == typeof(modelocrud)); var propInt = Model.GetType().GetProperties().ToList() .First(p => p.Name.ToLower().Contains(prop.Name.ToLower())); int?valor = (int?)propInt.GetValue(Model, null); modelocrud model = null; if (valor != null) { model = modelocrud.Modelos.FirstOrDefault(m => m.GetType() .IsSubclassOf(prop.PropertyType) && m.Id == valor || m.GetType() == prop.PropertyType && m.Id == valor); } if (model == null && valor != null) { var listaTypes = prop.PropertyType.Assembly.GetTypes() .Where(type => !type.IsAbstract && type.IsSubclassOf(prop.PropertyType)) .Select(type => type).ToList(); bool condicao = false; foreach (var item in listaTypes) { object objeto = Activator.CreateInstance(item); model = (modelocrud)objeto; model.Id = (int)valor; model.stringConexao = BDcomum.conecta1; model.executando = true; condicao = model.recuperar((int)valor); if (condicao) { break; } } if (model == null) { object objeto = Activator.CreateInstance(prop.PropertyType); model = (modelocrud)objeto; model.Id = (int)valor; model.stringConexao = BDcomum.conecta1; model.executando = true; model.recuperar((int)valor); } } if (model != null) { prop.SetValue(Model, model); } } } Model.T = Model.T.BaseType; return(true); } return(false); } catch (Exception ex) { throw new Exception(ex.Message); } }
public async Task imprimir(modelocrud modelo, string tipo) { List <modelocrud> lista = new List <modelocrud>(); PdfPTable table = null; var valorTipo = ""; var porcentagem = ""; var ListaPessoas = await Task.Run(() => Pessoa.recuperarTodos()); int totalPessoas = ListaPessoas.Count; var ListaMinisterios = await Task.Run(() => Ministerio.recuperarTodosMinisterios()); int totalMinisterios = ListaMinisterios.Count; var ListaCelulas = await Task.Run(() => Celula.recuperarTodasCelulas()); int totalCelulas = ListaCelulas.Count; if (modelo != null) { lista = modelo.recuperar(null); var i = 0; foreach (var item in lista.ToList()) { Pessoa p = null; Ministerio m = null; Celula c = null; Reuniao r = null; var id = 0; if (modelo is Pessoa) { p = (Pessoa)item; id = p.IdPessoa; } if (modelo is Ministerio) { m = (Ministerio)item; id = m.IdMinisterio; } if (modelo is Celula) { c = (Celula)item; id = c.IdCelula; } if (modelo is Reuniao) { r = (Reuniao)item; id = r.IdReuniao; } lista[i] = item.recuperar(id)[0]; i++; } } if (modelo != null && modelo is Pessoa) { table = new PdfPTable(2); var quant = modelo.recuperar(null).Count; decimal p = (quant / totalPessoas); porcentagem = "A procentagem em relação ao total de pessoas é " + p.ToString("F2") + "%. Quantidade de registros é: " + quant; } if (modelo != null && modelo is Celula) { var quant = modelo.recuperar(null).Count; decimal p = (quant / totalCelulas); porcentagem = "A procentagem em relação ao total de celulas é " + p.ToString("f2") + "%. Quantidade de registros é: " + quant; } if (modelo != null && modelo is Ministerio) { var quant = modelo.recuperar(null).Count; decimal p = (quant / totalMinisterios); porcentagem = "A procentagem em relação ao total de ministérios é " + p.ToString("f2") + "%. Quantidade de registros é: " + quant; } if (modelo is Reuniao) { table = new PdfPTable(3); } if (tipo == "Pessoa" && modelo == null) { lista = Pessoa.recuperarTodos(); table = new PdfPTable(2); var i = 0; foreach (var item in lista.OfType <Pessoa>().ToList()) { lista[i] = item.recuperar(item.IdPessoa)[0]; i++; } } if (tipo == "MembroLgpd" && modelo == null) { lista = MembroLgpd.recuperarTodosMembros(); table = new PdfPTable(2); var i = 0; foreach (var item in lista.OfType <Pessoa>().ToList()) { lista[i] = item.recuperar(item.IdPessoa)[0]; i++; } } if (tipo == "Membro" && modelo == null) { lista = Membro.recuperarTodosMembros(); table = new PdfPTable(2); var i = 0; foreach (var item in lista.OfType <Pessoa>().ToList()) { lista[i] = item.recuperar(item.IdPessoa)[0]; i++; } } if (tipo == "Ministerio" && modelo == null) { lista = Ministerio.recuperarTodosMinisterios(); table = new PdfPTable(2); var i = 0; foreach (var item in lista.OfType <Ministerio>().ToList()) { lista[i] = item.recuperar(item.IdMinisterio)[0]; i++; } } if (tipo == "Celula" && modelo == null) { lista = Celula.recuperarTodasCelulas(); table = new PdfPTable(2); var i = 0; foreach (var item in lista.OfType <Celula>().ToList()) { lista[i] = item.recuperar(item.IdCelula)[0]; i++; } } if (modelo is MudancaEstado) { table = new PdfPTable(4); } if (tipo != "") { valorTipo = tipo; } else { valorTipo = modelo.GetType().Name; } Document doc = new Document(PageSize.A4); doc.SetMargins(40, 40, 40, 80); string path = Directory.GetCurrentDirectory(); string caminho = path + @"\relatorio\" + "relatorio-" + valorTipo + "-" + DateTime.Now.ToString("dd-MM-yyyy") + ".pdf"; PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(caminho, FileMode.Create)); doc.Open(); Paragraph titulo = new Paragraph(); titulo.Font = new Font(Font.FontFamily.COURIER, 40); titulo.Alignment = Element.ALIGN_CENTER; titulo.Add("Relatório \n\n"); doc.Add(titulo); Paragraph paragrafo = new Paragraph("", new Font(Font.NORMAL, 12)); string conteudo = "Este é um relatório do dia " + DateTime.Now.ToString("dd/MM/yyyy") + " cujo o conteudo é referente a " + valorTipo + $". {porcentagem} \n\n"; paragrafo.Add(conteudo); doc.Add(paragrafo); foreach (var item in lista.OfType <Reuniao>()) { table.AddCell("Id: " + item.IdReuniao.ToString()); table.AddCell("Data da reunião: " + item.Data_reuniao.ToString()); } foreach (var item in lista.OfType <PessoaDado>()) { table.AddCell("ID: " + item.Codigo.ToString()); table.AddCell("Nome: " + item.NomePessoa.ToString()); } foreach (var item in lista.OfType <PessoaLgpd>().ToList()) { table.AddCell("ID: " + item.Codigo.ToString()); table.AddCell("Email: " + item.Email.ToString()); } foreach (var item in lista.OfType <Ministerio>()) { table.AddCell("Id: " + item.IdMinisterio.ToString()); table.AddCell("Data da reunião: " + item.Nome.ToString()); } foreach (var item in lista.OfType <Celula>()) { table.AddCell("Id: " + item.IdCelula.ToString()); table.AddCell("Data da reunião: " + item.Nome.ToString()); } foreach (var item in lista.OfType <Historico>()) { table.AddCell("Data de inicio: " + item.Data_inicio.ToString()); table.AddCell("Data final: " + item.Data_inicio.AddDays(60).ToString()); table.AddCell("Faltas: " + item.Falta.ToString()); } foreach (var item in lista.OfType <MudancaEstado>()) { table.AddCell("Data da mudança: " + item.DataMudanca.ToString("dd/MM/yyyy")); table.AddCell("antigo estado: " + item.velhoEstado); table.AddCell("novo estado: " + item.novoEstado); table.AddCell("Id da pessoa: " + item.CodigoPessoa); } doc.Add(table); string caminhoImg = "http://www.clickfamilia.org.br/oikos2015/wp-content/uploads/2019/07/what-is-family-ministry-lead-300x225.jpg"; Image img = Image.GetInstance(caminhoImg); doc.Add(img); doc.Close(); System.Diagnostics.Process.Start(caminho); }