Ejemplo n.º 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)));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> CadastrarPeriodo([FromBody, SwaggerParameter("Informações de cadastro do período.", Required = true)] PeriodoViewModel model)
        {
            var entrada = new PeriodoEntrada(
                base.ObterIdUsuarioClaim(),
                model.Nome,
                model.DataInicio.Value,
                model.DataFim.Value);

            return(new ApiResult(await _periodoServico.CadastrarPeriodo(entrada)));
        }
Ejemplo n.º 3
0
        public void Alterar(PeriodoEntrada entrada)
        {
            if (entrada.Invalido)
            {
                return;
            }

            this.Nome       = entrada.Nome;
            this.DataInicio = entrada.DataInicio;
            this.DataFim    = entrada.DataFim;
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> AlterarPeriodo(
            [FromQuery, SwaggerParameter("ID do período.", Required = true)] int idPeriodo,
            [FromBody, SwaggerParameter("Informações para alteração de um período.", Required = true)] PeriodoViewModel model)
        {
            var entrada = new PeriodoEntrada(
                base.ObterIdUsuarioClaim(),
                model.Nome,
                model.DataInicio.Value,
                model.DataFim.Value);

            return(new ApiResult(await _periodoServico.AlterarPeriodo(idPeriodo, entrada)));
        }
Ejemplo n.º 5
0
        public Periodo(PeriodoEntrada entrada)
        {
            if (entrada.Invalido)
            {
                return;
            }

            this.IdUsuario  = entrada.IdUsuario;
            this.Nome       = entrada.Nome;
            this.DataInicio = entrada.DataInicio;
            this.DataFim    = entrada.DataFim;
        }
Ejemplo n.º 6
0
        public async Task <ISaida> AlterarPeriodo(int idPeriodo, PeriodoEntrada entrada)
        {
            // Verifica se as informações para alteração foram informadas corretamente
            if (entrada.Invalido)
            {
                return(new Saida(false, entrada.Mensagens, null));
            }

            var periodo = await _periodoRepositorio.ObterPorId(idPeriodo);

            // 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, entrada.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(entrada.IdUsuario, entrada.DataInicio, entrada.DataFim, idPeriodo),
                PeriodoMensagem.Datas_Abrangidas_Outro_Periodo);

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

            periodo.Alterar(entrada);

            _periodoRepositorio.Atualizar(periodo);

            await _uow.Commit();

            return(new Saida(true, new[] { PeriodoMensagem.Periodo_Alterado_Com_Sucesso }, new PeriodoSaida(periodo)));
        }