/// <summary> /// Factory para crição do objeto de criação de tarefas /// </summary> /// <param name="contexto">contexto do banco</param> /// <param name="nbId">descrição para id da tarefa</param> /// <param name="txDescricao">descrição para nome da tarefa</param> /// <param name="txObservacao">descrição para observação da tarefa</param> /// <param name="situacaoPlanejamento">situação da tarefa</param> /// <param name="estimativaInicial">estimativa inicial da tarefa</param> /// <param name="realizado">Número de horas realizada na tarefa</param> /// <param name="colaborador">Colaborador atrelado a tarefa</param> /// <param name="cronograma">Cronograma da tarefa</param> /// <param name="tarefaSelecionada">verifica se nenhuma tarefa foi selecionada</param> /// <param name="save">verificação se é necessário salvar o objeto</param> /// <returns>Objeto de Tarefa</returns> public static CronogramaTarefa CriarTarefa(WexDb contexto, ushort nbId, String txDescricao, String txObservacao, SituacaoPlanejamento situacaoPlanejamento, Int16 estimativaInicial, TimeSpan realizado, Colaborador colaborador, Cronograma cronograma, CronogramaTarefa tarefaSelecionada, bool save = false) { CronogramaTarefa tarefa = new CronogramaTarefa() { Tarefa = new Tarefa() { SituacaoPlanejamento = new SituacaoPlanejamento() } }; tarefa.Cronograma = cronograma; if (situacaoPlanejamento != null) { tarefa.Tarefa.SituacaoPlanejamento = situacaoPlanejamento; } tarefa.Tarefa.TxDescricao = txDescricao; tarefa.Tarefa.TxObservacao = txObservacao; tarefa.Tarefa.DtInicio = new DateTime(2011, 11, 01); tarefa.Tarefa.NbEstimativaInicial = estimativaInicial; tarefa.Tarefa.TxResponsaveis = colaborador.NomeCompleto; tarefa.Tarefa.EstimativaRealizadoHora = realizado; tarefa.Tarefa.AtualizadoPor = colaborador; if (save) { contexto.CronogramaTarefa.Add(tarefa); contexto.SaveChanges(); } return(tarefa); }
public void ExcluirCronogramaQuandoExistirTarefasComHistoricoNoCronogramaTest() { //cria situação planejamento SituacaoPlanejamento situacaoPlanejamentoNaoIniciado = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Não Iniciado", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Planejamento, CsPadraoSistema.Sim, true); SituacaoPlanejamento situacaoPlanejamentoEmAndamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Em Andamento", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Planejamento, CsPadraoSistema.Sim, true); Colaborador colaborador = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true); Cronograma cronograma1 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma 01", situacaoPlanejamentoNaoIniciado, new DateTime(), new DateTime(), true); List <CronogramaTarefa> tarefasReordenadas = new List <CronogramaTarefa>(); DateTime dataHoraDaAcao = new DateTime(); CronogramaTarefa cronogramaTarefa = CronogramaBo.CriarTarefa(cronograma1.Oid, (string)"Tarefa 01", situacaoPlanejamentoNaoIniciado.Oid.ToString(), DateTime.Today, colaborador.Usuario.UserName, "", "", out tarefasReordenadas, ref dataHoraDaAcao, 5); TarefaHistoricoTrabalhoBo.CriarHistoricoTarefa((Guid)cronogramaTarefa.OidTarefa, colaborador.Usuario.UserName, new TimeSpan(3, 0, 0), DateTime.Now, new TimeSpan(8, 0, 0), new TimeSpan(11, 0, 0), "comentário", new TimeSpan(2, 0, 0), situacaoPlanejamentoEmAndamento.Oid, ""); TarefaHistoricoTrabalho historicoCriado = TarefaHistoricoTrabalhoDao.ConsultarTarefaHistoricoAtualPorOidTarefa((Guid)cronogramaTarefa.OidTarefa); bool cronogramaExcluido = CronogramaBo.ExcluirCronograma(contexto, cronograma1.Oid); Assert.IsNotNull(historicoCriado, "Deveria ter criado um histórico pra tarefa"); Assert.IsTrue(cronogramaExcluido, "Deveria ser true, pois o cronograma exclui quaisquer tarefas associadas a ele."); }
/// <summary> /// Método responsável por construir um objeto novaTarefaDto a partir de dados vindos de uma hash. /// </summary> /// <param name="dadosTarefa">Hash contendo os dados relevantes de uma tarefa que foi criada</param> /// <returns>Retorna um DTO com o Oid, NbId, lista de tarefas impactadas, data da atualização e quem atualizou a tarefa</returns> public static TarefaCriadaDto TarefaCriadaDtoFactory(CronogramaTarefa novaTarefa, List <CronogramaTarefa> impactadas, DateTime dataHoraAcao) { TarefaCriadaDto tarefa = new TarefaCriadaDto() { OidCronogramaTarefa = novaTarefa.Oid, OidCronograma = (Guid)novaTarefa.OidCronograma, OidTarefa = novaTarefa.Tarefa.Oid, NbIdTarefa = novaTarefa.NbID, TarefasImpactadas = impactadas.ToDictionary(o => o.Oid.ToString(), o => o.NbID), CsLinhaBaseSalva = novaTarefa.Tarefa.CsLinhaBaseSalva, DtInicio = (DateTime)novaTarefa.Tarefa.DtInicio, NbEstimativaInicial = novaTarefa.Tarefa.NbEstimativaInicial, NbEstimativaRestante = novaTarefa.Tarefa.NbEstimativaRestante, NbRealizado = novaTarefa.Tarefa.NbRealizado, OidSituacaoPlanejamentoTarefa = novaTarefa.Tarefa.SituacaoPlanejamento.Oid, TxDescricaoColaborador = novaTarefa.Tarefa.TxResponsaveis, TxDescricaoSituacaoPlanejamentoTarefa = novaTarefa.Tarefa.SituacaoPlanejamento.TxDescricao, TxDescricaoTarefa = novaTarefa.Tarefa.TxDescricao, TxObservacaoTarefa = novaTarefa.Tarefa.TxObservacao, DtAtualizadoEm = (DateTime)novaTarefa.Tarefa.DtAtualizadoEm, TxAtualizadoPor = novaTarefa.Tarefa.AtualizadoPor.NomeCompleto, dataHoraAcao = dataHoraAcao, }; return(tarefa); }
/// <summary> /// Método responsável por buscar uma tarefa pelo Oid e Converter para Dto /// </summary> /// <param name="oidCronogramaTarefa">Oid da tarefa a ser procurada</param> /// <returns>Tarefa encontrada</returns> public static CronogramaTarefaDto ConsultarCronogramaTarefaPorOidDto(Guid oidCronogramaTarefa) { CronogramaTarefa cronogramaTarefa = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(oidCronogramaTarefa, o => o.Tarefa.AtualizadoPor.Usuario.Person, o => o.Tarefa.SituacaoPlanejamento, o => o.Cronograma); DateTime dataHoraAcao = DateTime.Now; return(CronogramaTarefaBo.DtoFactory(cronogramaTarefa, dataHoraAcao)); }
public void EditarTarefaQuandoLinhaBaseNaoEstiverSalvaTest() { //cria situação planejamento SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true); Cronograma cronogramaPadrao1 = CronogramaBo.CriarCronogramaPadrao(contexto); Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true); string responsaveis = colaborador1.NomeCompleto; //iníco tarefa DateTime dataInicio = DateTime.Now; List <CronogramaTarefa> tarefaImpactadas; DateTime dataHoraAcao = new DateTime(); CronogramaTarefa novaTarefa = CronogramaTarefaBo.CriarCronogramaTarefa(cronogramaPadrao1.Oid, (string)"Tarefa 01", situacaoPlanejamento, dataInicio, responsaveis, colaborador1.Usuario.UserName, out tarefaImpactadas, ref dataHoraAcao, (string)"Criar método", 3, 0); //busca tarefa criada CronogramaTarefa tarefaCriada = contexto.CronogramaTarefa.FirstOrDefault(o => o.Oid == novaTarefa.Oid); //Alterando responsaveis Colaborador colaborador2 = ColaboradorFactoryEntity.CriarColaborador(contexto, "pedro.lins", true); colaborador2.Usuario.UserName = "******"; Colaborador colaborador3 = ColaboradorFactoryEntity.CriarColaborador(contexto, "joao.lins", true); colaborador3.Usuario.UserName = "******"; string responsaveisAlterado = String.Format("{0},{1}", colaborador2.NomeCompleto, colaborador3.NomeCompleto); //cria situação planejamento alterada SituacaoPlanejamento situacaoPlanejamento2 = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S2", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Cancelamento, CsPadraoSistema.Sim, true); string txDescricaoAlterada = "Tarefa 01 alterada"; string txObservacaoAlterada = "Criar método alterado"; Int16 EstimativaInicialHoraAlterada = 4; TarefaBo.EditarTarefa(tarefaCriada.Oid.ToString(), txDescricaoAlterada, situacaoPlanejamento2.Oid.ToString(), colaborador1.Usuario.UserName, txObservacaoAlterada, responsaveisAlterado, EstimativaInicialHoraAlterada, new TimeSpan(0), new TimeSpan(0), false, dataInicio); //busca tarefa criada CronogramaTarefa tarefaAlterada = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(tarefaCriada.Oid, o => o.Tarefa.SituacaoPlanejamento, o => o.Tarefa.TarefaResponsaveis); DateUtil.CurrentDateTime = (DateTime)tarefaAlterada.Tarefa.DtAtualizadoEm; Assert.AreEqual(DateUtil.CurrentDateTime, tarefaAlterada.Tarefa.DtAtualizadoEm, "As datas devem ser iguais."); Assert.AreEqual(txDescricaoAlterada, tarefaAlterada.Tarefa.TxDescricao, "Devem ser as mesmas, pois a descrição foi alterada."); Assert.AreEqual(txObservacaoAlterada, tarefaAlterada.Tarefa.TxObservacao, "Devem ser as mesmas, pois a data foi alterada."); Assert.AreEqual(EstimativaInicialHoraAlterada, tarefaAlterada.Tarefa.NbEstimativaInicial, ""); Assert.AreEqual(situacaoPlanejamento2.Oid, tarefaAlterada.Tarefa.OidSituacaoPlanejamento, ""); Assert.AreEqual(responsaveisAlterado, tarefaAlterada.Tarefa.TxResponsaveis); }
/// <summary> /// Método responsável por editar uma tarefa /// </summary> /// <param name="contexto">Sessão corrente</param> /// <param name="oidCronogramaTarefa">Oid (Guid) da tarefa a ser editada</param> /// <param name="txDescricao">Descrição da tarefa alterada</param> /// <param name="oidSituacaoPlanejamento">Oid (Guid) da tarefa editada</param> /// <param name="dataInicio">Data de Inicio da tarefa editada</param> /// <param name="login">Login do usuário que editou a tarefa</param> /// <param name="txObservacao">Observação da tarefa editada</param> /// <param name="responsaveis">array de responsáveis pela tarefa</param> /// <param name="nbEstimativaInicial">Estimativa inicial da tarefa</param> /// <param name="nbEstimativaRestante">Estimativa restante da tarefa</param> /// <param name="nbRealizado">Horas realizadas da tarefa</param> /// <param name="csLinhaBaseSalva">Boolean afirmando se a tarefa foi salva a linda de base</param> /// <returns>Retorna uma Hash contendo dados de atualizado em, atualizado por e confirmação da edição</returns> public static Hashtable EditarTarefa(string oidCronogramaTarefa, string txDescricao, string oidSituacaoPlanejamento, string login, string txObservacao, string responsaveis, Int16 nbEstimativaInicial, TimeSpan nbEstimativaRestante, TimeSpan nbRealizado, bool csLinhaBaseSalva, DateTime dataInicio) { if (oidCronogramaTarefa == null || txDescricao == null || oidSituacaoPlanejamento == null || login == null) { throw new ArgumentException("Os parâmetros OidCronogramaTarefa, TxDescricao, DataInício, SituacaoPlanejamento, login e TxObservação são obrigatórios."); } Hashtable dadosEdicaoTarefa = new Hashtable(); CronogramaTarefa cronogramaTarefa = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(Guid.Parse(oidCronogramaTarefa), o => o.Tarefa.SituacaoPlanejamento, o => o.Tarefa.AtualizadoPor.Usuario.Person); if (cronogramaTarefa == null) { dadosEdicaoTarefa.Add("EdicaoStatus", false); return(dadosEdicaoTarefa); } Tarefa tarefaAntiga = cronogramaTarefa.Tarefa.Clone(); Colaborador colaborador = ColaboradorDAO.ConsultarColaborador(login, o => o.Usuario.Person); SituacaoPlanejamento situacaoPlanejamento = SituacaoPlanejamentoDAO.ConsultarSituacaoPlanejamentoPorOid(Guid.Parse(oidSituacaoPlanejamento)); if (colaborador != null) { cronogramaTarefa.Tarefa.OidAtualizadoPor = colaborador.Oid; cronogramaTarefa.Tarefa.AtualizadoPor = null; } if (situacaoPlanejamento != null) { cronogramaTarefa.Tarefa.OidSituacaoPlanejamento = situacaoPlanejamento.Oid; cronogramaTarefa.Tarefa.SituacaoPlanejamento = null; } cronogramaTarefa.Tarefa.CsLinhaBaseSalva = csLinhaBaseSalva; cronogramaTarefa.Tarefa.NbEstimativaInicial = nbEstimativaInicial; cronogramaTarefa.Tarefa.EstimativaRealizadoHora = nbRealizado; cronogramaTarefa.Tarefa.TxDescricao = txDescricao; cronogramaTarefa.Tarefa.TxObservacao = txObservacao; cronogramaTarefa.Tarefa.DtAtualizadoEm = DateTime.Now; cronogramaTarefa.Tarefa.TxResponsaveis = responsaveis; cronogramaTarefa.Tarefa.DtInicio = dataInicio; EstimarHorasRestantesSugeridaPorTipoSituacaoPlanejamento(cronogramaTarefa.Tarefa, nbEstimativaRestante.Ticks, situacaoPlanejamento); TarefaDao.SalvarTarefa(cronogramaTarefa.Tarefa); TarefaHistoricoEstimativaBo.CriarHistorico(DateUtil.ConsultarDataHoraAtual(), cronogramaTarefa.Tarefa.Oid, cronogramaTarefa.Tarefa.NbEstimativaRestante); TarefaLogAlteracaoBo.CriarLogTarefa(cronogramaTarefa.Tarefa, tarefaAntiga); dadosEdicaoTarefa.Add("EdicaoStatus", true); dadosEdicaoTarefa.Add("DtAtualizadoEm", cronogramaTarefa.Tarefa.DtAtualizadoEm); dadosEdicaoTarefa.Add("TxAtualizadoPor", colaborador.NomeCompleto); return(dadosEdicaoTarefa); }
public ActionResult CriarTarefa(TarefaCriacaoDto tarefa) { CronogramaTarefa novaTarefa = null; List <CronogramaTarefa> tarefasImpactadas = null; DateTime dataHoraAcao = new DateTime(); novaTarefa = CronogramaBo.CriarTarefa(tarefa.OidCronograma, tarefa.TxDescricaoTarefa, tarefa.OidSituacaoPlanejamentoTarefa, tarefa.DtInicio, tarefa.AutorCriacao, tarefa.TxObservacaoTarefa, tarefa.TxResponsaveis, out tarefasImpactadas, ref dataHoraAcao, tarefa.NbEstimativaInicial, tarefa.NbIdReferencia); return(Json(TarefaBo.TarefaCriadaDtoFactory(novaTarefa, tarefasImpactadas, dataHoraAcao))); }
/// <summary> /// Método responsável por salvar um CronogramaTarefa no banco de dados. /// Caso gere exception, tenta novamente realizar a ação de salvar. /// </summary> /// <param name="contexto">contexto do banco</param> /// <param name="cronogramaTarefa">CronogramaTarefa que será salvo.</param> /// <param name="numeroTentativas">quantidade de vezes que irá tentar salvar</param> /// <returns>Tarefa que foi salva/atualizada</returns> public static CronogramaTarefa Salvar(CronogramaTarefa cronogramaTarefa) { CronogramaTarefa copia = cronogramaTarefa.Clone(); copia.Cronograma = null; copia.Tarefa = null; try { using (WexDb contexto = ContextFactoryManager.CriarWexDb()) { if (contexto.CronogramaTarefa.Existe(o => o.Oid == cronogramaTarefa.Oid)) { contexto.CronogramaTarefa.Attach(copia); contexto.Entry(copia).State = EntityState.Modified; } else { contexto.CronogramaTarefa.Add(copia); } contexto.SaveChanges(); } } catch (Exception) { using (WexDb contexto = ContextFactoryManager.CriarWexDb()) { if (contexto.CronogramaTarefa.Existe(o => o.Oid == cronogramaTarefa.Oid)) { if (contexto.CronogramaTarefa.ExisteLocalmente(o => o.Oid == cronogramaTarefa.Oid)) { contexto.Entry <CronogramaTarefa>(copia).Reload(); contexto.CronogramaTarefa.Attach(copia); contexto.Entry(copia).State = EntityState.Modified; } else { contexto.CronogramaTarefa.Attach(copia); contexto.Entry <CronogramaTarefa>(copia).Reload(); contexto.CronogramaTarefa.Attach(copia); contexto.Entry(copia).State = EntityState.Modified; } } else { contexto.CronogramaTarefa.Add(copia); } contexto.SaveChanges(); } } return(cronogramaTarefa); }
/// <summary> /// Método responsável por realizar a exclusão de um objeto CronogramaTarefa /// obs: caso ele não consiga, ele atualiza o objeto (caso tenha sido alterado por outra thread) e realiza novamente a tentativa de exclusão. /// <param name="cronogramaTarefa">Tarefa que será excluida</param> /// <param name="numeroTentativas">número de tentivas para tentar excluir</param> public static void Excluir(CronogramaTarefa cronogramaTarefa) { Tarefa copiaTarefa = cronogramaTarefa.Tarefa.Clone(); cronogramaTarefa.CsExcluido = true; cronogramaTarefa.Tarefa = null; cronogramaTarefa.Cronograma = null; copiaTarefa.CsExcluido = true; copiaTarefa.AtualizadoPor = null; copiaTarefa.LogsAlteracao = null; copiaTarefa.SituacaoPlanejamento = null; copiaTarefa.TarefaHistoricoTrabalhos = null; copiaTarefa.TarefaResponsaveis = null; try { using (WexDb contexto = ContextFactoryManager.CriarWexDb()) { if (contexto.CronogramaTarefa.Existe(o => o.Oid == cronogramaTarefa.Oid)) { contexto.CronogramaTarefa.Attach(cronogramaTarefa); contexto.Tarefa.Attach(copiaTarefa); contexto.Entry(cronogramaTarefa).State = EntityState.Modified; contexto.Entry(copiaTarefa).State = EntityState.Modified; } contexto.SaveChanges(); } } catch (Exception) { using (WexDb contexto = ContextFactoryManager.CriarWexDb()) { if (contexto.CronogramaTarefa.Existe(o => o.Oid == cronogramaTarefa.Oid)) { contexto.CronogramaTarefa.Attach(cronogramaTarefa); contexto.Tarefa.Attach(copiaTarefa); contexto.Entry <CronogramaTarefa>(cronogramaTarefa).Reload(); cronogramaTarefa.CsExcluido = true; contexto.Entry <Tarefa>(copiaTarefa).Reload(); copiaTarefa.CsExcluido = true; contexto.CronogramaTarefa.Attach(cronogramaTarefa); contexto.Tarefa.Attach(copiaTarefa); contexto.Entry(cronogramaTarefa).State = EntityState.Modified; contexto.Entry(copiaTarefa).State = EntityState.Modified; } contexto.SaveChanges(); } } }
/// <summary> /// Método responsável por criar uma tarefa dependente de projeto e cronograma. /// É acessado pelo serviço de planejamento quando solicitado pela tela de cronograma. /// </summary> /// <param name="contexto">Contexto do banco</param> /// <param name="login">Login do usuario</param> /// <param name="oidCronograma"> oid cronograma</param> /// <param name="txDescricaoTarefa"> descrição da tarefa </param> /// <param name="txObservacaoTarefa">observações da tarefa</param> /// <param name="oidSituacao">oid situação da tarefa</param> /// <param name="responsaveis">responsáveis pela tarefa</param> /// <param name="nbEstimativaInicial"> horas estimadas inicialmente</param> /// <param name="dtInicio"> data de inicio da tarefa</param> /// <param name="oidTarefaSelecionada">oid da tarefa</param> /// <param name="salvar"> condição para indicar se irá salvar ou não a tarefa dentro da classe tarefa</param> /// <returns>hash contendo informações sobre a tarefa e lista das tarefas impactadas</returns> public static CronogramaTarefa CriarTarefa(Guid oidCronograma, string txDescricaoTarefa, string oidSituacao, DateTime dtInicio, string login, string txObservacaoTarefa, string responsaveis, out List <CronogramaTarefa> tarefasImpactadas, ref DateTime dataHoraAcao, Int16 nbEstimativaInicial = 0, short nbIDReferencia = 0) { if (oidCronograma == null || oidCronograma == new Guid() || String.IsNullOrEmpty(oidSituacao)) { throw new ArgumentException("Os parametros session, oidCronograma sao obrigatorios."); } SituacaoPlanejamento situacaoPlanejamento = SituacaoPlanejamentoDAO.ConsultarSituacaoPlanejamentoPorOid(Guid.Parse(oidSituacao)); CronogramaTarefa novaTarefa = CronogramaTarefaBo.CriarCronogramaTarefa(oidCronograma, txDescricaoTarefa, situacaoPlanejamento, dtInicio, responsaveis, login, out tarefasImpactadas, ref dataHoraAcao, txObservacaoTarefa, nbEstimativaInicial, nbIDReferencia); return(novaTarefa); }
public void ExcluirCronogramaQuandoCronogramaPossuirTarefasENaoPossuirUltimaSelecaoTest() { SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true); Colaborador colaborador = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true); Cronograma cronograma1 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma 01", situacaoPlanejamento, new DateTime(), new DateTime(), true); CronogramaTarefa cronogramaTarefa = CronogramaFactoryEntity.CriarTarefa(contexto, 1, "Tarefa 01", "", situacaoPlanejamento, 0, new TimeSpan(), colaborador, cronograma1, null, true); bool cronogramaExcluido = CronogramaBo.ExcluirCronograma(contexto, cronograma1.Oid); Assert.IsTrue(cronogramaExcluido, "Deveria ser true, pois o cronograma exclui quaisquer tarefas associadas a ele."); }
public void EditarTarefaQuandoAlterarHorasRestantesEHorasRealizadoTarefaTest() { //cria situação planejamento SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true); Cronograma cronogramaPadrao1 = CronogramaBo.CriarCronogramaPadrao(contexto); Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true); string responsaveis = colaborador1.NomeCompleto; //iníco tarefa DateTime dataInicio = DateTime.Now; List <CronogramaTarefa> tarefasImpactadas; DateTime dataHoraAcao = new DateTime(); CronogramaTarefa novaTarefa = CronogramaTarefaBo.CriarCronogramaTarefa(cronogramaPadrao1.Oid, (string)"Tarefa 01", situacaoPlanejamento, dataInicio, responsaveis, colaborador1.Usuario.UserName, out tarefasImpactadas, ref dataHoraAcao, (string)"Criar método", 3, 0); //busca tarefa criada CronogramaTarefa tarefaCriada = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(novaTarefa.Oid, o => o.Tarefa.SituacaoPlanejamento); //Salvando a linha de base bool salvarLinhaBaseTarefa = true; TimeSpan estimativaRestante = tarefaCriada.Tarefa.EstimativaInicialHora; string responsaveisAlterado = colaborador1.NomeCompleto; TarefaBo.EditarTarefa(tarefaCriada.Oid.ToString(), tarefaCriada.Tarefa.TxDescricao, tarefaCriada.Tarefa.SituacaoPlanejamento.Oid.ToString(), colaborador1.Usuario.UserName, tarefaCriada.Tarefa.TxObservacao, responsaveisAlterado, tarefaCriada.Tarefa.NbEstimativaInicial, estimativaRestante, new TimeSpan(0), salvarLinhaBaseTarefa, dataInicio); //busca tarefa criada CronogramaTarefa tarefaAlterada = contexto.CronogramaTarefa.FirstOrDefault(o => o.Oid == tarefaCriada.Oid); //Alterando Estimativa Restante da tarefa TimeSpan estimativaRestanteAlterada = new TimeSpan(1, 0, 0); TimeSpan horasRealizado = new TimeSpan(2, 0, 0); TarefaBo.EditarTarefa(tarefaCriada.Oid.ToString(), tarefaCriada.Tarefa.TxDescricao, tarefaCriada.Tarefa.SituacaoPlanejamento.Oid.ToString(), colaborador1.Usuario.UserName, tarefaCriada.Tarefa.TxObservacao, responsaveisAlterado, tarefaCriada.Tarefa.NbEstimativaInicial, estimativaRestanteAlterada, horasRealizado, salvarLinhaBaseTarefa, DateTime.Now); //busca tarefa criada CronogramaTarefa tarefaAlteradaHorario = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(tarefaCriada.Oid, o => o.Tarefa.SituacaoPlanejamento); Assert.AreEqual(new TimeSpan(3, 0, 0), tarefaCriada.Tarefa.EstimativaInicialHora, "Deve ser a mesma estimativa inicial."); Assert.AreEqual(estimativaRestanteAlterada, tarefaAlteradaHorario.Tarefa.EstimativaRestanteHora, "Deve ter alterado a estimativa restante."); Assert.AreEqual(horasRealizado, tarefaAlteradaHorario.Tarefa.EstimativaRealizadoHora, "Deve ter alterado as horas realizado."); }
public void DeveCriarUmHistoricoQuandoNaoPossuirHistoricoRestanteParaDataEspecificada() { DateTime dataInicio = DateTime.Parse("05/05/2014"); AlterarDataInicioEDataFinalCronograma(dataInicio, DateTime.Parse("09/05/2014")); CronogramaTarefa cronogramaTarefa = _cronogramaTarefas.FirstOrDefault(); const int nbHorasRestantes = 0; var tarefaEstimativa = new TarefaHistoricoEstimativaBuilder().Data(dataInicio).HorasRestantes(nbHorasRestantes).OidTarefa(cronogramaTarefa.OidTarefa).Criar(); var novoHistorico = TarefaHistoricoEstimativaDao.SalvarHistorico(tarefaEstimativa); Assert.IsNotNull(novoHistorico, "Deveria ter retornado o objeto do histórico criado"); Assert.AreEqual(dataInicio.Date, novoHistorico.DtPlanejado.Date, string.Format("Deveria ter criado um histórico para a data {0}", dataInicio.Date)); Assert.AreEqual(cronogramaTarefa.OidTarefa, novoHistorico.OidTarefa, string.Format("Deveria ter criado um histórico para a tarefa de oid {0}", cronogramaTarefa.OidTarefa)); Assert.AreEqual(nbHorasRestantes, novoHistorico.NbHoraRestante, string.Format("Deveria ter criado um histórico para a data {0}", dataInicio.Date)); }
/// <summary> /// Compara 2 objetos CronogramaTarefa /// </summary> /// <param name="t1">objeto 1</param> /// <param name="t2">objeto 2</param> /// <returns></returns> public bool CompararCronogramaTarefa(CronogramaTarefa t1, CronogramaTarefa t2) { if (t1 == null && t2 == null) { return(true); } if (t1 == null || t2 == null) { return(false); } if (t1.Oid.Equals(t2.Oid)) { return(false); } return(false); }
/// <summary> /// Método responsável por buscar os NbID de uma tarefa. /// </summary> /// <param name="oidCronogramaTarefa">Oid da tarefa a ser procurada</param> /// <returns>tarefa encontrada</returns> public static short ConsultarNbIDCronogramaTarefa(Guid oidCronogramaTarefa) { if (oidCronogramaTarefa == null) { new ArgumentException("Os parâmetros estão inválidos."); } using (WexDb contexto = ContextFactoryManager.CriarWexDb()) { CronogramaTarefa tarefa = contexto.CronogramaTarefa.FirstOrDefault(o => o.Oid == oidCronogramaTarefa && !o.CsExcluido); if (tarefa != null) { return(tarefa.NbID); } else { return(0); } } }
/// <summary> /// Responsável por encontrar o valor do maior ID da tarefa de um determinado cronograma /// </summary> /// <param name="oidCronograma">Oid do cronograma que será procurado</param> /// <returns>Maior NbId</returns> public static short ConsultarMaxNbIDPorCronograma(Guid oidCronograma) { using (WexDb contexto = ContextFactoryManager.CriarWexDb()) { if (contexto == null || oidCronograma == null) { new ArgumentException("Os parâmetros estão inválidos."); } CronogramaTarefa cronogramaTarefa = contexto.CronogramaTarefa.FirstOrDefault(o => o.OidCronograma == oidCronograma && !o.CsExcluido); if (cronogramaTarefa != null) { return(contexto.CronogramaTarefa.Where(o => o.OidCronograma == oidCronograma && !o.CsExcluido).Select(o => o.NbID).Max()); } else { return(0); } } }
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."); }
public void EditarTarefaQuandoSalvarLinhaBaseTarefaTest() { //cria situação planejamento SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true); Cronograma cronogramaPadrao1 = CronogramaBo.CriarCronogramaPadrao(contexto); Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true); string responsaveis = colaborador1.NomeCompleto; //iníco tarefa DateTime dataInicio = DateTime.Now; List <CronogramaTarefa> tarefasImpactadas; DateTime dataHoraAcao = new DateTime(); CronogramaTarefa novaTarefa = CronogramaTarefaBo.CriarCronogramaTarefa(cronogramaPadrao1.Oid, (string)"Tarefa 01", situacaoPlanejamento, dataInicio, responsaveis, colaborador1.Usuario.UserName, out tarefasImpactadas, ref dataHoraAcao, (string)"Criar método", 3, 0); //busca tarefa criada CronogramaTarefa tarefaCriada = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(novaTarefa.Oid, o => o.Tarefa.SituacaoPlanejamento, o => o.Cronograma, o => o.Tarefa.AtualizadoPor.Usuario.Person, o => o.Tarefa); bool salvarLinhaBaseTarefa = true; TimeSpan estimativaRestante = TarefaDao.ConsultarTarefaPorOid((Guid)tarefaCriada.OidTarefa).EstimativaRestanteHora; string responsaveisTarefaEdicao = colaborador1.NomeCompleto; TarefaBo.EditarTarefa(tarefaCriada.Oid.ToString(), tarefaCriada.Tarefa.TxDescricao, tarefaCriada.Tarefa.SituacaoPlanejamento.Oid.ToString(), colaborador1.Usuario.UserName, tarefaCriada.Tarefa.TxObservacao, responsaveisTarefaEdicao, tarefaCriada.Tarefa.NbEstimativaInicial, estimativaRestante, new TimeSpan(0), salvarLinhaBaseTarefa, dataInicio); //busca tarefa criada CronogramaTarefa tarefaAlterada = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(tarefaCriada.Oid, o => o.Tarefa.SituacaoPlanejamento, o => o.Cronograma, o => o.Tarefa.AtualizadoPor.Usuario.Person, o => o.Tarefa.LogsAlteracao, o => o.Tarefa.TarefaHistoricoTrabalhos, o => o.Tarefa.TarefaResponsaveis); Assert.AreEqual(salvarLinhaBaseTarefa, tarefaAlterada.Tarefa.CsLinhaBaseSalva, "Deveria ter salvo a linha de base"); Assert.AreEqual(estimativaRestante, tarefaAlterada.Tarefa.NbEstimativaRestante.ToTimeSpan(), "Deveria ter mudado a estimativa restando, pois salvou a linha de base"); }
public void RnValidarTarefaEditadaQuandoEstimativaInicialSejaAlteradaTest() { //cria situação planejamento SituacaoPlanejamento situacaoPlanejamento1 = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true); //cria cronograma Cronograma cronograma1 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma 01", situacaoPlanejamento1, new DateTime(), new DateTime(), true); //cria colaborador Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true); //adiciona colaborador como responsável pela tarefa string responsaveis = colaborador1.NomeCompleto; List <CronogramaTarefa> tarefasImpactadas; DateTime dataHoraAcao = new DateTime(); //cria tarefa a partir da RnIncluirTarefa em CronogramaTarefa CronogramaTarefa novaTarefa = CronogramaTarefaBo.CriarCronogramaTarefa(cronograma1.Oid, "Tarefa 01", situacaoPlanejamento1, DateTime.Now, responsaveis, colaborador1.Usuario.UserName, out tarefasImpactadas, ref dataHoraAcao, "Criar método1", 3, 0); //recupera a tarefa criada CronogramaTarefa tarefa = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(novaTarefa.Oid, o => o.Tarefa.SituacaoPlanejamento); //criar um Dto da tarefa e repassa as informações para poder utilizar o método que está sendo testado CronogramaTarefaGridItem tarefaDto = new CronogramaTarefaGridItem(); tarefaDto.OidCronogramaTarefa = tarefa.Oid; tarefaDto.TxDescricaoSituacaoPlanejamentoTarefa = tarefa.Tarefa.SituacaoPlanejamento.TxDescricao; tarefaDto.NbEstimativaInicial = tarefa.Tarefa.NbEstimativaInicial; tarefaDto.NbEstimativaRestante = tarefa.Tarefa.NbEstimativaRestante; //adiciona tarefa na lista de tarefas antigas (antes de serem alteradas) List <CronogramaTarefaGridItem> tarefasAntigas = new List <CronogramaTarefaGridItem>(); tarefasAntigas.Add(tarefaDto); //cria uma tarefa Dto alterada e modifica o campo situação de planejamento CronogramaTarefaGridItem tarefaDtoAlterada = new CronogramaTarefaGridItem(); tarefaDtoAlterada.OidCronogramaTarefa = tarefaDto.OidCronogramaTarefa; tarefaDtoAlterada.TxDescricaoSituacaoPlanejamentoTarefa = tarefaDto.TxDescricaoSituacaoPlanejamentoTarefa; tarefaDtoAlterada.NbEstimativaInicial = 5; tarefaDtoAlterada.NbEstimativaRestante = tarefaDto.NbEstimativaRestante; //adiciona a tarefa na lista de tarefas modificadas. List <CronogramaTarefaGridItem> tarefasAtualizadas = new List <CronogramaTarefaGridItem>(); tarefasAtualizadas.Add(tarefaDtoAlterada); //valida os campos alterados Hashtable camposAlterados = TarefaEditada.ValidarCamposRelevantesAlterados(tarefasAntigas, tarefasAtualizadas); List <int> campos = new List <int>(); campos = (List <int>)camposAlterados[tarefaDto.OidCronogramaTarefa]; Assert.AreEqual(1, campos.Count, "Deveria ter sido alterado apenas um campo."); Assert.AreEqual((int)CsTipoCampoEditado.EstimativaInicial, campos[0], "O campo alterado deveria ser do mesmo Tipo"); Assert.AreNotEqual(tarefaDto.NbEstimativaInicial, tarefaDtoAlterada.NbEstimativaInicial, "Não deveriam ser iguais, pois o campo foi alterado."); }
public void ConsultarTarefasPorOidCronogramaTarefaQuandoReceberUmaListaDeOidCronogramaTarefaTest() { SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true); //cria cronograma Cronograma cronograma1 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma 01", situacaoPlanejamento, new DateTime(), new DateTime(), true); Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true); //nova tarefa CronogramaTarefa novaTarefa1 = new CronogramaTarefa() { Tarefa = new Tarefa() }; CronogramaTarefa novaTarefa2 = new CronogramaTarefa() { Tarefa = new Tarefa() }; CronogramaTarefa novaTarefa3 = new CronogramaTarefa() { Tarefa = new Tarefa() }; CronogramaTarefa novaTarefa4 = new CronogramaTarefa() { Tarefa = new Tarefa() }; CronogramaTarefa novaTarefa5 = new CronogramaTarefa() { Tarefa = new Tarefa() }; novaTarefa1.OidCronograma = cronograma1.Oid; novaTarefa2.OidCronograma = cronograma1.Oid; novaTarefa3.OidCronograma = cronograma1.Oid; novaTarefa4.OidCronograma = cronograma1.Oid; novaTarefa5.OidCronograma = cronograma1.Oid; //Atribui um Id inexistente para tarefa CronogramaTarefaBo.AtribuirId(novaTarefa1, 0); //Atribui um Id inexistente para tarefa CronogramaTarefaBo.AtribuirId(novaTarefa2, 0); //Atribui um Id inexistente para tarefa CronogramaTarefaBo.AtribuirId(novaTarefa3, 0); //Atribui um Id inexistente para tarefa CronogramaTarefaBo.AtribuirId(novaTarefa4, 0); //Atribui um Id inexistente para tarefa CronogramaTarefaBo.AtribuirId(novaTarefa5, 0); novaTarefa1.Tarefa.TxDescricao = "Tarefa 01"; novaTarefa1.Tarefa.SituacaoPlanejamento = situacaoPlanejamento; novaTarefa1.Tarefa.AtualizadoPor = colaborador1; novaTarefa2.Tarefa.TxDescricao = "Tarefa 02"; novaTarefa2.Tarefa.SituacaoPlanejamento = situacaoPlanejamento; novaTarefa2.Tarefa.AtualizadoPor = colaborador1; novaTarefa3.Tarefa.TxDescricao = "Tarefa 03"; novaTarefa3.Tarefa.SituacaoPlanejamento = situacaoPlanejamento; novaTarefa3.Tarefa.AtualizadoPor = colaborador1; novaTarefa4.Tarefa.TxDescricao = "Tarefa 04"; novaTarefa4.Tarefa.SituacaoPlanejamento = situacaoPlanejamento; novaTarefa4.Tarefa.AtualizadoPor = colaborador1; novaTarefa5.Tarefa.TxDescricao = "Tarefa 05"; novaTarefa5.Tarefa.SituacaoPlanejamento = situacaoPlanejamento; novaTarefa5.Tarefa.AtualizadoPor = colaborador1; contexto.CronogramaTarefa.Add(novaTarefa1); contexto.CronogramaTarefa.Add(novaTarefa2); contexto.CronogramaTarefa.Add(novaTarefa3); contexto.CronogramaTarefa.Add(novaTarefa4); contexto.CronogramaTarefa.Add(novaTarefa5); contexto.SaveChanges(); List <Guid> oidCronogramaTarefas = new List <Guid>(); oidCronogramaTarefas.Add(novaTarefa1.Oid); oidCronogramaTarefas.Add(novaTarefa2.Oid); List <CronogramaTarefa> tarefas = CronogramaTarefaDao.ConsultarCronogramaTarefasPorOid(oidCronogramaTarefas, o => o.Cronograma, o => o.Tarefa.SituacaoPlanejamento, o => o.Tarefa.AtualizadoPor.Usuario.Person.Party); Assert.AreEqual(2, tarefas.Count, "Deveria possuir 2 tarefas armazenadas!"); CronogramaTarefa tarefaEsperada1 = tarefas.FirstOrDefault(o => o.Oid.Equals(novaTarefa1.Oid)); CronogramaTarefa tarefaEsperada2 = tarefas.FirstOrDefault(o => o.Oid.Equals(novaTarefa2.Oid)); Assert.IsNotNull(tarefaEsperada1, "Deveria ter recebido a tarefas esperada"); Assert.IsNotNull(tarefaEsperada2, "Deveria ter recebido a tarefas esperada"); Assert.AreEqual(novaTarefa1.Oid, tarefaEsperada1.Oid, "Deveria ser o mesmo CronogramaTarefa"); Assert.AreEqual(novaTarefa1.OidCronograma, tarefaEsperada1.OidCronograma, "Deveriam estar no mesmo cronograma"); Assert.AreEqual(novaTarefa1.OidTarefa, tarefaEsperada1.OidTarefa, "Deveriam estar relacionadas a mesma tarefa"); Assert.AreEqual(novaTarefa1.NbID, tarefaEsperada1.NbID, "Deveria estar com o mesmo NbId"); Assert.AreEqual(novaTarefa1.CsExcluido, tarefaEsperada1.CsExcluido, "Deveriam estar com o mesmo estado de exclusão"); Assert.AreEqual(novaTarefa2.Oid, tarefaEsperada2.Oid, "Deveria ser o mesmo CronogramaTarefa"); Assert.AreEqual(novaTarefa2.OidCronograma, tarefaEsperada2.OidCronograma, "Deveriam estar no mesmo cronograma"); Assert.AreEqual(novaTarefa2.OidTarefa, tarefaEsperada2.OidTarefa, "Deveriam estar relacionadas a mesma tarefa"); Assert.AreEqual(novaTarefa2.NbID, tarefaEsperada2.NbID, "Deveria estar com o mesmo NbId"); Assert.AreEqual(novaTarefa2.CsExcluido, tarefaEsperada2.CsExcluido, "Deveriam estar com o mesmo estado de exclusão"); //Assert.IsTrue( tarefas.Contains( novaTarefa1 ), "Deveria conter a tarefa na lista" ); //Assert.IsTrue( tarefas.Contains( novaTarefa2 ), "Deveria conter a tarefa na lista" ); }
public void DevePesquisarADataEHoraDaUltimaHoraTrabalhadaPeloColaborador() { #region Construção Cenário SituacaoPlanejamento situacaoPlanejamentoNaoIniciado = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Não Iniciado", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Planejamento, CsPadraoSistema.Sim, true); SituacaoPlanejamento situacaoPlanejamentoEmAndamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Em Andamento", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Planejamento, CsPadraoSistema.Sim, true); Cronograma cronograma1 = new Cronograma() { DtInicio = new DateTime(2013, 02, 1), DtFinal = new DateTime(2013, 02, 15), TxDescricao = "WexCronograma1", SituacaoPlanejamento = situacaoPlanejamentoEmAndamento }; contexto.Cronograma.Add(cronograma1); contexto.SaveChanges(); Cronograma cronograma2 = new Cronograma() { DtInicio = new DateTime(2013, 02, 1), DtFinal = new DateTime(2013, 02, 16), TxDescricao = "WexCronograma2", SituacaoPlanejamento = situacaoPlanejamentoEmAndamento }; contexto.Cronograma.Add(cronograma2); contexto.SaveChanges(); Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "gabriel.matos", true); string responsaveis = colaborador1.NomeCompleto; Tarefa tarefa1 = new Tarefa() { DtInicio = new DateTime(2013, 02, 25), CsLinhaBaseSalva = true, TxDescricao = "Cria método Cadastro", TxResponsaveis = colaborador1.NomeCompleto, NbEstimativaInicial = 8, SituacaoPlanejamento = situacaoPlanejamentoNaoIniciado, AtualizadoPor = colaborador1 }; contexto.Tarefa.Add(tarefa1); contexto.SaveChanges(); Tarefa tarefa2 = new Tarefa() { DtInicio = new DateTime(2013, 02, 25), CsLinhaBaseSalva = true, TxDescricao = "Criar método Exclusão", TxResponsaveis = colaborador1.NomeCompleto, NbEstimativaInicial = 4, SituacaoPlanejamento = situacaoPlanejamentoNaoIniciado, AtualizadoPor = colaborador1 }; contexto.Tarefa.Add(tarefa2); contexto.SaveChanges(); #endregion CronogramaTarefa cronogramaTarefa = new CronogramaTarefa() { Cronograma = cronograma1, NbID = 1, Tarefa = tarefa1 }; contexto.CronogramaTarefa.Add(cronogramaTarefa); contexto.SaveChanges(); CronogramaTarefa cronogramaTarefa2 = new CronogramaTarefa() { Cronograma = cronograma2, NbID = 1, Tarefa = tarefa2 }; contexto.CronogramaTarefa.Add(cronogramaTarefa2); contexto.SaveChanges(); DateTime dataRealizado = DateTime.Now; TarefaHistoricoTrabalhoBo.CriarHistoricoTarefa(tarefa1.Oid, colaborador1.Usuario.UserName, new TimeSpan(2, 0, 0), dataRealizado, new TimeSpan(8, 0, 0), new TimeSpan(10, 0, 0), "comentário", new TimeSpan(6, 0, 0), situacaoPlanejamentoEmAndamento.Oid, ""); TarefaHistoricoTrabalhoBo.CriarHistoricoTarefa(tarefa1.Oid, colaborador1.Usuario.UserName, new TimeSpan(1, 0, 0), dataRealizado, new TimeSpan(11, 0, 0), new TimeSpan(12, 0, 0), "comentário", new TimeSpan(2, 0, 0), situacaoPlanejamentoEmAndamento.Oid, ""); TarefaHistoricoTrabalhoBo.CriarHistoricoTarefa(tarefa2.Oid, colaborador1.Usuario.UserName, new TimeSpan(1, 0, 0), dataRealizado, new TimeSpan(10, 0, 0), new TimeSpan(11, 0, 0), "comentário", new TimeSpan(3, 0, 0), situacaoPlanejamentoEmAndamento.Oid, ""); TarefaHistoricoTrabalhoDto historicoTrabalhoMaisRecente = TarefaHistoricoTrabalhoBo.ConsultarUltimoEsforcoRealizadoColaboradorDto(contexto, colaborador1.Usuario.UserName); Assert.IsNotNull(historicoTrabalhoMaisRecente, "Deveria ter encontrado pois foi criado histórico para tarefa"); Assert.AreEqual(dataRealizado, historicoTrabalhoMaisRecente.DtRealizado, "Deveria ser a mesma data realizada"); Assert.AreEqual(new TimeSpan(12, 0, 0), historicoTrabalhoMaisRecente.NbHoraFinal, "O horário final deveria ser igual ao horário final do ultimo esforço do colaborador"); }
public void ConsultarHorarioUltimaTarefaDiaColaboradorQuandoColaboradorTiverRealizadoTarefasEmDiferentesCronogramas() { #region Construção Cenário SituacaoPlanejamento situacaoPlanejamentoNaoIniciado = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Não Iniciado", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Planejamento, CsPadraoSistema.Sim, true); SituacaoPlanejamento situacaoPlanejamentoEmAndamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "Em Andamento", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Planejamento, CsPadraoSistema.Sim, true); Cronograma cronograma1 = new Cronograma() { DtInicio = new DateTime(2013, 02, 1), DtFinal = new DateTime(2013, 02, 15), TxDescricao = "WexCronograma1", SituacaoPlanejamento = situacaoPlanejamentoEmAndamento }; contexto.Cronograma.Add(cronograma1); contexto.SaveChanges(); Cronograma cronograma2 = new Cronograma() { DtInicio = new DateTime(2013, 02, 1), DtFinal = new DateTime(2013, 02, 16), TxDescricao = "WexCronograma2", SituacaoPlanejamento = situacaoPlanejamentoEmAndamento }; contexto.Cronograma.Add(cronograma2); contexto.SaveChanges(); Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true); string responsaveis = colaborador1.NomeCompleto; Tarefa tarefa1 = new Tarefa() { DtInicio = new DateTime(2013, 02, 25), CsLinhaBaseSalva = true, TxDescricao = "Cria método Cadastro", TxResponsaveis = colaborador1.NomeCompleto, NbEstimativaInicial = 8, SituacaoPlanejamento = situacaoPlanejamentoNaoIniciado, AtualizadoPor = colaborador1 }; contexto.Tarefa.Add(tarefa1); contexto.SaveChanges(); Tarefa tarefa2 = new Tarefa() { DtInicio = new DateTime(2013, 02, 25), CsLinhaBaseSalva = true, TxDescricao = "Criar método Exclusão", TxResponsaveis = colaborador1.NomeCompleto, NbEstimativaInicial = 4, SituacaoPlanejamento = situacaoPlanejamentoNaoIniciado, AtualizadoPor = colaborador1 }; contexto.Tarefa.Add(tarefa2); contexto.SaveChanges(); #endregion CronogramaTarefa cronogramaTarefa = new CronogramaTarefa() { Cronograma = cronograma1, NbID = 1, Tarefa = tarefa1 }; contexto.CronogramaTarefa.Add(cronogramaTarefa); contexto.SaveChanges(); CronogramaTarefa cronogramaTarefa2 = new CronogramaTarefa() { Cronograma = cronograma2, NbID = 1, Tarefa = tarefa2 }; contexto.CronogramaTarefa.Add(cronogramaTarefa2); contexto.SaveChanges(); TarefaHistoricoTrabalhoBo.CriarHistoricoTarefa(tarefa1.Oid, colaborador1.Usuario.UserName, new TimeSpan(2, 0, 0), DateTime.Now, new TimeSpan(8, 0, 0), new TimeSpan(10, 0, 0), "comentário", new TimeSpan(6, 0, 0), situacaoPlanejamentoEmAndamento.Oid, ""); TarefaHistoricoTrabalhoBo.CriarHistoricoTarefa(tarefa2.Oid, colaborador1.Usuario.UserName, new TimeSpan(1, 0, 0), DateTime.Now, new TimeSpan(10, 0, 0), new TimeSpan(11, 0, 0), "comentário", new TimeSpan(3, 0, 0), situacaoPlanejamentoEmAndamento.Oid, ""); TimeSpan nbHoraFinal = TarefaHistoricoTrabalhoDao.ConsultarHorarioUltimaTarefaDiaColaborador(contexto, colaborador1.Usuario.UserName, DateTime.Now); Assert.AreEqual(new TimeSpan(11, 0, 0), nbHoraFinal, "A hora final deveria ser igual a 11:00 pois o colaborador investiu esforço realizado " + " em outra tarefa independente do cronograma em que está lançando a hora realizada"); }
public void ConsultarCronogramaTarefasCarregandoASituacaoPlanejamento() { contexto = ContextFactoryManager.CriarWexDb(); SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true); //cria cronograma Cronograma cronograma1 = CronogramaFactoryEntity.CriarCronograma(contexto, "Cronograma 01", situacaoPlanejamento, new DateTime(), new DateTime(), true); Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true); //nova tarefa CronogramaTarefa novaTarefa1 = new CronogramaTarefa() { Tarefa = new Tarefa() }; CronogramaTarefa novaTarefa2 = new CronogramaTarefa() { Tarefa = new Tarefa() }; CronogramaTarefa novaTarefa3 = new CronogramaTarefa() { Tarefa = new Tarefa() }; CronogramaTarefa novaTarefa4 = new CronogramaTarefa() { Tarefa = new Tarefa() }; CronogramaTarefa novaTarefa5 = new CronogramaTarefa() { Tarefa = new Tarefa() }; novaTarefa1.OidCronograma = cronograma1.Oid; novaTarefa2.OidCronograma = cronograma1.Oid; novaTarefa3.OidCronograma = cronograma1.Oid; novaTarefa4.OidCronograma = cronograma1.Oid; novaTarefa5.OidCronograma = cronograma1.Oid; //Atribui um Id inexistente para tarefa CronogramaTarefaBo.AtribuirId(novaTarefa1, 0); //Atribui um Id inexistente para tarefa CronogramaTarefaBo.AtribuirId(novaTarefa2, 0); //Atribui um Id inexistente para tarefa CronogramaTarefaBo.AtribuirId(novaTarefa3, 0); //Atribui um Id inexistente para tarefa CronogramaTarefaBo.AtribuirId(novaTarefa4, 0); //Atribui um Id inexistente para tarefa CronogramaTarefaBo.AtribuirId(novaTarefa5, 0); novaTarefa1.Tarefa.TxDescricao = "Tarefa 01"; novaTarefa1.Tarefa.SituacaoPlanejamento = situacaoPlanejamento; novaTarefa1.Tarefa.AtualizadoPor = colaborador1; novaTarefa2.Tarefa.TxDescricao = "Tarefa 02"; novaTarefa2.Tarefa.SituacaoPlanejamento = situacaoPlanejamento; novaTarefa2.Tarefa.AtualizadoPor = colaborador1; novaTarefa3.Tarefa.TxDescricao = "Tarefa 03"; novaTarefa3.Tarefa.SituacaoPlanejamento = situacaoPlanejamento; novaTarefa3.Tarefa.AtualizadoPor = colaborador1; novaTarefa4.Tarefa.TxDescricao = "Tarefa 04"; novaTarefa4.Tarefa.SituacaoPlanejamento = situacaoPlanejamento; novaTarefa4.Tarefa.AtualizadoPor = colaborador1; novaTarefa5.Tarefa.TxDescricao = "Tarefa 05"; novaTarefa5.Tarefa.SituacaoPlanejamento = situacaoPlanejamento; novaTarefa5.Tarefa.AtualizadoPor = colaborador1; contexto.CronogramaTarefa.Add(novaTarefa1); contexto.CronogramaTarefa.Add(novaTarefa2); contexto.CronogramaTarefa.Add(novaTarefa3); contexto.CronogramaTarefa.Add(novaTarefa4); contexto.CronogramaTarefa.Add(novaTarefa5); contexto.SaveChanges(); List <Guid> oidCronogramaTarefas = new List <Guid>(); oidCronogramaTarefas.Add(novaTarefa1.Oid); oidCronogramaTarefas.Add(novaTarefa2.Oid); List <CronogramaTarefa> tarefas = CronogramaTarefaDao.ConsultarCronogramaTarefasPorOid(oidCronogramaTarefas, o => o.Tarefa.SituacaoPlanejamento, o => o.Cronograma.SituacaoPlanejamento, o => o.Tarefa.AtualizadoPor.Usuario.Person); Assert.AreEqual(2, tarefas.Count, "Deveria possuir 2 tarefas armazenadas!"); var t1 = tarefas.FirstOrDefault(o => o.Oid.Equals(novaTarefa1.Oid)); var t2 = tarefas.FirstOrDefault(o => o.Oid.Equals(novaTarefa2.Oid)); Assert.IsTrue(tarefas.Contains(t1), "Deveria encontrar a tarefa na lista"); Assert.IsTrue(tarefas.Contains(t2), "Deveria encontrar a tarefa na lista"); }
public void EditarTarefaQuandoOutroUsuarioAlterarTarefaTest() { //cria situação planejamento SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução, CsPadraoSistema.Sim, true); Cronograma cronogramaPadrao1 = CronogramaBo.CriarCronogramaPadrao(contexto); Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true); string responsaveis = colaborador1.NomeCompleto; //iníco tarefa DateTime dataInicio = DateTime.Now; DateTime dataHoraAcao = new DateTime(); List <CronogramaTarefa> tarefasImpactadas; CronogramaTarefa novaTarefa = CronogramaTarefaBo.CriarCronogramaTarefa(cronogramaPadrao1.Oid, (string)"Tarefa 01", situacaoPlanejamento, dataInicio, responsaveis, colaborador1.Usuario.UserName, out tarefasImpactadas, ref dataHoraAcao, (string)"Criar método", 3, 0); //busca tarefa criada CronogramaTarefa tarefaCriada = contexto.CronogramaTarefa.FirstOrDefault(o => o.Oid == novaTarefa.Oid); Colaborador colaborador2 = ColaboradorFactoryEntity.CriarColaborador(contexto, "pedro.lins", true); Colaborador colaborador3 = ColaboradorFactoryEntity.CriarColaborador(contexto, "joao.lins", true); List <Colaborador> responsaveisAlterados = new List <Colaborador>(); responsaveisAlterados.Add(colaborador2); responsaveisAlterados.Add(colaborador3); //cria situação planejamento alterada SituacaoPlanejamento situacaoPlanejamento2 = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S2", CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Cancelamento, CsPadraoSistema.Sim, true); Colaborador colaborador4 = ColaboradorFactoryEntity.CriarColaborador(contexto, "gabriel.matos", true); string txDescricaoAlterada = "Tarefa 01 alterada"; DateTime dataInicioAlterada = new DateTime(2013, 12, 10); string txObservacaoAlterada = "Criar método alterado"; Int16 EstimativaInicialHoraAlterada = 4; string responsaveisAlterado = colaborador1.NomeCompleto; TarefaBo.EditarTarefa(tarefaCriada.Oid.ToString(), txDescricaoAlterada, situacaoPlanejamento2.Oid.ToString(), colaborador2.Usuario.UserName, txObservacaoAlterada, responsaveisAlterado, EstimativaInicialHoraAlterada, new TimeSpan(0), new TimeSpan(0), false, DateTime.Now); //busca tarefa criada CronogramaTarefa tarefaAlterada = CronogramaTarefaDao.ConsultarCronogramaTarefaPorOid(tarefaCriada.Oid, o => o.Tarefa.SituacaoPlanejamento); DateUtil.CurrentDateTime = (DateTime)tarefaAlterada.Tarefa.DtAtualizadoEm; Assert.AreEqual(DateUtil.CurrentDateTime, tarefaAlterada.Tarefa.DtAtualizadoEm, "As datas devem ser iguais."); Assert.AreEqual(txDescricaoAlterada, tarefaAlterada.Tarefa.TxDescricao, "Devem ser as mesmas, pois a descrição foi alterada."); Assert.AreEqual(txObservacaoAlterada, tarefaAlterada.Tarefa.TxObservacao, "Devem ser as mesmas, pois a data foi alterada."); Assert.AreEqual(EstimativaInicialHoraAlterada, tarefaAlterada.Tarefa.NbEstimativaInicial, "Devem ser iguais, pois foi alterada"); Assert.AreEqual(situacaoPlanejamento2.Oid, tarefaAlterada.Tarefa.OidSituacaoPlanejamento, "Devem ser iguais, pois foi alterada"); Assert.AreEqual(colaborador2.Oid, tarefaAlterada.Tarefa.OidAtualizadoPor, "Deve ser o mesmo, pois foi outro usuário que alterou a tarefa"); }