Exemplo n.º 1
0
        /// <summary>
        /// Método para recuperar objetos armazenados no contexto do BDD, a partir de flags
        /// </summary>
        /// <param name="flags">tipos a serem carregados</param>
        /// <returns>uma hastable com os objetos carregados através das flags</returns>
        private Hashtable CarregarObjetosContexto(StepEdicaoCronogramaHelperFlag flags)
        {
            Hashtable     hash                  = new Hashtable();
            CronogramaDto cronograma            = null;
            UsuarioCronogramaBindHelper usuario = null;

            if (flags.HasFlag(StepEdicaoCronogramaHelperFlag.Usuario))
            {
                CarregarDoContextoAtualBDD(USUARIO_ATUAL, out usuario);
                hash.Add(USUARIO_ATUAL, usuario);
            }

            if (flags.HasFlag(StepEdicaoCronogramaHelperFlag.Cronograma))
            {
                CarregarDoContextoAtualBDD(CRONOGRAMA_ATUAL, out cronograma);
                hash.Add(CRONOGRAMA_ATUAL, cronograma);
            }

            if (flags.HasFlag(StepEdicaoCronogramaHelperFlag.CronogramaPresenter))
            {
                hash.Add(CRONOGRAMA_PRESENTER, CarregarDoContextoAtualBDD <CronogramaPresenter>(CriarChave(FORMATO_CHAVE_PRESENTER, cronograma.TxDescricao, usuario.Nome)));
            }

            if (flags.HasFlag(StepEdicaoCronogramaHelperFlag.ViewMock))
            {
                hash.Add(VIEW_MOCK, CarregarDoContextoAtualBDD <Mock <ICronogramaView> >(CriarChave(FORMATO_CHAVE_VIEW_MOCK, cronograma.TxDescricao, usuario.Nome)));
            }

            if (flags.HasFlag(StepEdicaoCronogramaHelperFlag.AccessClientMock))
            {
                hash.Add(ACCESS_CLIENT_MOCK, CarregarDoContextoAtualBDD <Mock <IWexMultiAccessClient> >(CriarChave(FORMATO_CHAVE_ACCESS_CLIENT_MOCK, cronograma.TxDescricao, usuario.Nome)));
            }
            return(hash);
        }
        public void DeveSalvarOsNovosDadosDoCronogramaQuandoForAlteradaASituacaoPlanejamento()
        {
            var naoIniciado = new SituacaoPlanejamento()
            {
                Oid        = Guid.NewGuid(),
                CsPadrao   = CsPadraoSistema.Não,
                CsSituacao = CsTipoSituacaoPlanejamento.Ativo,
                CsTipo     = CsTipoPlanejamento.Planejamento
            };

            contexto.SituacaoPlanejamento.Add(naoIniciado);
            contexto.SaveChanges();

            var cronograma = CronogramaBo.CriarCronogramaPadrao(contexto);

            var dto = new CronogramaDto
            {
                Oid      = cronograma.Oid,
                DtInicio = cronograma.DtInicio,
                DtFinal  = cronograma.DtFinal,
                OidSituacaoPlanejamento = naoIniciado.Oid,
                TxDescricao             = cronograma.TxDescricao
            };

            Assert.AreNotEqual(naoIniciado.Oid, cronograma.OidSituacaoPlanejamento, "a situação de planejamento devem ser inicialmente diferentes");

            Assert.IsTrue(CronogramaBo.EditarCronograma(dto), "Deveria ter salvo a edição do cronograma");

            contexto.Entry(cronograma).Reload();
            Assert.AreEqual(dto.TxDescricao, cronograma.TxDescricao, "Deveria ter salvo o nome do cronograma");
            Assert.AreEqual(dto.DtInicio, cronograma.DtInicio, "Deveria ter salvo a data de inicio do cronograma");
            Assert.AreEqual(dto.DtFinal, cronograma.DtFinal, "Deveria ter salvo a data de termino do cronograma");
            Assert.AreEqual(dto.OidSituacaoPlanejamento, cronograma.OidSituacaoPlanejamento, "Deveria ter salvo a nova situação planejamento de termino do cronograma");
        }
        /// <summary>
        /// Método responsável por editar os dados de um cronograma
        /// </summary>
        /// <param name="cronogramaDto">dados do cronograma editado</param>
        /// <returns>verdadeiro caso tenha sido editado e falso caso contrário</returns>
        public static bool EditarCronograma(CronogramaDto cronogramaDto)
        {
            if (cronogramaDto == null || cronogramaDto.Oid == new Guid())
            {
                return(false);
            }

            var cronograma = CronogramaDao.ConsultarCronogramaPorOid(cronogramaDto.Oid, o => o.SituacaoPlanejamento.Cronogramas);

            if (cronograma == null)
            {
                return(false);
            }

            var dtoCronogramaBaseDados = CronogramaBo.DtoFactory(cronograma);

            if (ComparadorGenerico.HouveMudancaEm(dtoCronogramaBaseDados, cronogramaDto, o => o.TxDescricao))
            {
                return(AlterarDescricaoCronograma(cronogramaDto.Oid, cronogramaDto.TxDescricao));
            }

            if (!ValidarDatasCronograma(cronogramaDto) || !ComparadorGenerico.HouveMudancaEm(dtoCronogramaBaseDados, cronogramaDto, o => o.OidSituacaoPlanejamento, o => o.DtInicio, o => o.DtFinal))
            {
                return(false);
            }

            AtualizarDadosCronograma(cronograma, cronogramaDto);
            return(CronogramaDao.SalvarCronograma(cronograma));
        }
        public void NaoDeveSalvarAsDatasDoCronogramaQuandoADataInicioForMaiorQueADataTerminoDoCronograma()
        {
            var situacao = new SituacaoPlanejamento()
            {
                Oid        = Guid.NewGuid(),
                CsPadrao   = CsPadraoSistema.Sim,
                CsSituacao = CsTipoSituacaoPlanejamento.Ativo,
                CsTipo     = CsTipoPlanejamento.Planejamento
            };

            contexto.SituacaoPlanejamento.Add(situacao);
            contexto.SaveChanges();
            var cronograma = CronogramaBo.CriarCronogramaPadrao(contexto);


            var novaData        = DateTime.Now.Date.AddDays(1);
            var novaDataTermino = DateTime.Now.Date.AddDays(-1);

            var dto = new CronogramaDto
            {
                Oid      = cronograma.Oid,
                DtInicio = novaData,
                DtFinal  = novaDataTermino,
                OidSituacaoPlanejamento = cronograma.OidSituacaoPlanejamento,
                TxDescricao             = cronograma.TxDescricao
            };


            Assert.AreNotEqual(novaData, cronograma.DtFinal, "As datas devem ser inicialmente diferentes");
            Assert.IsFalse(CronogramaBo.EditarCronograma(dto), "Deveria ter salvo a edição do cronograma");

            contexto.Entry(cronograma).Reload();

            Assert.AreNotEqual(dto.DtFinal, cronograma.DtFinal, "Não deveria ter salvo a data de termino do cronograma");
        }
        public void DevePoderAlterarOsDadosDoCronograma()
        {
            var situacao = new SituacaoPlanejamento()
            {
                Oid        = Guid.NewGuid(),
                CsPadrao   = CsPadraoSistema.Sim,
                CsSituacao = CsTipoSituacaoPlanejamento.Ativo,
                CsTipo     = CsTipoPlanejamento.Planejamento
            };

            contexto.SituacaoPlanejamento.Add(situacao);
            contexto.SaveChanges();

            var cronograma = CronogramaBo.CriarCronogramaPadrao(contexto);

            var          novaData      = DateTime.Now.Date.AddDays(1);
            const string novaDescricao = "Wex Teste";
            var          dto           = new CronogramaDto
            {
                Oid      = cronograma.Oid,
                DtInicio = cronograma.DtInicio,
                DtFinal  = cronograma.DtFinal,
                OidSituacaoPlanejamento = cronograma.OidSituacaoPlanejamento,
                TxDescricao             = novaDescricao
            };

            Assert.IsTrue(CronogramaBo.EditarCronograma(dto), "Deveria ter salvo a edição do cronograma");

            contexto.Entry(cronograma).Reload();
            Assert.AreEqual(dto.TxDescricao, cronograma.TxDescricao, "Deveria ter salvo o nome do cronograma");
            Assert.AreEqual(dto.DtInicio, cronograma.DtInicio, "Deveria ter salvo a data de inicio do cronograma");
            Assert.AreEqual(dto.DtFinal, cronograma.DtFinal, "Deveria ter salvo a data de termino do cronograma");
        }
