示例#1
0
        public async Task <ISaida> CadastrarPeriodo(PeriodoEntrada entrada)
        {
            // Verifica se as informações para cadastro foram informadas corretamente
            if (entrada.Invalido)
            {
                return(new Saida(false, entrada.Mensagens, null));
            }

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

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

            var periodo = new Periodo(entrada);

            await _periodoRepositorio.Inserir(periodo);

            await _uow.Commit();

            return(new Saida(true, new[] { PeriodoMensagem.Periodo_Cadastrado_Com_Sucesso }, new PeriodoSaida(periodo)));
        }
示例#2
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));
        }