Ejemplo n.º 1
0
        /// <summary>
        /// Método responsável por criar ou alterar um beneficiado
        /// </summary>
        /// <param name="contexto">Instância do banco</param>
        /// <param name="beneficiado">Objeto Beneficiado a ser salvo</param>
        public static void SalvarBeneficiado(WexDb contexto, Beneficiado beneficiado)
        {
            if (!contexto.Beneficiados.ExisteLocalmente(o => o.Oid == beneficiado.Oid))
            {
                contexto.Beneficiados.Attach(beneficiado);
            }

            if (contexto.Beneficiados.Existe(o => o.Oid == beneficiado.Oid))
            {
                contexto.Entry(beneficiado).State = EntityState.Modified;
            }
            else
            {
                contexto.Entry(beneficiado).State = EntityState.Added;
            }

            contexto.SaveChanges();
        }
        /// <summary>
        /// Método responsável por criar ou alterar um ciclo
        /// </summary>
        /// <param name="contexto">Instância do banco</param>
        /// <param name="cicloDesenv">Ciclo a ser salvo</param>
        public static void SalvarCicloDesenv(WexDb contexto, CicloDesenv cicloDesenv)
        {
            if (!contexto.CicloDesenvs.ExisteLocalmente(o => o.Oid == cicloDesenv.Oid))
            {
                contexto.CicloDesenvs.Attach(cicloDesenv);
            }

            if (contexto.CicloDesenvs.Existe(o => o.Oid == cicloDesenv.Oid))
            {
                contexto.Entry(cicloDesenv).State = EntityState.Modified;
            }
            else
            {
                contexto.Entry(cicloDesenv).State = EntityState.Added;
            }

            contexto.SaveChanges();
        }
        /// <summary>
        /// Método responsável por salvar uma estória
        /// </summary>
        /// <param name="contexto"></param>
        /// <param name="estoria"></param>
        public static void SalvarEstoria(WexDb contexto, Estoria estoria)
        {
            if (!contexto.Estorias.ExisteLocalmente(o => o.Oid == estoria.Oid))
            {
                contexto.Estorias.Attach(estoria);
            }

            if (contexto.Estorias.Existe(o => o.Oid == estoria.Oid))
            {
                contexto.Entry(estoria).State = EntityState.Modified;
            }
            else
            {
                contexto.Entry(estoria).State = EntityState.Added;
            }

            contexto.SaveChanges();
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Método para salvar um módulo na base
        /// </summary>
        /// <param name="contexto">contexto de conexão com o banco</param>
        /// <param name="modulo">modulo a ser salvo</param>
        public static void SalvarModulo(WexDb contexto, Modulo modulo)
        {
            if (!contexto.Modulos.ExisteLocalmente(o => o.Oid == modulo.Oid))
            {
                contexto.Modulos.Attach(modulo);
            }

            if (contexto.Modulos.Existe(o => o.Oid == modulo.Oid))
            {
                contexto.Entry(modulo).State = EntityState.Modified;
            }
            else
            {
                contexto.Entry(modulo).State = EntityState.Added;
            }

            contexto.SaveChanges();
        }
        /// <summary>
        /// Método responsável por efetuar alteração na descrição do cronograma
        /// </summary>
        /// <param name="oidCronograma"> oid do cronograma que terá o nome alterado</param>
        /// <param name="novaDescricaoCronograma">novo nome do cronograma</param>
        public static bool AlterarDescricaoCronograma(Guid oidCronograma, string novaDescricaoCronograma)
        {
            if (oidCronograma == new Guid())
            {
                throw new ArgumentException("Erro de argumento, a oidCronograma não pode ser nulo");
            }

            if (string.IsNullOrEmpty(novaDescricaoCronograma))
            {
                throw new ArgumentException("Erro de argumento, a descrição da tarefa não pode ser nula");
            }

            Cronograma cronogramaSelecionado = CronogramaDao.ConsultarCronogramaPorOid(oidCronograma, o => o.SituacaoPlanejamento);

            if (cronogramaSelecionado == null)
            {
                return(false);
            }

            semaforoAlteracaoNomeCronograma.WaitOne();

            string descricaoValida = ValidarDescricaoCronograma(novaDescricaoCronograma);

            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                bool cronogramaComMesmoNome = contexto.Cronograma.Existe(o => o.TxDescricao == descricaoValida && !o.CsExcluido);

                if (cronogramaComMesmoNome)
                {
                    semaforoAlteracaoNomeCronograma.Release();
                    return(false);
                }

                cronogramaSelecionado.TxDescricao = descricaoValida;
                contexto.Cronograma.Attach(cronogramaSelecionado);
                contexto.Entry(cronogramaSelecionado).State = EntityState.Modified;
                contexto.Entry(cronogramaSelecionado.SituacaoPlanejamento).State = EntityState.Unchanged;
                contexto.SaveChanges();
                semaforoAlteracaoNomeCronograma.Release();
                return(true);
            }
        }
        public int ExcluirTermoAditivo(TermoAditivo termoAditivo)
        {
            using (var _db = new WexDb())
            {
                _db.Entry(termoAditivo).State = EntityState.Deleted;

                _db.SaveChanges();
            }

            return(termoAditivo.TermoAditivoId);
        }
        /// <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);
        }