Exemplo n.º 6
0
 private void RecusarEdicao(CronogramaDto cronogramaAlterado, CronogramaDto cronogramaOriginal)
 {
     cronogramaAlterado.TxDescricao = cronogramaOriginal.TxDescricao;
     cronogramaAlterado.DtInicio    = cronogramaOriginal.DtInicio;
     cronogramaAlterado.DtFinal     = cronogramaOriginal.DtFinal;
     resultadoComparacao            = cronogramaOriginal;
 }
        /// <summary>
        /// Método responsável por buscar todos os cronogramas
        /// É usado pela tela de cronograma
        /// </summary>
        /// <param name="session">Sessão Corrente</param>
        /// <returns>Lista de Objetos de CronogramaDTO</returns>
        public static List <CronogramaDto> ConsultarCronogramasDto()
        {
            List <CronogramaDto> cronogramasDTO = new List <CronogramaDto>();

            List <Cronograma> cronogramas = new List <Cronograma>();

            cronogramas = CronogramaDao.ConsultarCronogramas();

            if (cronogramas.Count > 0)
            {
                foreach (Cronograma cronograma in cronogramas)
                {
                    CronogramaDto cronoDTO = new CronogramaDto()
                    {
                        Oid                             = cronograma.Oid,
                        TxDescricao                     = cronograma.TxDescricao,
                        OidSituacaoPlanejamento         = cronograma.SituacaoPlanejamento.Oid,
                        TxDescricaoSituacaoPlanejamento = cronograma.TxDescricaoSituacaoPlanejamento,
                        DtInicio                        = (DateTime)cronograma.DtInicio,
                        DtFinal                         = (DateTime)cronograma.DtFinal
                    };

                    cronogramasDTO.Add(cronoDTO);
                }
            }

            return(cronogramasDTO);
        }
