Пример #1
0
        public static bool IsType(string caminho, Type tipo)
        {
            List <Type>    tipos    = new List <Type>();
            IList <string> arquivos = new List <string>();


            DirectoryInfo DInfo = new DirectoryInfo(Path.GetDirectoryName(caminho));

            foreach (var item in DInfo.GetFiles())
            {
                if (!Arquivos.ArquivoExiste(AppDomain.CurrentDomain.BaseDirectory + item.Name))
                {
                    Arquivos.CopiarArquivo(item.FullName, AppDomain.CurrentDomain.BaseDirectory, false);
                    arquivos.Add(AppDomain.CurrentDomain.BaseDirectory + item.Name);
                }
            }

            tipos.AddRange(Assembly.LoadFile(caminho).GetTypes());

            foreach (var item in arquivos)
            {
                Arquivos.ExcluirArquivo(item);
            }

            List <Type> operacoes = tipos.FindAll(delegate(Type t)
            {
                List <Type> interfaces = new List <Type>(t.GetInterfaces());
                return(interfaces.Contains(tipo));
            });

            return(operacoes.Count > 0);
        }
Пример #2
0
        private static bool ReferenciasPlugIn(ref Validacao robjValidacao)
        {
            string falta = "";

            if (!Arquivos.ArquivoExiste((string)robjValidacao.Valores[0]))
            {
                if (robjValidacao.Valido)
                {
                    robjValidacao.MsgRetorno = "";
                }
                robjValidacao.MsgRetorno += "O arquivo informado não foi encontrado.";
                return(false);
            }
            Assembly assembly = Assembly.LoadFile((string)robjValidacao.Valores[0]);

            string[]                 padrao     = { };
            List <string>            utilizados = new List <string>();
            IList <Entidades.PlugIn> plugIns    = BancoDados.DAO.getAcesso <Entidades.PlugIn>().Retorna();

            foreach (var item in AppDomain.CurrentDomain.GetAssemblies())
            {
                //bool existe = false;
                //foreach (var item2 in plugIns)
                //{
                //    if (item2.Nome == item.GetName().Name)
                //        existe = true;

                //}
                //if (!existe)
                utilizados.Add(item.GetName().Name);
            }
            foreach (var item in assembly.GetReferencedAssemblies())
            {
                if (padrao.Contains(item.Name) || utilizados.Contains(item.Name))
                {
                    continue;
                }

                falta = item.Name + ", ";
            }
            if (falta.Trim().Length > 0)
            {
                if (robjValidacao.Valido)
                {
                    robjValidacao.MsgRetorno = "";
                }
                robjValidacao.MsgRetorno += "O arquivo informado não foi encontrado.";
                return(false);
            }

            //if (!ArquivoExiste((string)robjValidacao.Valores[0]))
            //{
            //    if (robjValidacao.Valido) robjValidacao.MsgRetorno = "";
            //    robjValidacao.MsgRetorno += "O arquivo informado não foi encontrado.";
            //    return false;
            //}
            robjValidacao.MsgRetorno += "As referencias do PlugIn foram validados.";
            return(true);
        }
