/// <summary>
        /// Criar Dto a partir de uma tarefaLogAlteracao
        /// </summary>
        /// <param name="tarefaLog">log de alteracao</param>
        /// <returns></returns>
        public static TarefaLogAlteracaoDto DtoFactory(TarefaLogAlteracao tarefaLog)
        {
            TarefaLogAlteracaoDto logAlteracao = new TarefaLogAlteracaoDto()
            {
                descricaoColaborador = tarefaLog.Colaborador.NomeCompleto,
                descricaoAlteracao   = tarefaLog.TxAlteracoes,
                DtDataEHora          = (DateTime)tarefaLog.DtDataHoraLog
            };

            return(logAlteracao);
        }
        public void ExcluirTarefaQuandoExistirHistoricoELogAlteracao()
        {
            //cria situação planejamento
            SituacaoPlanejamento situacaoPlanejamento = CronogramaFactoryEntity.CriarSituacaoPlanejamento(contexto, "S1",
                                                                                                          CsTipoSituacaoPlanejamento.Ativo, CsTipoPlanejamento.Execução,
                                                                                                          CsPadraoSistema.Sim, true);

            Colaborador colaborador1 = ColaboradorFactoryEntity.CriarColaborador(contexto, "anderson.lins", true);

            string responsaveis = colaborador1.NomeCompleto;

            //iníco tarefa
            DateTime dtInicio = new DateTime();

            //cria tarefa
            Tarefa tarefa = new Tarefa();

            tarefa = TarefaBo.CriarTarefa((string)"Tarefa 01", situacaoPlanejamento, dtInicio, colaborador1.Usuario.UserName, (string)"Criar método", responsaveis, 3);

            TarefaHistoricoTrabalho tarefaHistorico = new TarefaHistoricoTrabalho();

            tarefaHistorico.OidTarefa      = tarefa.Oid;
            tarefaHistorico.OidColaborador = colaborador1.Oid;
            tarefaHistorico.DtRealizado    = DateTime.Now;
            tarefaHistorico.HoraFinal      = new TimeSpan(10, 0, 0);
            tarefaHistorico.HoraInicio     = new TimeSpan(5, 0, 0);
            tarefaHistorico.HoraRealizado  = new TimeSpan(4, 0, 0);
            tarefaHistorico.HoraRestante   = new TimeSpan(6, 0, 0);
            tarefaHistorico.TxComentario   = "Comentario";

            contexto.TarefaHistoricoTrabalho.Add(tarefaHistorico);
            contexto.SaveChanges();

            List <Guid> oidTarefas = new List <Guid>();

            oidTarefas.Add(tarefa.Oid);

            List <Guid> oidTarefasExcluidas = new List <Guid>();

            oidTarefasExcluidas = TarefaBo.ExcluirTarefa(contexto, oidTarefas);

            Tarefa tarefaExcluida = TarefaDao.ConsultarTarefaPorOid(tarefa.Oid);

            TarefaHistoricoTrabalho tarefaHistoricoExcluido = contexto.TarefaHistoricoTrabalho.FirstOrDefault(o => o.OidTarefa == tarefa.Oid);

            TarefaLogAlteracao tarefaLogExcluido = contexto.TarefaLogAlteracao.FirstOrDefault(o => o.OidTarefa == tarefa.Oid);

            Assert.AreEqual(1, oidTarefasExcluidas.Count, "Deve ter excluido uma tarefa");
            Assert.AreEqual(tarefa.Oid, oidTarefasExcluidas[0], "Deve ter excluido a tarefa com este oid");
            Assert.IsNull(tarefaExcluida, "Deveria ser nulo, pois a tarefa deveria ter sido excluida.");
            Assert.IsNotNull(tarefaHistoricoExcluido, "Não deveria ser nulo, pois a tarefa deveria ter sido excluida, mas o historico permanece.");
            Assert.IsNotNull(tarefaLogExcluido, "Não deveria ser nulo, pois a tarefa deveria ter sido excluida, mas o Log permanece.");
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Método responsável por salvar um Log de alteração
        /// </summary>
        /// <param name="tarefaLogAlteracao">Objeto que será salvo</param>
        public static void Salvar(TarefaLogAlteracao tarefaLogAlteracao)
        {
            TarefaLogAlteracao copia = tarefaLogAlteracao.Clone();

            copia.Colaborador = null;
            copia.Tarefa      = null;

            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                try
                {
                    if (contexto.TarefaLogAlteracao.Existe(o => o.Oid == copia.Oid))
                    {
                        contexto.TarefaLogAlteracao.Attach(copia);
                        contexto.Entry <TarefaLogAlteracao>(copia).State = System.Data.EntityState.Modified;
                    }
                    else
                    {
                        contexto.TarefaLogAlteracao.Add(copia);
                    }

                    contexto.SaveChanges();
                }
                catch (Exception)
                {
                    if (contexto.TarefaLogAlteracao.Existe(o => o.Oid == copia.Oid))
                    {
                        contexto.Entry <TarefaLogAlteracao>(copia).Reload();
                        contexto.TarefaLogAlteracao.Attach(copia);
                        contexto.Entry <TarefaLogAlteracao>(copia).State = System.Data.EntityState.Modified;
                    }
                    else
                    {
                        contexto.TarefaLogAlteracao.Add(copia);
                    }

                    contexto.SaveChanges();
                }
            }
        }
        /// <summary>
        /// Criar Log para uma Tarefa específica
        /// </summary>
        /// <param name="tarefaAtual">Objeto de Tarefa</param>
        /// <param name="tarefaAntiga">Objeto de Tarefa antes das alterações</param>
        public static void CriarLogTarefa(Tarefa tarefaAtual, Tarefa tarefaAntiga)
        {
            if (tarefaAtual == null)
            {
                return;
            }

            string        valorNovo, valorAntigo;
            StringBuilder alteracoes = new StringBuilder();

            if (tarefaAntiga == null)
            {
                alteracoes.Append("Criação da tarefa\n");
            }
            else
            {
                if (tarefaAtual.TxDescricao != tarefaAntiga.TxDescricao)
                {
                    alteracoes.Append(String.Format("Descrição alterada de ' {0} ' para ' {1} '\n", tarefaAntiga.TxDescricao, tarefaAtual.TxDescricao));
                }

                if (tarefaAtual.SituacaoPlanejamento != tarefaAntiga.SituacaoPlanejamento)
                {
                    valorNovo   = tarefaAtual.SituacaoPlanejamento != null ? tarefaAtual.SituacaoPlanejamento.TxDescricao : string.Empty;
                    valorAntigo = tarefaAntiga.SituacaoPlanejamento != null ? tarefaAntiga.SituacaoPlanejamento.TxDescricao : string.Empty;

                    alteracoes.Append(String.Format("Situação alterada de ' {0} ' para ' {1} '\n", valorAntigo, valorNovo));
                }

                if (tarefaAtual.TxResponsaveis != tarefaAntiga.TxResponsaveis)
                {
                    alteracoes.Append(String.Format("Responsável alterado de ' {0} ' para ' {1} '\n",
                                                    tarefaAntiga.TxResponsaveis, tarefaAtual.TxResponsaveis));
                }

                if (tarefaAtual.NbEstimativaRestante != tarefaAntiga.NbEstimativaRestante)
                {
                    alteracoes.Append(String.Format("Estimativa Restante alterada de ' {0} ' para ' {1} '\n",
                                                    ConversorTimeSpan.ConverterTimeSpanParaString(tarefaAntiga.EstimativaRestanteHora),
                                                    ConversorTimeSpan.ConverterTimeSpanParaString(tarefaAtual.EstimativaRestanteHora)));
                }

                if (tarefaAtual.NbEstimativaInicial != tarefaAntiga.NbEstimativaInicial)
                {
                    alteracoes.Append(String.Format("Estimativa Inicial alterada de ' {0} ' para ' {1} '\n",
                                                    ConversorTimeSpan.ConverterTimeSpanParaString(tarefaAntiga.EstimativaInicialHora),
                                                    ConversorTimeSpan.ConverterTimeSpanParaString(tarefaAtual.EstimativaInicialHora)));
                }

                if (tarefaAtual.NbRealizado != tarefaAntiga.NbRealizado)
                {
                    alteracoes.Append(String.Format("Horas Realizadas alteradas de ' {0} ' para ' {1} '\n",
                                                    ConversorTimeSpan.ConverterTimeSpanParaString(tarefaAntiga.EstimativaRealizadoHora),
                                                    ConversorTimeSpan.ConverterTimeSpanParaString(tarefaAtual.EstimativaRealizadoHora)));
                }

                if (tarefaAtual.TxObservacao != tarefaAntiga.TxObservacao)
                {
                    alteracoes.Append(String.Format("Observação alterada de ' {0} ' para ' {1} '\n",
                                                    tarefaAntiga.TxObservacao, tarefaAtual.TxObservacao));
                }

                if (((DateTime)tarefaAtual.DtInicio).Date != ((DateTime)tarefaAntiga.DtInicio).Date)
                {
                    alteracoes.Append(String.Format("Data de Início alterada de ' {0:dd/MM/yyyy} ' para ' {1:dd/MM/yyyy} '\n",
                                                    tarefaAntiga.DtInicio, tarefaAtual.DtInicio));
                }
            }

            if (alteracoes.Length > 0)
            {
                TarefaLogAlteracao logAlteracao = new TarefaLogAlteracao();
                logAlteracao.OidTarefa      = tarefaAtual.Oid;
                logAlteracao.DtDataHoraLog  = DateUtil.ConsultarDataHoraAtual();
                logAlteracao.OidColaborador = tarefaAtual.OidAtualizadoPor;
                logAlteracao.TxAlteracoes   = alteracoes.ToString();

                TarefaLogAlteracaoDao.Salvar(logAlteracao);
            }
        }