Exemplo n.º 8
0
        public void QuandoOCronogramaAtualRecebeuARecusaDeEdicaoDosDados()
        {
            var           hash                      = CarregarObjetosContexto(StepEdicaoCronogramaHelperFlag.AccessClientMock);
            CronogramaDto cronograma                = hash[CRONOGRAMA_ATUAL] as CronogramaDto;
            UsuarioCronogramaBindHelper  usuario    = hash[USUARIO_ATUAL] as UsuarioCronogramaBindHelper;
            Mock <IWexMultiAccessClient> clientMock = hash[ACCESS_CLIENT_MOCK] as Mock <IWexMultiAccessClient>;

            clientMock.Raise(o => o.AoSerRecusadaEdicaoDadosCronograma += null, Mensagem.RnCriarMensagemRecusaEdicaoNomeCronograma(cronograma.Oid.ToString(), usuario.Login));
        }
        /// <summary>
        /// Método responsável por validar as datas do cronograma.
        /// </summary>
        /// <param name="cronogramaDto">Objeto que contem os dados a serem validados.</param>
        /// <returns>Se os dados são válidos ou não.</returns>
        private static bool ValidarDatasCronograma(CronogramaDto cronogramaDto)
        {
            if (cronogramaDto.DtInicio < cronogramaDto.DtFinal)
            {
                return(true);
            }

            return(false);
        }
        /// <summary>
        /// Método responsável por efetuar a alteração no nome do cronograma
        /// </summary>
        /// <param name="oidCronograma">oid do cronograma com nome a ser alterado</param>
        /// <param name="novaDescricao">novo nome do cronograma</param>
        public bool EditarCronograma(CronogramaDto cronograma)
        {
            //PUT: {base_url}/Cronogramas/
            RestRequest requisicao = new RestRequest("Cronogramas");

            requisicao.RequestFormat = DataFormat.Json;
            requisicao.AddBody(cronograma);
            return(DeserializarResposta(restClient.Put <bool>(requisicao)));
        }
