private bool DadosMudaramDaEmpresa(bool exibeerro) { #region --DadosMudaramDaEmpresa EmpresaValidada = true; if (currentEmpresa == null || !Modificado) { return(false); } try { uc_geral.Validar(); if (!uce_divs.Validar(exibeerro, Convert.ToInt16(btnNova.Tag) == 1)) { EmpresaValidada = false; return(false); } uce_pastas.Validar(); switch (currentEmpresa.Servico) { case TipoAplicativo.SAT: uce_danfe.Validar(); uce_ftp.Validar(); uce_sat.Validar(); break; case TipoAplicativo.Nfse: case TipoAplicativo.EFDReinf: case TipoAplicativo.eSocial: case TipoAplicativo.EFDReinfeSocial: uce_cert.Validar(); break; case TipoAplicativo.Nfe: case TipoAplicativo.Cte: case TipoAplicativo.MDFe: case TipoAplicativo.NFCe: case TipoAplicativo.Todos: case TipoAplicativo.Nulo: default: uce_cert.Validar(); uce_danfe.Validar(); uce_ftp.Validar(); break; } } catch (Exception ex) { if (exibeerro) { throw ex; } } if (Convert.ToInt16(btnNova.Tag) == 1) //se inclusao nao precisa verificar se mudou algo, já que nao tem classe existente { return(Modificado); } var _Empresa = Empresas.FindConfEmpresa(empcnpj, servico); if (_Empresa == null) { return(Modificado); } PropertyInfo[] allClassToProperties = _Empresa.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public); foreach (var pi in allClassToProperties) { if (pi.CanWrite) { var pii = currentEmpresa.GetType().GetProperty(pi.Name, BindingFlags.Instance | BindingFlags.Public); if (pii != null) { object ob1 = pi.GetValue(_Empresa, null); object ob2 = pii.GetValue(currentEmpresa, null); if (ob1 == null || ob2 == null) { continue; } if (!ob1.Equals(ob2)) { Console.WriteLine("{0}: old:{1} x new:{2}", pi.Name, ob1.ToString(), ob2.ToString()); return(true); } } } } return(false); #endregion }