public async Task <ISaida> ObterPeriodoPorId(int idPeriodo, int idUsuario)
        {
            this.NotificarSeMenorOuIgualA(idPeriodo, 0, PeriodoMensagem.Id_Periodo_Invalido);
            this.NotificarSeMenorOuIgualA(idUsuario, 0, Mensagem.Id_Usuario_Invalido);

            if (this.Invalido)
            {
                return(new Saida(false, this.Mensagens, null));
            }

            var periodo = await _periodoRepositorio.ObterPorId(idPeriodo);

            // Verifica se o período existe
            this.NotificarSeNulo(periodo, string.Format(PeriodoMensagem.Id_Periodo_Nao_Existe, idPeriodo));

            if (this.Invalido)
            {
                return(new Saida(false, this.Mensagens, null));
            }

            // Verifica se o período pertece ao usuário informado.
            this.NotificarSeDiferentes(periodo.IdUsuario, idUsuario, PeriodoMensagem.Periodo_Nao_Pertence_Usuario);

            return(this.Invalido
                ? new Saida(false, this.Mensagens, null)
                : new Saida(true, new[] { PeriodoMensagem.Periodo_Encontrado_Com_Sucesso }, new PeriodoSaida(periodo)));
        }
Exemple #2
0
        public void Nao_Deve_Obter_Periodo_Por_Id_De_Outro_Usuario()
        {
            var idPeriodo = 2;
            var idUsuario = 1;

            _periodoRepositorio.ObterPorId(idPeriodo)
            .Returns(new Periodo(new CadastrarPeriodoEntrada(idUsuario, "Período 1", DateTime.Now.Date, DateTime.Now.Date.AddDays(5))));

            _periodoServico = Substitute.For <PeriodoServico>(_periodoRepositorio, _uow);

            var saida = _periodoServico.ObterPeriodoPorId(idPeriodo, 2).Result;

            Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == PeriodoMensagem.Periodo_Nao_Pertence_Usuario), string.Join(", ", saida.Mensagens));
        }
Exemple #3
0
        public async Task <ISaida> ObterPeriodoGraficoRelacaoValorCategoriaPorAno(int idPeriodo, int ano, int idCategoria, int idUsuario)
        {
            this
            .NotificarSeMenorQue(ano, 2019, "O ano informado é inválido. Informe um ano maior ou igual a 2019")
            .NotificarSeMenorOuIgualA(idCategoria, 0, CategoriaMensagem.Id_Categoria_Invalido)
            .NotificarSeMenorOuIgualA(idUsuario, 0, Mensagem.Id_Usuario_Invalido);

            if (this.Invalido)
            {
                return(new Saida(false, this.Mensagens, null));
            }

            this.NotificarSeFalso(await _categoriaRepositorio.VerificarExistenciaPorId(idUsuario, idCategoria), CategoriaMensagem.Categoria_Nao_Pertence_Usuario);

            if (this.Invalido)
            {
                return(new Saida(false, this.Mensagens, null));
            }

            var periodo = await _periodoRepositorio.ObterPorId(idPeriodo);

            this.NotificarSeNulo(periodo, PeriodoMensagem.Id_Periodo_Nao_Existe);

            if (this.Invalido)
            {
                return(new Saida(false, this.Mensagens, null));
            }

            var periodoGrafico = await ObterPeriodoGraficoRelacaoValorCategoriaPorAnoSaida(ano, idCategoria, new PeriodoSaida(periodo), idUsuario);

            return(new Saida(true, new[] { "Informações do período obtidas com sucesso." }, periodoGrafico));
        }