public static UsuarioRetorno RetornaColaboradorByid(string cdcolaborador, string datasource, string schema)
        {
            UsuarioRetorno Result = new UsuarioRetorno();

            string queryend = "select cdfuncionario,cdentidadepai,nmfuncionario,cdusuariooptimus,dtadmissao,dsemail,dssenha from funcionario where stexcluido = 0 and cdfuncionario = " + cdcolaborador;


            using (OracleConnection connection = new OracleConnection(Util.OracleHelper.StrConn(schema, datasource)))
            {
                OracleCommand command = new OracleCommand(queryend, connection);

                connection.Open();
                using (OracleDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        UsuarioRetorno user = new UsuarioRetorno();
                        user.dtcadastro       = reader["dtadmissao"].ToString();
                        user.cdfuncionario    = Convert.ToInt32(reader["cdfuncionario"].ToString());
                        user.cdentidadepai    = reader["cdentidadepai"].ToString();
                        user.nmfuncionario    = reader["nmfuncionario"].ToString();
                        user.cdusuariooptimus = reader["cdusuariooptimus"].ToString();
                        user.dsemail          = reader["dsemail"].ToString();
                        user.senha            = reader["dssenha"].ToString();
                        Result = user;
                    }
                }
            }
            return(Result);
        }
        public HttpResponseMessage PesquisaColaboradorbyid(string cdcolaborador)
        {
            ConfigAppMembers cf  = Util.ConfigApp.getConfig();
            UsuarioRetorno   ret = new UsuarioRetorno();

            try
            {
                ret = Database.UsuarioADO.RetornaColaboradorByid(cdcolaborador, cf.datasource, cf.schema);
            }
            catch (Exception e)
            {
                Util.LogUtil.GravaLog(this, "PesquisaColaborador: " + e.ToString(), cf.Cnpj, Log.TipoLog.erro);
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, "ERRO"));
            }
            return(Request.CreateResponse(HttpStatusCode.OK, ret));
        }
        public HttpResponseMessage Login(HttpRequestMessage request, [FromBody] UsuarioPost user)
        {
            ConfigAppMembers cf  = Util.ConfigApp.getConfig();
            UsuarioRetorno   ret = new UsuarioRetorno();

            try
            {
                ret = Database.UsuarioADO.Login(user.usuario, user.senha, cf.datasource, cf.schema);
            }
            catch (Exception e)
            {
                Util.LogUtil.GravaLog(this, "Login: "******"ERRO"));
            }
            return(Request.CreateResponse(HttpStatusCode.OK, ret));
        }
        public static List <UsuarioRetorno> RetornaColaborador(string nome, string email, string cdforn, string datasource, string schema)
        {
            List <UsuarioRetorno> Result = new List <UsuarioRetorno>();

            string queryend = "select cdfuncionario,cdentidadepai,nmfuncionario,cdusuariooptimus,dtadmissao,dsemail from funcionario where  stexcluido=0 ";

            if (!string.IsNullOrEmpty(nome))
            {
                queryend += string.Format(" and upper(nmfuncionario) like upper('%{0}%')", nome);
            }
            if (!string.IsNullOrEmpty(email))
            {
                queryend += string.Format(" and dsemail like '%{0}%'", email);
            }
            if (!string.IsNullOrEmpty(cdforn))
            {
                queryend += string.Format(" and cdentidadepai ={0}", cdforn);
            }

            using (OracleConnection connection = new OracleConnection(Util.OracleHelper.StrConn(schema, datasource)))
            {
                OracleCommand command = new OracleCommand(queryend, connection);

                connection.Open();
                using (OracleDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        UsuarioRetorno user = new UsuarioRetorno();
                        user.dtcadastro       = reader["dtadmissao"].ToString();
                        user.cdfuncionario    = Convert.ToInt32(reader["cdfuncionario"].ToString());
                        user.cdentidadepai    = reader["cdentidadepai"].ToString();
                        user.nmfuncionario    = reader["nmfuncionario"].ToString();
                        user.cdusuariooptimus = reader["cdusuariooptimus"].ToString();
                        user.dsemail          = reader["dsemail"].ToString();

                        Result.Add(user);
                    }
                }
            }
            return(Result);
        }
        //public static void CadastrarColaborador(string nomeuser, string usuario, string senha, string cdforn, string datasource, string schema)
        //{
        //    string queryuser = string.Format("INSERT INTO USUARIO(CDUSUARIO,CDDOMINIO,STUSUARIO,STEXCLUIDO)VALUES('{0}',1,1,0)", usuario);
        //    string queryfunc = string.Format("INSERT INTO FUNCIONARIO(nmfuncionario,dsemail,cdusuariooptimus,cdentidadepai,dssenha) (SELECT '{0}', '{1}', cdusuariooptimus,{2},'{3}' FROM USUARIO WHERE CDUSUARIO = '{4}')", nomeuser, usuario, cdforn, senha, usuario);
        //    OracleHelper.ExecProcedureNonQuery(queryuser, null, System.Data.CommandType.Text, datasource, schema);
        //    OracleHelper.ExecProcedureNonQuery(queryfunc, null, System.Data.CommandType.Text, datasource, schema);
        //}

        public static UsuarioRetorno Login(string usuario, string senha, string datasource, string schema)
        {
            UsuarioRetorno Result = new UsuarioRetorno();

            Result.Logado = false;

            string queryend = "select cdfuncionario,cdentidadepai,nmfuncionario,cdusuariooptimus,dtadmissao from funcionario where stexcluido = 0 and upper(dsemail) = :dsemail and dssenha = :dssenha";

            using (OracleConnection connection = new OracleConnection(Util.OracleHelper.StrConn(schema, datasource)))
            {
                OracleCommand command = new OracleCommand(queryend, connection);
                command.Parameters.Add("dsemail", usuario.ToUpper());
                command.Parameters.Add("dssenha", senha);
                connection.Open();
                using (OracleDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Result.cdfuncionario    = Convert.ToInt32(reader["cdfuncionario"].ToString());
                        Result.cdentidadepai    = reader["cdentidadepai"].ToString();
                        Result.nmfuncionario    = reader["nmfuncionario"].ToString();
                        Result.cdusuariooptimus = reader["cdusuariooptimus"].ToString();
                        Result.dtcadastro       = reader["dtadmissao"].ToString();
                    }
                }
            }

            if (Result.cdfuncionario > 0)
            {
                Result.Logado = true;

                List <string> perfis = new List <string>();

                using (OracleConnection connection = new OracleConnection(Util.OracleHelper.StrConn(schema, datasource)))
                {
                    string        sql     = "select P.CDPERFIL,P.NMPERFIL from PERFIL P,usuaperfil PU  where P.CDPERFIL=PU.CDPERFIL AND PU.CDUSUARIOOPTIMUS=" + Result.cdusuariooptimus;
                    OracleCommand command = new OracleCommand(sql, connection);
                    connection.Open();
                    using (OracleDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            perfis.Add(reader["NMPERFIL"].ToString());
                        }
                    }
                }

                string admin = (from a in perfis
                                where a == "PARCEIROADM"
                                select a).FirstOrDefault();


                if (string.IsNullOrEmpty(admin))
                {
                    string parcuser = (from a in perfis
                                       where a == "PARCEIRO"
                                       select a).FirstOrDefault();

                    Result.perfil = "PARCEIRO";
                }
                else
                {
                    Result.perfil = admin;
                }
            }
            else
            {
                StringBuilder query = new StringBuilder();
                query.AppendLine(" select f.cdentifornecedor,e.nmentidade from fornecedor f, entidade e ");
                query.AppendLine(" where f.cdentifornecedor = e.cdentidade and e.stexcluido = 0 and ");
                query.AppendLine(" f.stparceiroativo = 1 and f.stparceiro = 1 and upper(f.parceirousuario) = :dsemail and  f.parceirosenha = :dssenha ");


                using (OracleConnection connection2 = new OracleConnection(Util.OracleHelper.StrConn(schema, datasource)))
                {
                    OracleCommand command = new OracleCommand(query.ToString(), connection2);
                    command.Parameters.Add("dsemail", usuario.ToUpper());
                    command.Parameters.Add("dssenha", senha);
                    connection2.Open();
                    using (OracleDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            Result.cdfuncionario    = Convert.ToInt32(reader["cdentifornecedor"].ToString());
                            Result.cdentidadepai    = reader["cdentifornecedor"].ToString();
                            Result.nmfuncionario    = reader["nmentidade"].ToString();
                            Result.cdusuariooptimus = "";
                            Result.dtcadastro       = "";// reader["dtadmissao"].ToString();
                        }
                    }
                }
            }


            return(Result);
        }