/// <summary> /// Método responsável por salvar o último cronograma selecionado por um usuário. /// </summary> /// <param name="contexto">contexto do banco</param> /// <param name="login">Login do usuário</param> /// <param name="oidCronograma">Oid do Cronograma selecionado</param> public static void SalvarUltimoCronogramaSelecionado(WexDb contexto, string login, Guid?oidCronograma) { if (contexto == null || login == null || !oidCronograma.HasValue) { throw new ArgumentException("Os parâmetros session, oidUsuario e oidCronograma não podem nulos."); } User usuario = contexto.Usuario.FirstOrDefault(o => o.UserName == login); DateTime dataAcesso = DateTime.Now; Cronograma cronogramaSelecionado = contexto.Cronograma.FirstOrDefault(o => o.Oid == oidCronograma.Value); CronogramaUltimaSelecao ultimoCronogramaSelecionado = contexto.CronogramaUltimaSelecao.FirstOrDefault(o => o.OidUsuario == usuario.Oid); if (ultimoCronogramaSelecionado != null) { ultimoCronogramaSelecionado.DataAcesso = dataAcesso; ultimoCronogramaSelecionado.Usuario = usuario; ultimoCronogramaSelecionado.Cronograma = cronogramaSelecionado; contexto.SaveChanges(); } else { CronogramaUltimaSelecao ultimoCronograma = new CronogramaUltimaSelecao(); ultimoCronograma.DataAcesso = dataAcesso; ultimoCronograma.Usuario = usuario; ultimoCronograma.Cronograma = cronogramaSelecionado; contexto.CronogramaUltimaSelecao.Add(ultimoCronograma); contexto.SaveChanges(); } }
/// <summary> /// Método utilizado para remover todas as seleções dos usuários associados ao cronograma como ultima seleção. /// </summary> /// <param name="contexto">contexto do banco</param> /// <param name="oidCronograma">oid do cronograma a ser removidas as seleções</param> public static void RemoverSelecoesAssociadasAoCronograma(WexDb contexto, Guid oidCronograma) { List <CronogramaUltimaSelecao> colecao = contexto.CronogramaUltimaSelecao.Where(o => o.Cronograma.Oid == oidCronograma).ToList(); if (colecao != null && colecao.Count > 0) { int contador = colecao.Count; for (int i = 0; i < contador; i++) { CronogramaUltimaSelecao ultimaSelecao = colecao[i]; contexto.CronogramaUltimaSelecao.Remove(ultimaSelecao); contexto.SaveChanges(); } } }
public void ExcluirCronogramaQuandoCronogramaNaoPossuirTarefasEPossuirUltimaSelecaoTest() { SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true); Cronograma cronograma1 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma 01", situacaoPlanejamento, new DateTime(), new DateTime(), true); User usuario = CronogramaFactoryEntity.CriarUsuario(contexto, "anderson.lins", "Anderson", "Lins", "*****@*****.**", true); CronogramaUltimaSelecao ultimaSelecao = new CronogramaUltimaSelecao(); ultimaSelecao.DataAcesso = DateTime.Now; ultimaSelecao.Usuario = usuario; ultimaSelecao.OidUltimoCronograma = cronograma1.Oid; ultimaSelecao.Cronograma = cronograma1; bool cronogramaExcluido = CronogramaBo.ExcluirCronograma(contexto, cronograma1.Oid); Assert.IsTrue(cronogramaExcluido, "Deveria ser verdadeiro, pois o cronograma não possui tarefas associadas a ele."); }
public void ExcluirCronogramaQuandoCronogramaPossuirTarefasEUltimaSelecaoParaUmUsuarioTest() { SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true); Cronograma cronograma1 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma 01", situacaoPlanejamento, new DateTime(), new DateTime(), true); Colaborador colaborador = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", new DateTime(), "*****@*****.**", "Anderson", "", "Lins", "anderson.lins", null, true); CronogramaTarefa cronogramaTarefa = CronogramaFactoryEntity.CriarTarefa(contexto, 1, "Tarefa 01", "", situacaoPlanejamento, 0, new TimeSpan(), colaborador, cronograma1, null, true); CronogramaUltimaSelecao ultimaSelecao = new CronogramaUltimaSelecao(); ultimaSelecao.DataAcesso = DateTime.Now; ultimaSelecao.Usuario = colaborador.Usuario; ultimaSelecao.OidUltimoCronograma = cronograma1.Oid; ultimaSelecao.Cronograma = cronograma1; bool cronogramaExcluido = CronogramaBo.ExcluirCronograma(contexto, cronograma1.Oid); Assert.IsTrue(cronogramaExcluido, "Deveria ser true, pois o cronograma exclui quaisquer tarefas associadas a ele."); }
/// <summary> /// Método que busca o último cronograma selecionado pelo usuário. /// </summary> /// <param name="contexto">contexto do banco</param> /// <param name="login">Login do usuário</param> /// <returns>Objeto Cronograma que representa o último selecionado</returns> public static Cronograma ConsultarUltimoCronogramaSelecionado(WexDb contexto, string login) { if (contexto == null || login == null) { throw new ArgumentException("Os parâmetros session e login usuário não podem ser nulos."); } CronogramaUltimaSelecao ultimaSelecao = contexto.CronogramaUltimaSelecao.Include(o => o.Cronograma).Include(o => o.Cronograma.SituacaoPlanejamento).Include(o => o.Usuario).FirstOrDefault(o => o.Usuario.UserName == login); if (ultimaSelecao == null) { return(null); } if (ultimaSelecao.Cronograma == null || ultimaSelecao.Cronograma.CsExcluido) { return(null); } return(ultimaSelecao.Cronograma); }