예제 #1
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);
        }