private void InitializeDataBase() { using (var context = new DataBaseContext()) { context.Database.Initialize(false); context.Commit(); } }
public void Commit() { _dataBaseContext.Commit(); _dataBaseContext.BeginTrans(); }
public bool AtualizarTrello(ref ProgressBar progressBar1, ref ListBox lbxProgresso) { try { #region converte o JSON em classe .NET Trellos cartao = null; lbxProgresso.Items.Clear(); if (!importacaoWEB) { bp.IncrementarBarra(ref progressBar1, ref lbxProgresso, "LOG: Carregando arquivo Trello [" + arqRet + " ]"); if (!File.Exists(arqRet)) { bp.FinalizarBarraProgresso(ref progressBar1, ref lbxProgresso, "ERROR: Arquivo Trello[" + arqRet + "] não Localizado"); return(false); } StreamReader txt = new StreamReader(arqRet, System.Text.Encoding.Default); String content = txt.ReadToEnd(); txt.Close(); try { JsonSerializer serializer = new JsonSerializer(); serializer.Converters.Add(new JavaScriptDateTimeConverter()); serializer.NullValueHandling = NullValueHandling.Ignore; cartao = JsonConvert.DeserializeObject <Trellos>(content); } catch (Exception ex) { bp.FinalizarBarraProgresso(ref progressBar1, ref lbxProgresso, "ERROR: Erro fazendo Leitura(de - serialização) do arquivo Trello, \nO processo não poderá ser seguido, extraia o arquivo e tente novamente " + ex.Message); return(false); } } #endregion using (DataBaseContext dtb = new DataBaseContext()) { try { dtb.BeginTransaction(); List1[] minhasListas; Member2[] meusUsuarios; Card1[] meusCartoes; Action[] minhasAcoes; System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; #region Listas if (!importacaoWEB) { minhasListas = cartao.lists; } else { minhasListas = ObterTodasListas(); } var dtcLista = new ListaDTC(dtb); var dtcCartao = new CartaoDTC(dtb); bp.IniciarProgresso(ref progressBar1, ref lbxProgresso, "LOG: Atualizando Listas...", minhasListas.Length); foreach (var item in minhasListas) { bp.IncrementarBarra(ref progressBar1, ref lbxProgresso); using (ListaBO lista = new ListaBO()) { lista.ListaId = item.id; lista.Lista = item.name; dtcLista.Consultar(lista); if (dtcLista.ResultState == ResultTypeEnum.DataFound) { dtcLista.Alterar(lista); } else { dtcLista.Incluir(lista); } } } #endregion #region usuarios if (!importacaoWEB) { meusUsuarios = cartao.members; } else { meusUsuarios = ObterTodosUsuarios(); } bp.IniciarProgresso(ref progressBar1, ref lbxProgresso, "LOG: Atualizando usuários...", meusUsuarios.Length); foreach (var item in meusUsuarios) { using (UsuarioBO usuario = new UsuarioBO()) { bp.IncrementarBarra(ref progressBar1, ref lbxProgresso); var dtcUser = new UsuarioDTC(dtb); usuario.UsuarioId = item.id; dtcUser.Consultar(usuario); usuario.Nome = item.fullName; usuario.Email = item.username + "@"; if (dtcUser.ResultState == ResultTypeEnum.DataFound) { dtcUser.Alterar(usuario); } else { dtcUser.Incluir(usuario); } } } #endregion #region cartoes - Chamados if (!importacaoWEB) { meusCartoes = cartao.cards; } else { meusCartoes = ObterTodosCartoes(this.importarCartoesArquivados); } bp.IniciarProgresso(ref progressBar1, ref lbxProgresso, "LOG: Atualizando Cartões...", meusCartoes.Length); foreach (var item in meusCartoes) { bp.IncrementarBarra(ref progressBar1, ref lbxProgresso); using (CartaoBO card = new CartaoBO()) { card.CartaoId = item.id; dtcCartao.Consultar(card); card.Texto = item.name; card.Finalizado = 0; if (item.due != null) { card.DataPrometida = (DateTimeField)item.due; } card.Link = item.shortUrl; if (item.labels.Length > 0) { card.Tipo = item.labels.Where(ct => ct.id == lLblCorretivo).ToList().Count() > 0 ? "Corretivo" : item.labels.Where(ct => ct.id == lLblMelhoria).ToList().Count() > 0 ? "Melhoria" : string.Empty; if (card.Tipo == string.Empty) { card.Tipo = item.labels[0].name; } } if (item.idMembers.Length > 0) { card.UsuarioId = item.idMembers[0].ToString(); } if (item.dateLastActivity != null) { card.DataUltimaAtividade = item.dateLastActivity; } card.Retrabalho = item.labels.Where(r => r.id == lLblRetrabalho).ToList().Count(); if (!importacaoWEB) { card.UltraCargo = item.customFieldItems.Where(f => f.value.Checked).ToList().Count; } else { card.UltraCargo = ObterCustomFieldItemsCartao(item.id).Where(f => f.value.Checked).ToList().Count; } card.IdLista = item.idList; if (!importacaoWEB) { minhasAcoes = cartao.actions; } else { minhasAcoes = obterActionsCartao(item.id); PersistirAcoes(ref minhasAcoes, ref progressBar1, ref lbxProgresso, dtb, item.id); } //Consulta direto no arquivo Json foreach (var c in minhasAcoes) { if (c.data.list != null) { if ((c.data.list.id == lSelGrooming) && (c.data.card.id == item.id)) { card.DataAnalise = card.DataUltimaAtividade; } if ((c.data.list.id == lDesenvolvimento) && (c.data.card.id == item.id)) { card.DataInicioDev = card.DataUltimaAtividade; } if ((c.data.list.id == lUatDes) && (c.data.card.id == item.id)) { card.DataFimDev = card.DataUltimaAtividade; } if (((c.data.list.id == lPRD) || (c.data.list.id == lReadyForPRD)) && (c.data.card.id == item.id)) { card.Finalizado = 1; } } } card.Arquivado = (item.closed ? 1 : 0); // Atualiza o cartão/chamado if (dtcCartao.ResultState == ResultTypeEnum.DataFound) { dtcCartao.Alterar(card); } else { dtcCartao.Incluir(card); } } } #endregion #region ações - Steps (somente se gerar com arquivo) if (!importacaoWEB) { minhasAcoes = cartao.actions; PersistirAcoes(ref minhasAcoes, ref progressBar1, ref lbxProgresso, dtb, string.Empty); } #endregion #region finalizando atualizações dtb.Commit(); bp.IniciarProgresso(ref progressBar1, ref lbxProgresso, "LOG: Atualizando Listas anteriores...", 1); dtb.BeginTransaction(); AtualizaListaAnteriorAcoes(); dtb.Commit(); bp.FinalizarBarraProgresso(ref progressBar1, ref lbxProgresso, "LOG: Gerando e-mail de notificação ao gerente do projeto."); IEmail mail = new Email(); if (mail.EnviarEmail()) { bp.FinalizarBarraProgresso(ref progressBar1, ref lbxProgresso, "OK: Fim da Atualização com sucesso " + DateTime.Now.ToString()); } else { bp.FinalizarBarraProgresso(ref progressBar1, ref lbxProgresso, "WARNING: Base foi atualizada, mas ocorreu um erro ao gerar e-mail de notificação."); } #endregion } catch (Exception ext) { dtb.Rollback(); bp.FinalizarBarraProgresso(ref progressBar1, ref lbxProgresso, "ERROR: Erro na Atualização[ " + ext.Message + "] - Nenhum registro atualizado"); return(false); } } } catch (Exception ex) { bp.FinalizarBarraProgresso(ref progressBar1, ref lbxProgresso, "ERROR: Erro - Atualização não Inicializada " + ex.Message); return(false); } return(true); }