/// <summary>
        /// Metodo responsavel por registrar uma candidatura
        /// </summary>
        /// <param name="model">Informacoes da vaga e do candidato</param>
        /// <returns>Status de registro da candidatura</returns>
        public async Task <bool> RegisterCandidatura(Candidatura model)
        {
            var candidatura = await GetCandidaturaByPessoaAndVaga(model.Id_Pessoa, model.Id_Vaga);

            if (candidatura != null)
            {
                return(false);
            }

            var result = await _repository.RegisterCandidatura(model);

            if (result)
            {
                Vaga vaga = await _vagaGateway.GetVagaById(model.Id_Vaga);

                Pessoa pessoa = await _pessoaGateway.GetPessoaById(model.Id_Pessoa);

                await _rankingGateway.AddRankingVaga(vaga, pessoa);
            }

            return(true);
        }