private void VerificarRegistrosEAtualizarBanco(ICollection <Registro> registros) { //Cria o serviço, usando Injeção de Dependência. MarcacaoFrequenciaService marcacaoFrequenciaService = (MarcacaoFrequenciaService)ActivatorUtilities.CreateInstance(_provider, typeof(MarcacaoFrequenciaService)); foreach (var registro in registros) { var registroAdicionavel = !_context.Registros.Where(r => r.Matricula.CompareTo(registro.Matricula) == 0 && r.IdRelogio == registro.IdRelogio && r.Marcacao == registro.Marcacao).Any(); try { if (registroAdicionavel) { _context.Registros.Add(new Registro() { IdRelogio = registro.IdRelogio, Marcacao = registro.Marcacao, Matricula = registro.Matricula, Migrado = marcacaoFrequenciaService.VerificarMigrado(registro), idMarcacaoRelogio = registro.idMarcacaoRelogio }); } }catch (Exception e) { _logger.LogError(e, $"Não foi possível migrar o registro {registro.idMarcacaoRelogio} do servidor {registro.Matricula}"); } } _context.SaveChanges(); }
public void LancarRegistros(Relogio relogio, ICollection <Registro> registros) { //Cria o serviço, usando Injeção de Dependência. MarcacaoFrequenciaService marcacaoFrequenciaService = (MarcacaoFrequenciaService)ActivatorUtilities.CreateInstance(_provider, typeof(MarcacaoFrequenciaService)); //Lança registro no SRH2 marcacaoFrequenciaService.LancarRegistros(registros); }
public async Task LerRelogioELancarAsync(Relogio relogio, DateTime Inicio, DateTime Fim, bool lancar = false) { //Função obtem registros e salva no banco. await this.ObterRegistrosAsync(relogio, Inicio, Fim); //Recupera registro do banco. var registrosParaEnvio = _context.Registros.Include(r => r.Relogio).AsNoTracking().Where( reg => reg.MigradoFrequencia == "F" && reg.IdRelogio == relogio.Id && reg.Marcacao >= Inicio && reg.Marcacao <= Fim) .Select(reg => reg).ToList(); if (lancar) { //Cria o serviço, usando Injeção de Dependência. MarcacaoFrequenciaService marcacaoFrequenciaService = (MarcacaoFrequenciaService)ActivatorUtilities.CreateInstance(_provider, typeof(MarcacaoFrequenciaService)); //Lança registro no SRH2 marcacaoFrequenciaService.LancarRegistros(registrosParaEnvio); } }