Пример #3
0
        public static bool ValidarObjeto(TipoValidacao vobjTipo, ref Validacao robjValidacao)
        {
            bool retorno = true;

            robjValidacao.MsgRetorno += (String.IsNullOrEmpty(robjValidacao.MsgRetorno) ? "" : "\r\n");
            switch (vobjTipo)
            {
            case TipoValidacao.Todos:
                break;

            case TipoValidacao.Nenhuma:
                break;

            case TipoValidacao.SimNao:
                retorno = SimNao((string)robjValidacao.Valores[0]);
                if (!retorno)
                {
                    if (robjValidacao.Valido)
                    {
                        robjValidacao.MsgRetorno = "";
                    }
                    robjValidacao.MsgRetorno += "Formato não reconhecido. Informe Sim ou Não.";
                }
                else if (robjValidacao.Valido)
                {
                    robjValidacao.MsgRetorno += "Formato reconhecido.";
                }
                break;

            case TipoValidacao.Numerico:
                break;

            case TipoValidacao.Alfanumérico:
                break;

            case TipoValidacao.Preenchido:
                retorno = Preenchido(robjValidacao.Valores[0].ToString());
                if (!retorno)
                {
                    if (robjValidacao.Valido)
                    {
                        robjValidacao.MsgRetorno = "";
                    }
                    robjValidacao.MsgRetorno += "O campo não foi preenchido.";
                }
                else if (robjValidacao.Valido)
                {
                    robjValidacao.MsgRetorno += "O campo foi preenchido.";
                }
                break;

            case TipoValidacao.CaminhoExiste:
                retorno = Arquivos.CaminhoExiste((string)robjValidacao.Valores[0]);
                if (!retorno)
                {
                    if (robjValidacao.Valido)
                    {
                        robjValidacao.MsgRetorno = "";
                    }
                    robjValidacao.MsgRetorno += "O caminho informado não foi encontrado.";
                }
                else if (robjValidacao.Valido)
                {
                    robjValidacao.MsgRetorno += "O caminho informado existe.";
                }
                break;

            case TipoValidacao.ModoExibicaoAssistente:
                retorno = ModoExibicaoAssistente((string)robjValidacao.Valores[0]);
                if (!retorno)
                {
                    if (robjValidacao.Valido)
                    {
                        robjValidacao.MsgRetorno = "";
                    }
                    robjValidacao.MsgRetorno += "O valor informado não corresponde a um Modo de Exibição.";
                }
                else if (robjValidacao.Valido)
                {
                    robjValidacao.MsgRetorno += "O valor informado corresponde a um Modo de Exibição.";
                }
                break;

            case TipoValidacao.NomeClienteDuplicado:
                retorno = !NomeClienteDuplicado((string)robjValidacao.Valores[0]);
                if (!retorno)
                {
                    if (robjValidacao.Valido)
                    {
                        robjValidacao.MsgRetorno = "";
                    }
                    robjValidacao.MsgRetorno += "O Nome informado já existe para outro Cliente.";
                }
                else if (robjValidacao.Valido)
                {
                    robjValidacao.MsgRetorno += "Não existe outro cliente com o nome informado.";
                }
                break;

            case TipoValidacao.ArquivoCaminhoExiste:
                retorno = Arquivos.CaminhoExiste((string)robjValidacao.Valores[0]) ||
                          Arquivos.ArquivoExiste((string)robjValidacao.Valores[0]);
                if (!retorno)
                {
                    if (robjValidacao.Valido)
                    {
                        robjValidacao.MsgRetorno = "";
                    }
                    robjValidacao.MsgRetorno += "O caminho informado não foi encontrado.";
                }
                else if (robjValidacao.Valido)
                {
                    robjValidacao.MsgRetorno += "O caminho informado existe.";
                }
                break;

            case TipoValidacao.ArquivoExiste:
                retorno = Arquivos.ArquivoExiste((string)robjValidacao.Valores[0]);
                if (!retorno)
                {
                    if (robjValidacao.Valido)
                    {
                        robjValidacao.MsgRetorno = "";
                    }
                    robjValidacao.MsgRetorno += "O arquivo informado não foi encontrado.";
                }
                else if (robjValidacao.Valido)
                {
                    robjValidacao.MsgRetorno += "O arquivo informado existe.";
                }
                break;

            case TipoValidacao.ReferenciasPlugIn:
                retorno = ReferenciasPlugIn(ref robjValidacao);
                break;

            default:
                break;
            }
            if (robjValidacao.MsgRetorno.Length > 2 &&
                robjValidacao.MsgRetorno.LastIndexOf("\r\n") == robjValidacao.MsgRetorno.Length - 2)
            {
                robjValidacao.MsgRetorno = robjValidacao.MsgRetorno.Substring(0, robjValidacao.MsgRetorno.Length - 2);
            }
            return(retorno);
        }