/// <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);
            }
        }
        /// <summary>
        /// Método utilizado para criar uma configuração para um colaborador em um determinado cronograma
        /// </summary>
        /// <param name="contexto">contexto do banco</param>
        /// <param name="login"></param>
        /// <param name="oidCronograma">oid do cronograma atual</param>
        /// <returns>ColaboradorCronogramaConfig para armazenar as configurações do colaborador</returns>
        public static CronogramaColaboradorConfig SalvarCronogramaColaboradorConfig(WexDb contexto, string login, Guid oidCronograma)
        {
            Cronograma cronograma = CronogramaDao.ConsultarCronogramaPorOid(oidCronograma);

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

            Colaborador colaborador = ColaboradorDAO.ConsultarColaborador(login);

            if (colaborador == null)
            {
                return(null);
            }

            CronogramaColaboradorConfig config = ConsultarCronogramaColaboradorConfig(contexto, login, oidCronograma);

            if (config != null)
            {
                return(config);
            }

            config = new CronogramaColaboradorConfig()
            {
                OidCronograma  = cronograma.Oid,
                OidColaborador = colaborador.Oid
            };

            contexto.CronogramaColaboradorConfig.Add(config);
            contexto.SaveChanges();

            return(config);
        }
        public void SelecionarCorColaboradorTest()
        {
            ColaboradorFactoryEntity.CriarColaborador(contexto, "gabriel.matos", true);
            Cronograma cronograma = CronogramaBo.CriarCronogramaPadrao(contexto);
            CronogramaColaboradorConfig config = CronogramaColaboradorConfigDao.SalvarCronogramaColaboradorConfig(contexto, "gabriel.matos", cronograma.Oid);
            string cor = CronogramaColaboradorConfigBo.EscolherCorColaborador("gabriel.matos", cronograma.Oid);

            Assert.IsNotNull(cor, "Deveria ter selecionado uma cor para o colaborador");
            string cor2 = CronogramaColaboradorConfigBo.EscolherCorColaborador("gabriel.matos", cronograma.Oid);

            Assert.AreEqual(cor, cor2, "Ao ser chamado pela segunda vez, deveria retornar a mesma cor escolhida que foi escolhida na primeira vez");
        }
        public void CriarColaboradorCronogramaConfigTest()
        {
            ColaboradorFactoryEntity.CriarColaborador(contexto, "gabriel.matos", true);

            Cronograma cronograma = CronogramaBo.CriarCronogramaPadrao(contexto);

            CronogramaColaboradorConfig config = CronogramaColaboradorConfigDao.SalvarCronogramaColaboradorConfig(contexto, "gabriel.matos", cronograma.Oid);

            Assert.IsNotNull(config, "Deveria ter sido criado o CronogramaColaborador Config para o Colabordor atual");

            CronogramaColaboradorConfig config2 = CronogramaColaboradorConfigDao.SalvarCronogramaColaboradorConfig(contexto, "gabriel.matos", cronograma.Oid);

            Assert.AreEqual(config.Oid, config2.Oid, "Deveria possuir as mesmas configurações");
        }
        /// <summary>
        /// Método responsável por excluir todos cronograma colaborador configs do cronograma atual
        /// </summary>
        /// <param name="contexto">contexto do banco</param>
        /// <param name="oidCronogramaAtual">Oid do cronograma</param>
        public static void ExcluirTodosConfigsCronogramaAtual(WexDb contexto, Guid oidCronogramaAtual)
        {
            List <CronogramaColaboradorConfig> colecao = CronogramaColaboradorConfigDao.ConsultarTodosCronogramaColaboradorConfig(contexto, oidCronogramaAtual);

            if (colecao != null && colecao.Count > 0)
            {
                int contador = colecao.Count;
                for (int i = 0; i < contador; i++)
                {
                    CronogramaColaboradorConfig ultimaSelecao = colecao[i];
                    contexto.CronogramaColaboradorConfig.Remove(ultimaSelecao);
                    contexto.SaveChanges();
                }
            }
        }
        /// <summary>
        /// Método responsável por consultar o usuario conectado e criar um Dto de UsuarioConectadoDto para retornar.
        /// </summary>
        /// <param name="contexto">Contexto do banco</param>
        /// <param name="login">login do usuário conectado</param>
        /// <param name="oidCronograma">Oid do cronograma do usuário conectado</param>
        /// <returns>Objeto UsuarioConectadoDto</returns>
        public static CronogramaColaboradorConfigDto ConsultarCronogramaColaboradorConfigs(string login, Guid oidCronograma)
        {
            Colaborador colaborador = ColaboradorDAO.ConsultarColaborador(login, o => o.Usuario.Person.Party);

            if (colaborador == null)
            {
                return(null);
            }

            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                CronogramaColaboradorConfig config = CronogramaColaboradorConfigDao.ConsultarCronogramaColaboradorConfig(contexto, login, oidCronograma);

                if (config == null)
                {
                    return(null);
                }

                return(CronogramaColaboradorConfigBo.CronogramaColaboradorConfigFactory(colaborador, oidCronograma, config));
            }
        }
