public async Task <IActionResult> Handle(AlterarPlanoTrabalhoAtividadeCommand request, CancellationToken cancellationToken)
        {
            ApplicationResult <bool> result = new ApplicationResult <bool>(request);

            IEnumerable <Guid> assuntosId = request.IdsAssuntos != null?request.IdsAssuntos.ToList() : new List <Guid>();

            //Monta o objeto com os dados do catalogo
            var item = await PlanoTrabalhoRepository.ObterAsync(request.PlanoTrabalhoId);

            IEnumerable <int> criterios = new List <int>();

            if (request.Criterios != null && request.Criterios.Any())
            {
                criterios = request.Criterios.Select(c => c.CriterioId);
            }

            //Remove a atividade
            item.AlterarAtividade(request.PlanoTrabalhoAtividadeId, request.ModalidadeExecucaoId, request.QuantidadeColaboradores, request.Descricao, request.ItensCatalogo.Select(i => i.ItemCatalogoId), criterios, assuntosId);

            //Altera o item de catalogo no banco de dados
            PlanoTrabalhoRepository.Atualizar(item);
            UnitOfWork.Commit(false);

            result.Result = true;
            result.SetHttpStatusToOk("Plano de trabalho alterado com sucesso.");
            return(result);
        }
Esempio n. 2
0
        public async Task <IActionResult> Handle(CandidatarPlanoTrabalhoAtividadeCommand request, CancellationToken cancellationToken)
        {
            ApplicationResult <bool> result = new ApplicationResult <bool>(request);

            try
            {
                //Monta o objeto com os dados do catalogo
                var item = await PlanoTrabalhoRepository.ObterAsync(request.PlanoTrabalhoId);

                //Remove a atividade
                item.RegistrarCandidaturaAtividade(request.PlanoTrabalhoAtividadeId, request.UsuarioLogadoId);

                //Altera o item de catalogo no banco de dados
                PlanoTrabalhoRepository.Atualizar(item);
                UnitOfWork.Commit(false);

                //Envia email
                await EnviarEmail(request.PlanoTrabalhoAtividadeId, request.UsuarioLogadoId);

                result.Result = true;
                result.SetHttpStatusToOk("Candidatura registrada com sucesso.");
            }
            catch (SISRH.Domain.Exceptions.SISRHDomainException ex)
            {
                result.Validations = new List <string>()
                {
                    ex.Message
                };
                result.Result = false;
                result.SetHttpStatusToBadRequest();
            }
            return(result);
        }
        public async Task <IActionResult> Handle(CadastrarPlanoTrabalhoObjetoCommand request, CancellationToken cancellationToken)
        {
            request.Assuntos = request.Assuntos != null ? request.Assuntos : new List <PlanoTrabalhoObjetoAssuntoViewModel>();
            request.Custos   = request.Custos != null ? request.Custos : new List <PlanoTrabalhoCustoViewModel>();
            request.Reunioes = request.Reunioes != null ? request.Reunioes : new List <PlanoTrabalhoReuniaoViewModel>();

            ApplicationResult <bool> result = new ApplicationResult <bool>(request);

            //Monta o objeto com os dados do catalogo
            var item = await PlanoTrabalhoRepository.ObterAsync(request.PlanoTrabalhoId);

            var custos   = request.Custos.Select(c => PlanoTrabalhoCusto.Criar(c.PlanoTrabalhoId, c.Valor, c.Descricao)).ToList();
            var reunioes = request.Reunioes.Select(r => PlanoTrabalhoReuniao.Criar(r.PlanoTrabalhoId, r.Data, r.Titulo, r.Descricao)).ToList();
            var assuntos = request.Assuntos.Select(a => PlanoTrabalhoObjetoAssunto.Criar(a.PlanoTrabalhoObjetoId, a.AssuntoId)).ToList();

            //Adiciona o objeto
            item.AdicionarObjeto(request.ObjetoId, reunioes, custos, assuntos);

            //Altera o item de catalogo no banco de dados
            PlanoTrabalhoRepository.Atualizar(item);
            UnitOfWork.Commit(false);

            result.Result = true;
            result.SetHttpStatusToOk("Plano de trabalho alterado com sucesso.");
            return(result);
        }
