Пример #1
0
        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));
        }