public override bool LerMarcacoes(Marcacoes marcacoes, AssepontoRep.Bridge.TipoImportacaoMarcacoes tipoimportacao) { DBApp db = new DBApp(); Connect(TerminalDados.Indice); string from = ""; string to = ""; RepProtocol.FiltroRegistro f; if (tipoimportacao == TipoImportacaoMarcacoes.OnlyNew) { f = RepProtocol.FiltroRegistro.NsrRange; RepProtocol.MrpStatus st = repProtocol.GetMrpStatus(); int ProximoNsr = db.getLastNsr(TerminalDados.Indice) + 1; from = ProximoNsr.ToString().PadLeft(9, '0'); to = st.LastNSR.ToString(); } else { f = RepProtocol.FiltroRegistro.All; } List <string> r = repProtocol.GetRegs(f, from, to); foreach (string linha in r) { Marcacoes.Marcacao marcacao = new Marcacoes.Marcacao(); marcacoes.InterpretarRegistroAfd(linha, out marcacao); if (marcacao.Tipo == Marcacoes.TiposRegistroAfd.Marcacao) { marcacoes.Add(marcacao); } } //Wr.Classes.Files.WriteFile(@"c:\arquivo.txt", r); return(marcacoes.Count > 0); }
public override bool LerMarcacoes(Marcacoes marcacoes, AssepontoRep.Bridge.TipoImportacaoMarcacoes tipoimportacao) { Disconnect(TerminalDados.Indice); Connect(TerminalDados.Indice); List <string> lstrEventData; string[] split; DBApp bd = new DBApp(); int last = bd.getLastNsr(TerminalDados.Indice); uint uiNSR = Convert.ToUInt32(last == 0 ? 1 : last); try { this._objController.RequestTotalNSR(); System.Threading.Thread.Sleep(100); lstrEventData = this._objController.GetEventData(); split = lstrEventData[6].Split(new string[] { " : " }, StringSplitOptions.None); uint uiMaxNSR = Convert.ToUInt32(split[1]); log.AddLog(":: ATENÇÃO :: A IMPORTAÇÃO DESSE RELÓGIO PODE DEMORAR, NÃO FINALIZE"); log.AddLog(" ATÉ QUE TENHA TERMINADO ..."); log.AddLog("AGUARDE..."); System.Threading.Thread.Sleep(100); for (uint i = uiNSR; i <= uiMaxNSR; i++) { this._objController.RequestEventByNSR(i); int seg = 0; System.Threading.Thread.Sleep(100); EConnectionState state = EConnectionState.SendingData; while (state == EConnectionState.SendingData) { state = this._objController.GetConnectionState(); //System.Threading.Thread.Sleep(100); seg++; } if (state == EConnectionState.DataReceived) { this._objController.SetConnectionState(EConnectionState.Connected); System.Threading.Thread.Sleep(100); lstrEventData = this._objController.GetEventData(); if (lstrEventData == null) { throw new Exception("Evento não encontrado."); } int tipo = -1; for (int c = 0; c < lstrEventData.Count; c++) { if (lstrEventData[c].Contains("Tipo do Registro")) { split = lstrEventData[c].Split(new string[] { " : " }, StringSplitOptions.None); tipo = Convert.ToInt32(split[1]); break; } } Marcacoes.Marcacao marc; if (tipo == 3) { marc = new Marcacoes.Marcacao(); marc.Tipo = Marcacoes.TiposRegistroAfd.Marcacao; split = lstrEventData[7].Split(new string[] { " : " }, StringSplitOptions.None); string nsr = split[1]; marc.NSR = Convert.ToInt32(nsr); split = lstrEventData[9].Split(new string[] { " : " }, StringSplitOptions.None); string datetime = split[1].Trim(); split = lstrEventData[10].Split(new string[] { " : " }, StringSplitOptions.None); datetime = datetime + " " + split[1].Trim(); marc.DataHora = Convert.ToDateTime(datetime); split = lstrEventData[11].Split(new string[] { " : " }, StringSplitOptions.None); string pis = split[1].Replace(".", "").Replace("-", "").Trim(); marc.Pis = pis; marcacoes.Add(marc); } } } bd.setLastNsr(TerminalDados.Indice, (int)uiMaxNSR); bool retorno = (marcacoes.Count > 0); Disconnect(TerminalDados.Indice); return(retorno); } catch (Exception exError) { log.AddLog(Consts.ERRO_ENVIO_COMANDO); log.AddLog("Descrição ", true); log.AddLog(exError.Message); Disconnect(TerminalDados.Indice); return(false); } }