public async Task <ISaida> CadastrarPeriodo(CadastrarPeriodoEntrada cadastroEntrada)
        {
            // Verifica se as informações para cadastro foram informadas corretamente
            if (cadastroEntrada.Invalido)
            {
                return(new Saida(false, cadastroEntrada.Mensagens, null));
            }

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

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

            var periodo = new Periodo(cadastroEntrada);

            await _periodoRepositorio.Inserir(periodo);

            await _uow.Commit();

            return(_uow.Invalido
                ? new Saida(false, _uow.Mensagens, null)
                : new Saida(true, new[] { PeriodoMensagem.Periodo_Cadastrado_Com_Sucesso }, new PeriodoSaida(periodo)));
        }
Beispiel #2
0
        public async Task <ISaida> CadastrarPeriodo([FromBody, SwaggerParameter("Informações de cadastro do período.", Required = true)] CadastrarPeriodoViewModel model)
        {
            var cadastrarEntrada = new CadastrarPeriodoEntrada(
                base.ObterIdUsuarioClaim(),
                model.Nome,
                model.DataInicio.Value,
                model.DataFim.Value);

            return(await _periodoServico.CadastrarPeriodo(cadastrarEntrada));
        }
Beispiel #3
0
        public void Nao_Deve_Cadastrar_Periodo_Com_Parametros_Invalidos()
        {
            var cadastroEntrada = new CadastrarPeriodoEntrada(0, string.Empty, DateTime.Now, DateTime.Now.AddDays(-2));

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

            var saida = _periodoServico.CadastrarPeriodo(cadastroEntrada).Result;

            Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == PeriodoMensagem.Data_Periodo_Invalidas), string.Join(", ", saida.Mensagens));
        }
Beispiel #4
0
        public Periodo(CadastrarPeriodoEntrada cadastrarEntrada)
        {
            if (cadastrarEntrada.Invalido)
            {
                return;
            }

            this.IdUsuario  = cadastrarEntrada.IdUsuario;
            this.Nome       = cadastrarEntrada.Nome;
            this.DataInicio = cadastrarEntrada.DataInicio;
            this.DataFim    = cadastrarEntrada.DataFim;
        }
Beispiel #5
0
        public void Nao_Deve_Cadastrar_Periodo_Com_Datas_Abrangidas_Por_Outro_Periodo()
        {
            var idUsuario = 1;

            _periodoRepositorio.VerificarExistenciaPorDataInicioFim(idUsuario, DateTime.Now.Date, DateTime.Now.Date.AddDays(5))
            .Returns(true);

            var cadastroEntrada = new CadastrarPeriodoEntrada(idUsuario, "Período X", DateTime.Now.Date, DateTime.Now.Date.AddDays(5));

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

            var saida = _periodoServico.CadastrarPeriodo(cadastroEntrada).Result;

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