/// <summary> ///Insere os registros da lista na tLeituraCodigo. Se não conseguir inserir um ou mais registros, desfaz a transação. ///O retorno é a estrutura nescessária para a atualização da black list. /// </summary> /// <param name="listaInserir"></param> /// <returns>Sucesso de todos os inserts</returns> public List <EstruturaBlackList> AtualizaControleDeAcessoBlackList(List <EstruturaLeituraCodigo> listaInserir, int eventoID, int apresentacaoID, int setorID, DateTime ultimaSincronizacao) { try { BD bd = new BD(); StringBuilder sql; List <EstruturaBlackList> retorno = new List <EstruturaBlackList>(); List <EstruturaBlackList> retornoAux = new List <EstruturaBlackList>();//usada para trazer os itens da tIngressoLog EstruturaBlackList retornoItem; DateTime agora = DateTime.Now; CodigoBarra codigoBarra = new CodigoBarra(); bd.IniciarTransacao(); foreach (EstruturaLeituraCodigo registroAtual in listaInserir) { sql = new StringBuilder(); sql.Append("INSERT INTO tLeituraCodigo(EventoID, ApresentacaoID, SetorID, DataLeitura, CodigoBarra, Portaria, CodigoResultado,Coletor) "); sql.Append("VALUES (@001,@002,@003,'@004','@005','@006',@007,@008)"); sql.Replace("@001", registroAtual.EventoID.ToString()); sql.Replace("@002", registroAtual.ApresentacaoID.ToString()); sql.Replace("@003", registroAtual.SetorID.ToString()); sql.Replace("@004", registroAtual.DataLeitura.ToString("yyyyMMddHHmmss")); sql.Replace("@005", registroAtual.CodigoBarra); sql.Replace("@006", registroAtual.Portaria); sql.Replace("@007", registroAtual.CodigoResultado.ToString()); sql.Replace("@008", registroAtual.Coletor.ToString()); bool ok = bd.Executar(sql.ToString()) == 1 ? true : false; if (!ok)//Não conseguiu inserir, desfaz a transação { bd.DesfazerTransacao(); return(retorno);//devolve a lista vazia } } string filtroSetor = " AND SetorID= " + setorID; if (setorID == 0)//todos os setores { filtroSetor = " "; } //Primeiro traz os itens inseridos na tLeituraCodigo depois da ultima atualização bd.Comando = ""; bd.Consulta(@"SELECT DataLeitura, CodigoBarra, Portaria, CodigoResultado, Coletor FROM tLeituraCodigo(NOLOCK) WHERE EventoID =" + eventoID + " AND ApresentacaoID =" + apresentacaoID + filtroSetor + " AND DataLeitura > '" + ultimaSincronizacao.ToString("yyyyMMddHHmmss") + "'"); while (bd.Consulta().Read()) { retornoItem = new EstruturaBlackList(); retornoItem.ApresentacaoID = apresentacaoID; retornoItem.CodigoBarra = bd.LerString("CodigoBarra"); retornoItem.ColetorNumero = bd.LerInt("Coletor"); retornoItem.DataHoraInclusao = bd.LerDateTime("DataLeitura"); retornoItem.DataHoraSincronizacao = agora; retornoItem.EventoID = eventoID; retornoItem.Motivo = (LeituraCodigo.CodigoResposta)bd.LerInt("CodigoResultado"); retornoItem.Portaria = bd.LerString("Portaria"); retornoItem.SetorID = setorID; retorno.Add(retornoItem); } bd.Consulta().Close(); retornoAux = codigoBarra.BlackList(eventoID, apresentacaoID, setorID, ultimaSincronizacao); bd.FinalizarTransacao(); foreach (EstruturaBlackList item in retornoAux) { retorno.Add(item); } return(retorno); } catch { bd.DesfazerTransacao(); throw; } finally { bd.Fechar(); } }
public DataTable InserirTxt(int eventoID, int apresentacaoID, int setorID, string[] linhas) { BD bd = new BD(); bd.IniciarTransacao(); DataTable oDataTable = new DataTable("Codigos"); oDataTable.Columns.Add("CodigosEncontrados", typeof(int)); oDataTable.Columns.Add("CodigosNaoEncontrados", typeof(int)); DataRow linhaTable = oDataTable.NewRow(); linhaTable["CodigosEncontrados"] = 0; linhaTable["CodigosNaoEncontrados"] = 0; CodigoBarra oCodigoBarra = new CodigoBarra(); try { //varre as linhas do txt foreach (string linha in linhas) { if (linha.Trim() == string.Empty) { continue; } //separa os itens em variáveis string[] parameters = linha.Split(','); string codigoBarra = parameters[0].Trim(); string dataLeitura = parameters[1].Trim(); string portaria = parameters[2].Trim(); string entradaSaida = parameters[3].Trim(); LeituraCodigo.CodigoResposta oCodigoResposta = (LeituraCodigo.CodigoResposta) int.Parse(parameters[4]); //grava no banco, usando a transação LeituraCodigo oLeituraCodigo = new LeituraCodigo(); oLeituraCodigo.EventoID.Valor = eventoID; oLeituraCodigo.ApresentacaoID.Valor = apresentacaoID; oLeituraCodigo.SetorID.Valor = setorID; oLeituraCodigo.DataLeitura.Valor = DateTime.ParseExact(dataLeitura, "yyyyMMddHHmmss", null); oLeituraCodigo.CodigoResultado.Valor = (int)oCodigoResposta; oLeituraCodigo.CodigoBarra.Valor = codigoBarra; oLeituraCodigo.Portaria.Valor = portaria; oLeituraCodigo.Inserir(bd); //verifica se o código existe, para posterior relatório if (oCodigoBarra.ExisteLog(codigoBarra)) { linhaTable["CodigosEncontrados"] = (int)linhaTable["CodigosEncontrados"] + 1; } else { linhaTable["CodigosNaoEncontrados"] = (int)linhaTable["CodigosNaoEncontrados"] + 1; } } oDataTable.Rows.Add(linhaTable); bd.FinalizarTransacao(); return(oDataTable); } catch (Exception ex) { bd.DesfazerTransacao(); throw ex; } finally { bd.Fechar(); } }
// passar o Usuario logado no sistema public CodigoBarraLista_B(int usuarioIDLogado) { codigoBarra = new CodigoBarra(usuarioIDLogado); }
// passar o Usuario logado no sistema public CodigoBarraLista_B() { codigoBarra = new CodigoBarra(); }
void ICodigoBarraRepositorio.Remover(CodigoBarra obj) => DbSet.Remove(obj);
public virtual async Task Inserir(CodigoBarra obj) => await DbSet.AddAsync(obj);
public CodigoBarra Remover(CodigoBarra obj) { _codigoBarraRepositorio.Remover(obj); return(obj); }