private void Guardar(ResumenLecturaMedidor resumen, ResultadoLectura res, ParametrosLectura parametros) { MC_LecturaDetalle.EliminarMarcadosParaBorrar(resumen, res, parametros); MC_LecturaDetalle.EliminarDuplicados(resumen, res, parametros); MC_LecturaDetalle.EliminarFueraDeIntervalo(resumen, res, parametros); MC_LecturaMgr.Instancia.Guardar(resumen, res, parametros); }
public bool Validar(ResumenLecturaMedidor resumen, ResultadoLectura res, ParametrosLectura parametros) { bool resultado = true; RegistroLectura ultimoEnBD = MC_LecturaMgr.Instancia.GetUltimoRegistroBD(resumen.PkCodPuntoMedicion); MC_IntervaloMaestro defIntervaloActual = MC_IntervaloMaestroMgr.Instancia.GetIntervaloPorFecha(DateTime.Now.Date); if (ultimoEnBD == null || ultimoEnBD.Fecha.AddMinutes(defIntervaloActual.PeriodoTiempo) == res.Registros[0].Fecha) { resumen[Nombre] = "OK"; } else if (ultimoEnBD.Fecha.AddMinutes(defIntervaloActual.PeriodoTiempo) < res.Registros[0].Fecha) {//hay hueco resumen[Nombre] = "Faltan Registros"; resultado = false; } else { List <RegistroLectura> registrosAnteriores = MC_LecturaMgr.Instancia.GetRegistrosDesdeFecha(resumen.PkCodPuntoMedicion, res.Registros[0].Fecha.Date); MC_LecturaDetalle.EliminarDuplicados(resumen, res, parametros); MC_LecturaDetalle.EliminarFueraDeIntervalo(resumen, res, parametros); int i = 0, j = 0; for (; i < registrosAnteriores.Count && j < res.Registros.Count; i++) { if (registrosAnteriores[i].Igual(res.Registros[j])) { res.Registros[j].MarcadoParaBorrar = true; } else { resumen[Nombre] = "Datos Inconsistentes"; resultado = false; } j++; } if (resultado) { resumen[Nombre] = "OK"; } } return(resultado); }