Esempio n. 4
0
        public async Task <IActionResult> Handle(AtualizarCandidaturaPlanoTrabalhoAtividadeCommand request, CancellationToken cancellationToken)
        {
            ApplicationResult <bool> result = new ApplicationResult <bool>(request);

            //Monta o objeto com os dados do catalogo
            var item = await PlanoTrabalhoRepository.ObterAsync(request.PlanoTrabalhoId);

            //Atualiza a candidatura
            item.AtualizarCandidaturaAtividade(request.PlanoTrabalhoAtividadeId, request.PlanoTrabalhoAtividadeCandidatoId, request.SituacaoId, request.UsuarioLogadoId.ToString(), request.Descricao);

            //Altera o item de catalogo no banco de dados
            PlanoTrabalhoRepository.Atualizar(item);
            UnitOfWork.Commit(false);

            result.Result = true;
            result.SetHttpStatusToOk("Candidatura registrada com sucesso.");
            return(result);
        }
        public async Task <IActionResult> Handle(CadastrarPlanoTrabalhoReuniaoCommand request, CancellationToken cancellationToken)
        {
            ApplicationResult <bool> result = new ApplicationResult <bool>(request);

            //Monta o objeto com os dados do catalogo
            var item = await PlanoTrabalhoRepository.ObterAsync(request.PlanoTrabalhoId);

            //Adiciona a reunião
            item.AdicionarReuniao(request.Data, request.Titulo, request.Descricao);

            //Altera o item de catalogo no banco de dados
            PlanoTrabalhoRepository.Atualizar(item);
            UnitOfWork.Commit(false);

            result.Result = true;
            result.SetHttpStatusToOk("Plano de trabalho alterado com sucesso.");
            return(result);
        }
Esempio n. 6
0
        public async Task <IActionResult> Handle(AlterarPlanoTrabalhoCustoCommand request, CancellationToken cancellationToken)
        {
            ApplicationResult <bool> result = new ApplicationResult <bool>(request);

            //Monta o objeto com os dados do catalogo
            var item = await PlanoTrabalhoRepository.ObterAsync(request.PlanoTrabalhoId);

            //Altera o objeto custo
            item.AlterarCusto(request.PlanoTrabalhoCustoId, decimal.Parse(request.Valor, System.Globalization.CultureInfo.InvariantCulture), request.Descricao);

            //Altera o custo no banco de dados
            PlanoTrabalhoRepository.Atualizar(item);
            UnitOfWork.Commit(false);

            result.Result = true;
            result.SetHttpStatusToOk("Plano de trabalho alterado com sucesso.");
            return(result);
        }
        public async Task <IActionResult> Handle(ExcluirPlanoTrabalhoObjetoCommand request, CancellationToken cancellationToken)
        {
            ApplicationResult <bool> result = new ApplicationResult <bool>(request);

            //Recupera o plano de trabalho
            var item = await PlanoTrabalhoRepository.ObterAsync(request.PlanoTrabalhoId);

            //Remove o objeto
            item.RemoverObjeto(request.PlanoTrabalhoObjetoId);

            //Altera o plano de trabalho no banco de dados
            PlanoTrabalhoRepository.Atualizar(item);
            UnitOfWork.Commit(false);

            result.Result = true;
            result.SetHttpStatusToOk("Plano de trabalho alterado com sucesso.");
            return(result);
        }
        public async Task <IActionResult> Handle(AlterarPlanoTrabalhoMetaCommand request, CancellationToken cancellationToken)
        {
            ApplicationResult <bool> result = new ApplicationResult <bool>(request);

            //Monta o objeto com os dados do catalogo
            var item = await PlanoTrabalhoRepository.ObterAsync(request.PlanoTrabalhoId);

            //Remove a atividade
            item.AlterarMeta(request.PlanoTrabalhoMetaId, request.Meta, request.Indicador, request.Descricao);

            //Altera o item de catalogo no banco de dados
            PlanoTrabalhoRepository.Atualizar(item);
            UnitOfWork.Commit(false);

            result.Result = true;
            result.SetHttpStatusToOk("Plano de trabalho alterado com sucesso.");
            return(result);
        }
        public async Task <IActionResult> Handle(AlterarSituacaoPlanoTrabalhoCommand request, CancellationToken cancellationToken)
        {
            ApplicationResult <bool> result = new ApplicationResult <bool>(request);

            //Monta o objeto com os dados do catalogo
            var item = await PlanoTrabalhoRepository.ObterAsync(request.PlanoTrabalhoId);

            try
            {
                //Altera a situação do plano
                if (request.Deserto)
                {
                    item.AlterarSituacao((int)SituacaoPlanoTrabalhoEnum.Concluido, request.UsuarioLogadoId.ToString(), request.Observacoes, true);
                }
                else if (request.SituacaoId == (int)SituacaoPlanoTrabalhoEnum.EmExecucao)
                {
                    item.ConcluirHabilitacao(request.UsuarioLogadoId.ToString(), request.Observacoes, request.Aprovados);
                }
                else
                {
                    item.AlterarSituacao(request.SituacaoId, request.UsuarioLogadoId.ToString(), request.Observacoes);
                }

                //Altera o item de catalogo no banco de dados
                PlanoTrabalhoRepository.Atualizar(item);
                UnitOfWork.Commit(false);

                //Notifica os envolvidos
                await EnviarEmails(item);

                result.Result = true;
                result.SetHttpStatusToOk("Plano de trabalho alterado com sucesso.");
            }
            catch (SISRH.Domain.Exceptions.SISRHDomainException ex)
            {
                result.Validations = new List <string>()
                {
                    ex.Message
                };
                result.Result = false;
                result.SetHttpStatusToBadRequest();
            }
            return(result);
        }
