/// <summary>
        /// Método responsável por escolher e retornar uma cor para um colaborador em um determinado cronograma
        /// </summary>
        /// <param name="contexto">Contexto do Banco</param>
        /// <param name="oidColaborador">Oid identificação do colaborador</param>
        /// <param name="oidCronograma">Oid identificação do cronograma</param>
        /// <returns>Caso existam o colaborador e o cronograma retornará um string contendo a cor selecionada para o usuário naquele cronograma</returns>
        public static string EscolherCorColaborador(string login, Guid oidCronograma)
        {
            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                string cor = null;
                CronogramaColaboradorConfig config = CronogramaColaboradorConfigDao.ConsultarCronogramaColaboradorConfig(contexto, login, oidCronograma);

                if (config == null)
                {
                    config = CronogramaColaboradorConfigDao.SalvarCronogramaColaboradorConfig(contexto, login, oidCronograma);

                    if (config == null)
                    {
                        return(null);
                    }
                }
                else
                {
                    if (config.Cor != null)
                    {
                        return(Convert.ToString(config.Cor));
                    }
                }

                List <string> coresArmazenadas = CronogramaColaboradorConfigDao.ConsultarCoresPorCronograma(contexto, oidCronograma);
                cor        = ColaboradorConfigBo.SelecionarCor(coresArmazenadas);
                config.Cor = Convert.ToInt32(cor);
                contexto.SaveChanges();
                return(cor);
            }
        }
示例#2
0
        public void SelecionarCorQuandoNaoHouverNenhumaCorSelecionada()
        {
            string        cor1              = ConverterCorToArgbString(ColaboradorConfigBo.Cores[0]);
            string        cor2              = ConverterCorToArgbString(ColaboradorConfigBo.Cores[1]);
            string        cor3              = ConverterCorToArgbString(ColaboradorConfigBo.Cores[2]);
            string        cor4              = ConverterCorToArgbString(ColaboradorConfigBo.Cores[3]);
            List <string> todasCoresPadrao  = new List <string>(ColaboradorConfigBo.Cores.Select(o => ConverterCorToArgbString(o)));
            List <string> coresSelecionadas = new List <string>();

            string corSelecionda1 = ColaboradorConfigBo.SelecionarCor(coresSelecionadas);

            coresSelecionadas.Add(corSelecionda1);

            string corSelecionda2 = ColaboradorConfigBo.SelecionarCor(coresSelecionadas);

            coresSelecionadas.Add(corSelecionda2);

            string corSelecionda3 = ColaboradorConfigBo.SelecionarCor(coresSelecionadas);

            coresSelecionadas.Add(corSelecionda3);

            string corSelecionda4 = ColaboradorConfigBo.SelecionarCor(coresSelecionadas);

            coresSelecionadas.Add(corSelecionda4);

            Assert.AreEqual(cor1, corSelecionda1, "A cor selecionada deveria corresponder a primeira cor");
            Assert.AreEqual(cor2, corSelecionda2, "A cor selecionada deveria corresponder a segunda cor");
            Assert.AreEqual(cor3, corSelecionda3, "A cor selecionada deveria corresponder a terceira cor");
            Assert.AreEqual(cor4, corSelecionda4, "A cor selecionada deveria corresponder a quarta cor");

            string corSelecao;

            for (int i = 4; i < ColaboradorConfigBo.Cores.Length; i++)
            {
                corSelecao = ColaboradorConfigBo.SelecionarCor(coresSelecionadas);
                coresSelecionadas.Add(corSelecao);
            }

            CollectionAssert.AreEqual(todasCoresPadrao, coresSelecionadas, "Todas as cores deveriam ter sido selecionadas");

            List <string> novasCores = new List <string>();

            for (int i = 0; i < 5; i++)
            {
                corSelecao = ColaboradorConfigBo.SelecionarCor(coresSelecionadas);
                novasCores.Add(corSelecao);
                coresSelecionadas.Add(corSelecao);
            }

            foreach (string novaCor in novasCores)
            {
                Assert.IsFalse(todasCoresPadrao.Contains(novaCor), "Nenhuma cor deveria ser repetiva após a quantidade padrão de cores!");
            }
        }
示例#3
0
        /// <summary>
        /// Método responsável por escolher a cor do usuário em um determinado cronograma de um projeto.
        /// </summary>
        public static string RnEscolherCor(Session session, Guid oidColaborador, Guid oidProjeto)
        {
            Projeto projeto = Projeto.GetProjetoPorOid(session, oidProjeto);

            if (projeto == null)
            {
                throw new Exception("A cor não pode ser selecionada, o projeto selecionado não existe!");
            }

            Colaborador colaborador = Colaborador.GetColaboradorPorOid(session, oidColaborador);

            if (colaborador == null)
            {
                throw new Exception("A cor não pode ser selecionada, o colaborador selecionado não existe!");
            }

            ProjetoColaboradorConfig config = ProjetoColaboradorConfig.GetProjetoColaboradorConfig(session, oidColaborador, oidProjeto);
            string cor = string.Empty;

            if (config != null)
            {
                cor = config.Cor;
            }
            else
            {
                ProjetoColaboradorConfig colaboradorConfig = new ProjetoColaboradorConfig(session);
                //List<ProjetoColaboradorConfig> configs = GetConfigColaboradores( session, oidProjeto );
                //List<string> coresProjeto = new List<string>( configs.Select( o => o.cor ) );
                List <string> coresProjeto = GetCoresPorProjeto(session, oidProjeto);
                cor = ColaboradorConfigBo.SelecionarCor(coresProjeto);
                colaboradorConfig.Projeto     = projeto;
                colaboradorConfig.Colaborador = colaborador;
                colaboradorConfig.Cor         = cor;
                colaboradorConfig.Save();
            }
            return(cor);
        }