Example #1
0
        private void CompararECriarComparacoes(ComparacaoBases comparacaoBases)
        {
            var        contexto      = new DBMigrationCompareSimilarDBsContext();
            DateTime   dataInicio    = DateTime.Now;
            BaseLegada baseAlvo      = contexto.BaseLegada.Include(bl => bl.BaseLegadaGrupoNavigation).FirstOrDefault(bl => bl.Id == comparacaoBases.BaseAlvo);
            BaseLegada baseFonte     = contexto.BaseLegada.Find(comparacaoBases.BaseFonte);
            string     tempPath      = Path.GetTempPath();
            string     prefixo       = $"{tempPath}Compare_{baseFonte.Nome}_{baseAlvo.Nome}";
            string     xmlOutPutFile = $"{prefixo}_out.xml";

            try
            {
                contexto.ComparacaoBasesElementos.RemoveRange(contexto.ComparacaoBasesElementos.Where(cbe => cbe.ComparacaoBases == comparacaoBases.Id));
                GerarArquivoComparacaoSQL(baseFonte.Nome, baseAlvo.Nome, xmlOutPutFile, baseAlvo.BaseLegadaGrupoNavigation.ConnectionStringLegadas);
                comparacaoBases = ExtrairInformacoesComparacaoDeXML(xmlOutPutFile, comparacaoBases);
                // Exclui os elementos da comparação, se existir, para refazer a comparação existente.
                comparacaoBases.StatusComparacao = StatusComparacao.Concluida;
                comparacaoBases.DataComparacao   = DateTime.Now;
            }
            catch (Exception ex)
            {
                comparacaoBases.StatusComparacao = StatusComparacao.Falha;
                comparacaoBases.MensagemFalha    = ex.Message;
            }
            comparacaoBases.TempoComparacaoEmMinutos = (DateTime.Now - dataInicio).TotalMinutes;
            lock (lockObject)
            {
                contexto.ComparacaoBases.Update(comparacaoBases);
                _ = contexto.SaveChangesAsync();
            }
        }
Example #2
0
        public async Task <IActionResult> Edit(long id, [Bind("Id,Nome,StatusMigracao,LinkRespostorio,Tamanho,DataUltimaEstatistica")] BaseLegada baseLegadaView)
        {
            if (id != baseLegadaView.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    BaseLegada baseLegada = _context.BaseLegada.Find(id);
                    baseLegada.StatusMigracao  = baseLegadaView.StatusMigracao;
                    baseLegada.LinkRespostorio = baseLegadaView.LinkRespostorio;
                    _context.Update(baseLegada);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!BaseLegadaExists(baseLegadaView.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(baseLegadaView));
        }