/// <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); } }
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!"); } }
/// <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); }