Ejemplo n.º 8
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();
                }
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Método responsável por salvar o último projeto selecionado pelo colaborador
        /// </summary>
        /// <param name="contexto">Instância de conexão com o banco</param>
        /// <param name="oidColaborador">Oid do colaborador</param>
        /// <param name="oidProjeto">Oid do projeto</param>
        public static void SalvarUltimoProjetoSelecionado(Guid oidColaborador, Guid oidProjeto)
        {
            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                ColaboradorUltimoFiltro colUltimoFiltro = ColaboradorDAO.ConsultarColaborador(oidColaborador, o => o.ColaboradorUltimoFiltro).ColaboradorUltimoFiltro;

                colUltimoFiltro.OidUltimoProjetoSelecionado = oidProjeto;

                contexto.ColaboradorUltimoFiltroes.Attach(colUltimoFiltro);
                contexto.Entry <ColaboradorUltimoFiltro>(colUltimoFiltro).State = System.Data.EntityState.Modified;
                contexto.SaveChanges();
            }
        }
 /// <summary>
 ///     Adiciona ou atualiza uma nota fiscal
 /// </summary>
 /// <param name="notaFiscal">Nota fiscal</param>
 /// <returns>Id da nota fiscal</returns>
 public static int SalvarNotaFiscal(NotaFiscal notaFiscal)
 {
     using (WexDb contexto = ContextFactoryManager.CriarWexDb())
     {
         if (notaFiscal.Id == 0)
         {
             contexto.NotaFiscal.Add(notaFiscal);
         }
         else
         {
             contexto.Entry(notaFiscal).State = EntityState.Modified;
         }
         contexto.SaveChanges();
     }
     return(notaFiscal.Id);
 }
        /**
         * @summary Cadastrar um novo projeto ou atualiza seus dados
         * */
        public Guid SalvarProjeto(WexDb db, Projeto projeto)
        {
            if (db.Projetos.Existe(p => p.Oid == projeto.Oid))
            {
                db.Entry(projeto).State = EntityState.Modified;
            }
            else
            {
                projeto.Oid = Guid.NewGuid();
                db.Projetos.Add(projeto);
            }

            db.SaveChanges();

            return(projeto.Oid);
        }
        /// <summary>
        /// Método responsável por realizar a exclusão de um objeto Tarefa
        /// 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.
        /// </summary>
        /// <param name="oidTarefa">objeto para excluir</param>
        public static bool ExcluirTarefa(Guid oidTarefa)
        {
            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                Tarefa tarefaExistente = ConsultarTarefaPorOid(oidTarefa);
                if (tarefaExistente == null)
                {
                    return(false);
                }

                tarefaExistente.CsExcluido = true;
                contexto.Tarefa.Attach(tarefaExistente);
                contexto.Entry(tarefaExistente).State = EntityState.Modified;
                contexto.SaveChanges();
                return(true);
            }
        }
        public int SalvarTermoAditivo(TermoAditivo termoAditivo)
        {
            using (var _db = new WexDb())
            {
                if (termoAditivo.TermoAditivoId == 0)
                {
                    _db.TermosAditivos.Add(termoAditivo);
                }
                else
                {
                    _db.Entry(termoAditivo).State = EntityState.Modified;
                }

                _db.SaveChanges();
            }

            return(termoAditivo.TermoAditivoId);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Salva dados de Mão de Obra no Banco de Dados.
        /// </summary>
        /// <param name="maoDeObra">Modelo de Mão de Obra.</param>
        /// <returns>Id da Mão de Obra salva.</returns>
        public int SalvarMaoDeObra(MaoDeObra maoDeObra)
        {
            using (var _db = new WexDb())
            {
                if (maoDeObra.MaoDeObraId == 0)
                {
                    _db.MaosDeObra.Add(maoDeObra);
                }
                else
                {
                    _db.Entry(maoDeObra).State = EntityState.Modified;
                }

                _db.SaveChanges();
            }

            return(maoDeObra.MaoDeObraId);
        }
Ejemplo n.º 15
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="lote">Modelo de Lote de Mão de Obra.</param>
        /// <returns>Id de Lote salvo.</returns>
        public int SalvarLote(LoteMaoDeObra lote)
        {
            using (var _db = new WexDb())
            {
                if (lote.LoteId == 0)
                {
                    _db.Lotes.Add(lote);
                }
                else
                {
                    _db.Entry(lote).State = EntityState.Modified;
                }

                _db.SaveChanges();
            }

            return(lote.LoteId);
        }
        /// <summary>
        ///     Adiciona ou atualiza o detalhes de um mês de uma rubrica no banco
        /// </summary>
        /// <param name="rubricaMes">Objeto RubricaMes a ser adicionado ou atualizado</param>
        /// <returns>Id dos detalhes do mês da rubrica no banco</returns>
        public int SalvarRubricaMes(RubricaMes rubricaMes)
        {
            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                if (rubricaMes.RubricaMesId == 0)
                {
                    contexto.RubricaMeses.Add(rubricaMes);
                }
                else
                {
                    contexto.Entry(rubricaMes).State = EntityState.Modified;
                }

                contexto.SaveChanges();
            }

            return(rubricaMes.RubricaMesId);
        }