Esempio n. 10
0
        public async Task <IActionResult> Handle(AlterarPlanoTrabalhoObjetoCommand request, CancellationToken cancellationToken)
        {
            request.Assuntos = request.Assuntos != null ? request.Assuntos : new List <PlanoTrabalhoObjetoAssuntoViewModel>();
            request.Custos   = request.Custos != null ? request.Custos : new List <PlanoTrabalhoCustoViewModel>();
            request.Reunioes = request.Reunioes != null ? request.Reunioes : new List <PlanoTrabalhoReuniaoViewModel>();

            ApplicationResult <bool> result = new ApplicationResult <bool>(request);

            var assuntosId = request.Assuntos.Select(a => a.AssuntoId);

            var custosParaAdicionar = request.Custos
                                      .Where(c => c.PlanoTrabalhoCustoId == null)
                                      .Select(c => PlanoTrabalhoCusto.Criar(c.PlanoTrabalhoId, c.Valor, c.Descricao, request.PlanoTrabalhoObjetoId));
            var idsCustos = request.Custos
                            .Where(c => c.PlanoTrabalhoCustoId != null)
                            .Select(c => c.PlanoTrabalhoCustoId.Value);

            var reunioesParaAdicionar = request.Reunioes
                                        .Where(c => c.PlanoTrabalhoReuniaoId == null)
                                        .Select(c => PlanoTrabalhoReuniao.Criar(c.PlanoTrabalhoId, c.Data, c.Titulo, c.Descricao, request.PlanoTrabalhoObjetoId));
            var idsReunioes = request.Reunioes
                              .Where(c => c.PlanoTrabalhoReuniaoId != null)
                              .Select(c => c.PlanoTrabalhoReuniaoId.Value);

            //Recupera o PlanoTrabalho do banco
            var item = await PlanoTrabalhoRepository.ObterAsync(request.PlanoTrabalhoId);

            //Altera o objeto
            item.AlterarObjeto(request.PlanoTrabalhoObjetoId, assuntosId, custosParaAdicionar, idsCustos, reunioesParaAdicionar, idsReunioes);

            //Altera o objeto no banco de dados
            PlanoTrabalhoRepository.Atualizar(item);
            UnitOfWork.Commit(false);

            result.Result = true;
            result.SetHttpStatusToOk("Plano de trabalho alterado com sucesso.");
            return(result);
        }
Esempio n. 11
0
        public async Task <IActionResult> Handle(AlterarPlanoTrabalhoCommand request, CancellationToken cancellationToken)
        {
            ApplicationResult <bool> result = new ApplicationResult <bool>(request);

            //Monta o objeto com os dados do catalogo
            var item = await PlanoTrabalhoRepository.ObterAsync(request.PlanoTrabalhoId);

            //Altera os dados
            //item.Alterar(request.Titulo,
            //    request.Descricao,
            //    request.FormaCalculoTempoPlanoTrabalhoId,
            //    request.PermiteTrabalhoRemoto,
            //    request.TempoExecucaoPresencial,
            //    request.TempoExecucaoRemoto);

            //Altera o item de catalogo no banco de dados
            PlanoTrabalhoRepository.Atualizar(item);
            UnitOfWork.Commit(false);

            result.Result = true;
            result.SetHttpStatusToOk("Plano de trabalho alterado com sucesso.");
            return(result);
        }