Beispiel #7
0
        /// <summary>
        /// Método responsável por criar um Dto de Usuario Conectado com os dados do colaborador e config do colaborador no cronograma
        /// </summary>
        /// <param name="colaborador">Objeto do colaborador</param>
        /// <param name="oidCronograma">Oid do cronograma que o usuário está conectado</param>
        /// <param name="config">Config do colaborador no cronograma</param>
        /// <returns>Dto de UsuarioConectado</returns>
        public static UsuarioConectadoDto UsuarioConectadoFactory(Colaborador colaborador, Guid oidCronograma, CronogramaColaboradorConfig config)
        {
            UsuarioConectadoDto usuarioConectado = new UsuarioConectadoDto(colaborador.Oid, oidCronograma)
            {
                LoginColaborador        = colaborador.Usuario.UserName,
                NomeCompletoColaborador = colaborador.NomeCompleto,
                Foto = colaborador.Usuario.Person.Party.Photo,
                Cor  = config.Cor.ToString()
            };

            return(usuarioConectado);
        }
        /// <summary>
        /// Método responsável por criar um Dto de Usuario Conectado com os dados do colaborador e config do colaborador no cronograma
        /// </summary>
        /// <param name="colaborador">Objeto do colaborador</param>
        /// <param name="oidCronograma">Oid do cronograma que o usuário está conectado</param>
        /// <param name="config">Config do colaborador no cronograma</param>
        /// <returns>Dto de UsuarioConectado</returns>
        public static CronogramaColaboradorConfigDto CronogramaColaboradorConfigFactory(Colaborador colaborador, Guid oidCronograma, CronogramaColaboradorConfig config)
        {
            CronogramaColaboradorConfigDto usuarioConectado = new CronogramaColaboradorConfigDto()
            {
                OidCronograma           = oidCronograma,
                OidColaborador          = colaborador.Oid,
                Login                   = colaborador.Usuario.UserName,
                NomeCompletoColaborador = colaborador.NomeCompleto,
                Foto = colaborador.Usuario.Person.Party.Photo,
                Cor  = config.Cor.ToString()
            };

            return(usuarioConectado);
        }
Beispiel #9
0
        public void ConsultarColaboradorCronogramaConfigQuandoColaboradorOuCronogramaNaoExistirTest()
        {
            CronogramaColaboradorConfig config = CronogramaColaboradorConfigDao.ConsultarCronogramaColaboradorConfig(contexto, "gabriel.matos", Guid.NewGuid());

            Assert.IsNull(config, "Não deveria ter criado um configuração, quando o colaborador ou cronograma não existirem");
        }
Beispiel #10
0
        public void ConsultarCronogramaColaboradorConfigQuandoColaboradorOuCronogramaNaoExistirTest()
        {
            CronogramaColaboradorConfig config = CronogramaColaboradorConfigDao.ConsultarCronogramaColaboradorConfig(contexto, "gabriel.matos", Guid.NewGuid());

            Assert.IsNull(config);
        }