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); }
public async Task <Result> Handle(UsuarioInsertCommand command, CancellationToken cancellationToken) { var result = _usuarioService.Validar(command); if (!result.Valido) { return(await Task.FromResult(result)); } var domain = UsuarioFactory.Criar(command); domain.Criar(); _usuarioRepository.Adicionar(_usuarioService.ToEntity(domain)); _unitOfWork.SaveChanges(); return(await Task.FromResult(result)); }