Exemplo n.º 11
0
 public void Inicializar()
 {
     mockEditor = new Mock <IEditorDadosCronograma>();
     mockEditor.Setup(o => o.SalvarEdicaoDadosCronograma(It.IsAny <CronogramaDto>(), It.IsAny <CronogramaDto>())).Callback <CronogramaDto, CronogramaDto>(SalvarEdicao);
     mockEditor.Setup(o => o.DesfazerEdicaoDadosCronograma(It.IsAny <CronogramaDto>(), It.IsAny <CronogramaDto>())).Callback <CronogramaDto, CronogramaDto>(RecusarEdicao);
     editor          = mockEditor.Object;
     cronogramaAtual = CriarCronograma("Cronograma 01", DateTime.Now.Date, DateTime.Now.Date.AddDays(10));
     gerenciador     = new GerenciadorEdicaoCronograma(editor);
 }
Exemplo n.º 12
0
        public async Task Update(CronogramaDto dto)
        {
            var cronograma = await _cronogramaRepos.GetById(dto.Id);

            if (cronograma != null)
            {
                cronograma = _mapper.Map <Dominio._4._1_Entidades.Cronograma>(dto);

                await _cronogramaRepos.Update(cronograma);
            }
        }
Exemplo n.º 13
0
 /// <summary>
 /// Selecionar um cronograma
 /// </summary>
 /// <param name="num"></param>
 public void SelecionarCronograma(int num)
 {
     num--;
     if (num >= cronogramas.Count)
     {
         num = cronogramas.Count - 1;
     }
     if (num < 0)
     {
         num = 0;
     }
     cronogramaSelecionado = cronogramas[num];
 }
        /// <summary>
        /// Método responsável por sinalizar o inicio da edição dos dados do cronograma
        /// </summary>
        public void InicioEdicaoDadosCronograma(CronogramaDto cronograma)
        {
            EmEdicaoNaView = true;
            if (AguardandoRetorno)
            {
                return;
            }

            AguardandoRetorno = true;
            _editado          = cronograma;
            _original         = cronograma.Clonar();
            _editor.ComunicarInicioEdicaoDadosCronograma();
        }
Exemplo n.º 15
0
        public CronogramaDto ConsultarCronogramaPorNome(string nomeCronograma)
        {
            CronogramaDto cronograma = cronogramas.FirstOrDefault(o => o.TxDescricao.Equals(nomeCronograma));

            if (CriarCronogramaSeNomeNaoExistir)
            {
                CriarCronogramaSeNomeNaoExistir = false;
                if (cronograma == null)
                {
                    return(CriarCronograma(nomeCronograma));
                }
            }
            return(cronograma);
        }
Exemplo n.º 16
0
        public bool EditarCronograma(CronogramaDto dto)
        {
            if (cronogramas == null)
            {
                return(false);
            }
            CronogramaDto cronograma = cronogramas.FirstOrDefault(o => o.Oid == dto.Oid);

            if (cronograma == null)
            {
                return(false);
            }
            cronograma.TxDescricao = dto.TxDescricao;
            return(true);
        }
