Пример #1
0
        public async Task <ISaida> AlterarPeriodo([FromBody, SwaggerParameter("Informações para alteração de um período.", Required = true)] AlterarPeriodoViewModel model)
        {
            var alterarEntrada = new AlterarPeriodoEntrada(
                model.IdPeriodo,
                model.Nome,
                model.DataInicio.Value,
                model.DataFim.Value,
                base.ObterIdUsuarioClaim());

            return(await _periodoServico.AlterarPeriodo(alterarEntrada));
        }
Пример #2
0
        public void Alterar(AlterarPeriodoEntrada alterarEntrada)
        {
            if (alterarEntrada.Invalido || alterarEntrada.IdPeriodo != this.Id)
            {
                return;
            }

            this.Nome       = alterarEntrada.Nome;
            this.DataInicio = alterarEntrada.DataInicio;
            this.DataFim    = alterarEntrada.DataFim;
        }
Пример #3
0
        public void Nao_Deve_Alterar_Periodo_Com_Parametros_Invalidos()
        {
            var idUsuario = 0;

            var alterarEntrada = new AlterarPeriodoEntrada(0, string.Empty, DateTime.Now, DateTime.Now.AddDays(-2), idUsuario);

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

            var saida = _periodoServico.AlterarPeriodo(alterarEntrada).Result;

            Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == Mensagem.Id_Usuario_Invalido), string.Join(", ", saida.Mensagens));
        }
Пример #4
0
        public void Nao_Deve_Alterar_Periodo_Com_Id_Inexistente()
        {
            var idUsuario = 1;
            var idPeriodo = 1;

            _periodoRepositorio.ObterPorId(idPeriodo, true)
            .Returns((Periodo)null);

            var alterarEntrada = new AlterarPeriodoEntrada(idPeriodo, "Período 1", DateTime.Now, DateTime.Now.AddDays(2), idUsuario);

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

            var saida = _periodoServico.AlterarPeriodo(alterarEntrada).Result;

            Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == string.Format(PeriodoMensagem.Id_Periodo_Nao_Existe, idPeriodo)), string.Join(", ", saida.Mensagens));
        }
Пример #5
0
        public async Task <ISaida> AlterarPeriodo(AlterarPeriodoEntrada alterarEntrada)
        {
            // Verifica se as informações para alteração foram informadas corretamente
            if (alterarEntrada.Invalido)
            {
                return(new Saida(false, alterarEntrada.Mensagens, null));
            }

            var periodo = await _periodoRepositorio.ObterPorId(alterarEntrada.IdPeriodo, true);

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

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

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

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

            // Verifica se já existe um período que abrange as datas informadas
            this.NotificarSeVerdadeiro(
                await _periodoRepositorio.VerificarExistenciaPorDataInicioFim(alterarEntrada.IdUsuario, alterarEntrada.DataInicio, alterarEntrada.DataFim, alterarEntrada.IdPeriodo),
                PeriodoMensagem.Datas_Abrangidas_Outro_Periodo);

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

            periodo.Alterar(alterarEntrada);

            _periodoRepositorio.Atualizar(periodo);

            await _uow.Commit();

            return(_uow.Invalido
                ? new Saida(false, _uow.Mensagens, null)
                : new Saida(true, new[] { PeriodoMensagem.Periodo_Alterado_Com_Sucesso }, new PeriodoSaida(periodo)));
        }
Пример #6
0
        public void Deve_Alterar_Periodo()
        {
            var idUsuario = 1;
            var idPeriodo = 1;

            var periodo = new Periodo(new CadastrarPeriodoEntrada(idUsuario, "Período 1", DateTime.Now, DateTime.Now.AddDays(5)));

            typeof(Periodo).GetProperty("Id").SetValue(periodo, idPeriodo);

            _periodoRepositorio.ObterPorId(idPeriodo, true)
            .Returns(periodo);

            var alterarEntrada = new AlterarPeriodoEntrada(idPeriodo, "Período 1 alterado", DateTime.Now.Date, DateTime.Now.Date.AddDays(5), idUsuario);

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

            var saida = _periodoServico.AlterarPeriodo(alterarEntrada).Result;

            Assert.IsTrue(saida.Sucesso && saida.Mensagens.Any(x => x == PeriodoMensagem.Periodo_Alterado_Com_Sucesso), string.Join(", ", saida.Mensagens));
        }