Ejemplo n.º 17
0
        private static void AlterarEstadoEstoria(WexDb contexto, Estoria estoria, CsSituacaoEstoriaCicloDomain situacaoEstoria)
        {
            switch (situacaoEstoria)
            {
            case CsSituacaoEstoriaCicloDomain.NaoIniciado:
                estoria.CsSituacao = (int)CsEstoriaDomain.NaoIniciado;
                break;

            case CsSituacaoEstoriaCicloDomain.EmDesenv:
                estoria.CsSituacao = (int)CsEstoriaDomain.EmDesenv;
                break;

            case CsSituacaoEstoriaCicloDomain.Pronto:
                estoria.CsSituacao = (int)CsEstoriaDomain.Pronto;
                break;

            case CsSituacaoEstoriaCicloDomain.Replanejado:
                estoria.CsSituacao = (int)CsEstoriaDomain.Replanejado;
                break;

            default:
                break;
            }

            EntityState estado;

            if (!contexto.Estorias.Existe(o => o.Oid == estoria.Oid))
            {
                estado = EntityState.Added;
            }
            else
            {
                estado = EntityState.Modified;
            }
            contexto.Entry(estoria).State = estado;
            contexto.SaveChanges();
        }
        /// <summary>
        /// Método responsável por, atribuir um colaborador à tarefa, caso ele não esteja como responsável pela mesma,
        /// atualizar a situação planejamento da tarefa e atualizar as estimativas da tarefa.
        /// </summary>
        /// <param name="oidTarefa">oid da tarefa</param>
        /// <param name="colaborador">Objeto Colaborador</param>
        /// <param name="situacaoPlanejamento">Objeto Situação Planejamento</param>
        /// <param name="nbHoraRealizado">Hora realizado da atividade</param>
        /// <param name="nbHoraRestante">Hora restante da atividade</param>
        public static void AtualizarDadosTarefa(Guid oidTarefa, Colaborador colaborador, SituacaoPlanejamento situacaoPlanejamento, TimeSpan nbHoraRealizado, TimeSpan nbHoraRestante, bool CsLinhaBaseSalva)
        {
            if (oidTarefa == null || oidTarefa == new Guid())
            {
                throw new ArgumentException("O parâmetro oidTarefa é  inválido");
            }

            using (WexDb contexto = ContextFactoryManager.CriarWexDb())
            {
                Tarefa tarefa = TarefaDao.ConsultarTarefaPorOid(oidTarefa);

                if (tarefa == null)
                {
                    return;
                }
                //Atualiza a situação planejamento da tarefa e estimativas
                if (situacaoPlanejamento != null && !tarefa.OidSituacaoPlanejamento.Equals(situacaoPlanejamento.Oid))
                {
                    tarefa.SituacaoPlanejamento    = null;
                    tarefa.OidSituacaoPlanejamento = situacaoPlanejamento.Oid;
                }

                if (colaborador != null && !tarefa.OidAtualizadoPor.Equals(colaborador.Oid))
                {
                    tarefa.AtualizadoPor    = null;
                    tarefa.OidAtualizadoPor = colaborador.Oid;
                }
                EstimarHorasRestantesSugeridaPorTipoSituacaoPlanejamento(tarefa, nbHoraRestante.Ticks, situacaoPlanejamento, true);
                tarefa.EstimativaRealizadoHora += nbHoraRealizado;
                tarefa.DtAtualizadoEm           = DateUtil.ConsultarDataHoraAtual();
                tarefa.CsLinhaBaseSalva         = CsLinhaBaseSalva;

                //Atualiza responsáveis tarefa
                if (nbHoraRealizado.Ticks > 0)
                {
                    if (!String.IsNullOrEmpty(tarefa.TxResponsaveis) || !String.IsNullOrWhiteSpace(tarefa.TxResponsaveis))
                    {
                        List <string> ResponsaveisTarefa = new List <string>(tarefa.TxResponsaveis.Split(','));

                        if (colaborador != null)
                        {
                            if (!ResponsaveisTarefa.Contains(colaborador.NomeCompleto))
                            {
                                tarefa.TxResponsaveis += "," + colaborador.NomeCompleto;
                            }
                        }
                    }
                    else
                    {
                        tarefa.TxResponsaveis += colaborador.NomeCompleto;
                    }
                }

                contexto.Tarefa.Attach(tarefa);
                contexto.Entry(tarefa).State = EntityState.Modified;

                contexto.SaveChanges();

                TarefaHistoricoEstimativaBo.CriarHistorico(DateUtil.ConsultarDataHoraAtual(), tarefa.Oid, tarefa.NbEstimativaRestante);
            }
        }
        /// <summary>
        /// Método responsável por salvar uma tarefa
        /// </summary>
        /// <param name="tarefa">Objeto Tarefa</param>
        /// <returns>retorna o objeto salvo</returns>
        public static Tarefa SalvarTarefa(Tarefa tarefa)
        {
            Tarefa copia = tarefa.Clone();

            copia.AtualizadoPor            = null;
            copia.LogsAlteracao            = null;
            copia.TarefaResponsaveis       = null;
            copia.TarefaHistoricoTrabalhos = null;
            copia.SituacaoPlanejamento     = null;
            copia.clone = null;

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

                    contexto.SaveChanges();
                }
            }
            catch (Exception)
            {
                try
                {
                    using (WexDb contexto = ContextFactoryManager.CriarWexDb())
                    {
                        if (contexto.Tarefa.Existe(o => o.Oid == tarefa.Oid))
                        {
                            contexto.Tarefa.Attach(copia);
                            contexto.Entry(copia).State = EntityState.Modified;
                        }
                        else
                        {
                            contexto.Tarefa.Add(copia);
                        }

                        contexto.SaveChanges();
                    }
                }
                catch (Exception)
                {
                    using (WexDb contexto = ContextFactoryManager.CriarWexDb())
                    {
                        if (contexto.Tarefa.Existe(o => o.Oid == tarefa.Oid))
                        {
                            contexto.Tarefa.Attach(copia);
                            contexto.Entry(copia).Reload();
                            contexto.Tarefa.Attach(copia);
                            contexto.Entry(copia).State = EntityState.Modified;
                        }
                        else
                        {
                            contexto.Tarefa.Add(copia);
                        }

                        contexto.SaveChanges();
                    }
                }
            }

            return(tarefa);
        }