public Usuario Cadastrar(CadastroRequest form) { var usuario = Repository.GetOneByCriteria(x => x.Login == form.Login); if (usuario != null) { return(null); } Usuario usuarioNovo = UsuarioFactory.Criar( form.Login, form.Senha, form.Tipo, form.DataNascimento, form.Email, form.Nome); switch (form.Tipo) { case EUsuarioTipo.EMPRESA: var empresa = EmpresaFactory.Criar(form.Documento, usuarioNovo); EmpresaService.Savar(empresa); break; case EUsuarioTipo.CANDIDATO: var candidato = CandidatoFactory.Criar(form.Documento, usuarioNovo); CandidatoService.Savar(candidato); break; case EUsuarioTipo.ADMINISTRADOR: //TODO: not implemented break; } return(usuarioNovo); }