Ejemplo n.º 1
0
        /// <summary>
        /// Método responsável por criar o colaborador caso não exista.
        /// É usado pelo AD
        /// <param name="extensaoEmail">Extensao do email da empresa</param>
        /// <param name="contexto">Sessão</param>
        /// <param name="login">Login do usuário</param>
        /// </summary>
        public static Colaborador CriarColaborador(string login, string extensaoEmail)
        {
            string   primeiroNome;
            string   ultimoNome;
            string   nomeCompleto;
            DateTime dtAdmissao;

            Colaborador colaboradorPesquisado = ColaboradorDAO.ConsultarColaborador(login, o => o.Usuario);

            if (colaboradorPesquisado != null)
            {
                return(colaboradorPesquisado);
            }

            if (login.Contains("."))
            {
                primeiroNome = StrUtil.UpperCaseFirst(login.Split('.')[0]);
                ultimoNome   = StrUtil.UpperCaseFirst(login.Split('.')[1]);
                nomeCompleto = String.Format("{0} {1}", StrUtil.UpperCaseFirst(primeiroNome), StrUtil.UpperCaseFirst(ultimoNome));
            }
            else
            {
                primeiroNome = login;
                ultimoNome   = String.Empty;
                nomeCompleto = String.Format("{0}", StrUtil.UpperCaseFirst(login));
            }

            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                ColaboradorUltimoFiltro colaboradorUltimoFiltro = ColaboradorUltimoFiltroBO.CriarColaboradorUltimoFiltroPadrao(contexto);

                Party party = PartyBO.CriarPartyPadrao(contexto);

                Person person = PersonBO.CriarPersonPadrao(contexto, party, primeiroNome, ultimoNome, login, extensaoEmail);

                User usuario = UserBO.CriarUserPadrao(contexto, person, login);

                dtAdmissao = DateUtil.ConsultarDataHoraAtual();

                Colaborador novoColaborador = new Colaborador()
                {
                    OidUsuario                 = usuario.Oid,
                    TxMatricula                = null,
                    DtAdmissao                 = dtAdmissao,
                    OidCoordenador             = null,
                    OidCargo                   = null,
                    OidColaboradorUltimoFiltro = colaboradorUltimoFiltro.Oid
                };

                contexto.Colaboradores.Add(novoColaborador);
                contexto.SaveChanges();

                Role roleDefault = ColaboradorDAO.ConsultarRolePorNome("Default");
                Role roleAdmin   = ColaboradorDAO.ConsultarRolePorNome("Administradores");

                UserBO.CriarPermissaoParaUsuario(contexto, usuario, roleDefault);
                UserBO.CriarPermissaoParaUsuario(contexto, usuario, roleAdmin);

                ColaboradorPeriodoAquisitivoBO.CriarPeridoAquisitivoParaColaborador(contexto, novoColaborador, dtAdmissao);

                return(novoColaborador);
            }
        }