Exemplo n.º 17
0
        /// <summary>
        /// Criar um novo cronograma
        /// </summary>
        /// <param name="num"></param>
        /// <returns></returns>
        public CronogramaDto CriarCronograma(string nomeCronograma, DateTime?dataInicio = null, DateTime?dataTermino = null)
        {
            var           dtInicio   = dataInicio.HasValue ? dataInicio.Value : DateTime.Now;
            var           dtFinal    = dataTermino.HasValue ? dataTermino.Value.Date <= dtInicio.Date ? dtInicio.Date.AddDays(15) : dataTermino.Value : DateTime.Now.AddDays(15);
            CronogramaDto cronograma = new CronogramaDto()
            {
                DtInicio = dtInicio,
                DtFinal  = dtFinal,
                Oid      = Guid.NewGuid(),
                OidSituacaoPlanejamento         = situacaoPlanejamentoPadrao.Oid,
                TxDescricao                     = nomeCronograma,
                TxDescricaoSituacaoPlanejamento = situacaoPlanejamentoPadrao.TxDescricao
            };

            cronogramas.Add(cronograma);
            return(cronograma);
        }
        /// <summary>
        /// Método responsável por criar um instância de cronograma padrão e retornar para a tela de cronograma
        /// </summary>
        /// <returns>Objeto CronogramaDTO</returns>
        public static CronogramaDto DtoFactory(Cronograma cronograma)
        {
            CronogramaDto cronogramaDto = new CronogramaDto();

            if (cronograma != null)
            {
                cronogramaDto.Oid                             = cronograma.Oid;
                cronogramaDto.TxDescricao                     = cronograma.TxDescricao;
                cronogramaDto.OidSituacaoPlanejamento         = (Guid)cronograma.OidSituacaoPlanejamento;
                cronogramaDto.TxDescricaoSituacaoPlanejamento = cronograma.SituacaoPlanejamento.TxDescricao;
                cronogramaDto.DtInicio                        = (DateTime)cronograma.DtInicio;
                cronogramaDto.DtFinal                         = (DateTime)cronograma.DtFinal;

                return(cronogramaDto);
            }

            return(cronogramaDto);
        }
        /// <summary>
        /// Método responsável por buscar um cronograma pelo nome.
        /// </summary>
        /// <param name="session">Sessão Corrente</param>
        /// <param name="txDescricaoCronograma">Nome do Cronograma</param>
        /// <returns>Objeto cronograma</returns>
        public static CronogramaDto ConsultarCronogramaPorOidDto(Guid oidCronograma)
        {
            CronogramaDto cronogramaDto = new CronogramaDto();

            Cronograma cronograma = CronogramaDao.ConsultarCronogramaPorOid(oidCronograma, o => o.SituacaoPlanejamento);

            if (cronograma != null)
            {
                cronogramaDto.Oid = cronograma.Oid;
                cronogramaDto.OidSituacaoPlanejamento         = cronograma.OidSituacaoPlanejamento;
                cronogramaDto.TxDescricao                     = cronograma.TxDescricao;
                cronogramaDto.TxDescricaoSituacaoPlanejamento = cronograma.SituacaoPlanejamento.TxDescricao;
                cronogramaDto.DtInicio = (DateTime)cronograma.DtInicio;
                cronogramaDto.DtFinal  = (DateTime)cronograma.DtFinal;

                return(cronogramaDto);
            }

            return(null);
        }
        /// <summary>
        /// Método responsável por buscar um cronograma pelo nome.
        /// </summary>
        /// <param name="session">Sessão Corrente</param>
        /// <param name="txDescricaoCronograma">Nome do Cronograma</param>
        /// <returns>Objeto cronograma</returns>
        public static CronogramaDto ConsultarCronogramaPorNomeDto(WexDb contexto, string txDescricaoCronograma)
        {
            CronogramaDto cronogramaDto = new CronogramaDto();

            Cronograma cronograma = CronogramaDao.ConsultarCronogramaPorNome(contexto, txDescricaoCronograma);

            if (cronograma != null)
            {
                cronogramaDto.Oid = cronograma.Oid;
                cronogramaDto.OidSituacaoPlanejamento         = cronograma.SituacaoPlanejamento.Oid;
                cronogramaDto.TxDescricao                     = cronograma.TxDescricao;
                cronogramaDto.TxDescricaoSituacaoPlanejamento = cronograma.SituacaoPlanejamento.TxDescricao;
                cronogramaDto.DtInicio = (DateTime)cronograma.DtInicio;
                cronogramaDto.DtFinal  = (DateTime)cronograma.DtFinal;

                return(cronogramaDto);
            }

            return(null);
        }
        /// <summary>
        /// Método responsável por recuperar o último cronograma acessado por um usuário
        /// É usado pela tela de cronograma
        /// </summary>
        /// <param name="contexto">Contexto do banco</param>
        /// <param name="login">Login do Usuário</param>
        /// <returns>Objeto CronogramaDTO</returns>
        public static CronogramaDto ConsultarUltimoCronogramaSelecionadoDto(WexDb contexto, string login)
        {
            CronogramaDto cronogramaDTO = new CronogramaDto();

            Cronograma cronograma = CronogramaUltimaSelecaoDao.ConsultarUltimoCronogramaSelecionado(contexto, login);

            if (cronograma != null)
            {
                cronogramaDTO.Oid                             = cronograma.Oid;
                cronogramaDTO.TxDescricao                     = cronograma.TxDescricao;
                cronogramaDTO.OidSituacaoPlanejamento         = cronograma.SituacaoPlanejamento.Oid;
                cronogramaDTO.TxDescricaoSituacaoPlanejamento = cronograma.SituacaoPlanejamento.TxDescricao;
                cronogramaDTO.DtInicio                        = (DateTime)cronograma.DtInicio;
                cronogramaDTO.DtFinal                         = (DateTime)cronograma.DtFinal;
            }
            else
            {
                cronogramaDTO = null;
            }

            return(cronogramaDTO);
        }
        public void DeveSalvarOsNovosDadosDoCronogramaQuandoADataFinalForAlterada()
        {
            var cronograma = CronogramaBo.CriarCronogramaPadrao(contexto);

            var novaData = DateTime.Now.Date.AddDays(1);

            var dto = new CronogramaDto
            {
                Oid      = cronograma.Oid,
                DtInicio = cronograma.DtInicio,
                DtFinal  = novaData,
                OidSituacaoPlanejamento = cronograma.OidSituacaoPlanejamento,
                TxDescricao             = cronograma.TxDescricao
            };

            Assert.AreNotEqual(novaData, cronograma.DtFinal, "As datas devem ser inicialmente diferentes");
            Assert.IsTrue(CronogramaBo.EditarCronograma(dto), "Deveria ter salvo a edição do cronograma");

            contexto.Entry(cronograma).Reload();
            Assert.AreEqual(dto.TxDescricao, cronograma.TxDescricao, "Deveria ter salvo o nome do cronograma");
            Assert.AreEqual(dto.DtInicio, cronograma.DtInicio, "Deveria ter salvo a data de inicio do cronograma");
            Assert.AreEqual(dto.DtFinal, cronograma.DtFinal, "Deveria ter salvo a data de termino do cronograma");
        }
