/// <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); } }