Exemplo n.º 23
0
 private void SalvarEdicao(CronogramaDto cronogramaAlterado, CronogramaDto cronogramaOriginal)
 {
     resultadoComparacao = cronogramaAlterado;
 }
Exemplo n.º 24
0
 public ActionResult EditarCronograma(CronogramaDto cronograma)
 {
     return(Json(CronogramaBo.EditarCronograma(cronograma)));
 }
 /// <summary>
 /// Métodor responsável por efetuar uma cópia dos dados do cronograma
 /// </summary>
 /// <param name="cronograma">entidade cronograma</param>
 /// <param name="cronogramaDto">dto com novos dados do cronograma</param>
 private static void AtualizarDadosCronograma(Cronograma cronograma, CronogramaDto cronogramaDto)
 {
     cronograma.OidSituacaoPlanejamento = cronogramaDto.OidSituacaoPlanejamento;
     cronograma.DtInicio = cronogramaDto.DtInicio;
     cronograma.DtFinal  = cronogramaDto.DtFinal;
 }
Exemplo n.º 26
0
 /// <summary>
 /// Adiciona um dto no serviço stub e armazena o cronograma dto criado no ao contexto do BDD
 /// </summary>
 /// <param name="cronogramaDto"></param>
 private void CriarEArmazenarCronogramaDto(CronogramaDto cronogramaDto)
 {
     cronogramaDto = planejamentoServiceStub.CriarCronograma(cronogramaDto.TxDescricao, cronogramaDto.DtInicio, cronogramaDto.DtFinal);
     AdicionarAoContextoAtualBDD(CriarChave(FORMATO_CHAVE_CRONOGRAMA, cronogramaDto.TxDescricao), cronogramaDto);
 }
 public void AtualizarCronogramaSelecionado(CronogramaDto dto)
 {
 }
 /// <summary>
 /// Restaura os valores padrão
 /// </summary>
 private void RestaurarValoresPadroes()
 {
     _original  = null;
     _editado   = null;
     Autorizado = false;
 }
Exemplo n.º 29
0
 public async Task Create(CronogramaDto dto)
 {
     await _cronogramaRepos.Create(_mapper.Map <Dominio._4._1_Entidades.Cronograma>(dto));
 }