private void ActualizarPadreDDM(object sender, PropertyChangedEventArgs args) { DatosDispositivoModel model = (DatosDispositivoModel)sender; ddm = (BindingList <DatosDispositivoModel>)ddm.Where(x => x.idDDM != model.idDDM); ddm.Add(model); }
public List <DatosDispositivoModel> GetMarcaciones(ICollection <MachineInfo> Marcaciones, DateTime?Desde, DateTime?Hasta) { List <MachineInfo> se = new List <MachineInfo>(); se = Marcaciones.Where(x => x.InOutMode == 0 && Between(x.DateAndTime, Desde, Hasta)) .GroupBy(x => new { x.EnrollNumber, x.DateAndTime.Day, x.InOutMode }) .Select(g => g.First()).ToList(); //List<MachineInfo> ssd = new List<MachineInfo>(); //ssd = Marcaciones.Where(x => x.InOutMode == 2 && Between(x.DateAndTime, Desde, Hasta)) // .GroupBy(x => new { x.EnrollNumber, x.DateAndTime.Day, x.InOutMode }) // .Select(g => g.Last()).ToList(); //List<MachineInfo> sed = new List<MachineInfo>(); //sed = Marcaciones.Where(x => x.InOutMode == 3 && Between(x.DateAndTime, Desde, Hasta)) // .GroupBy(x => new { x.EnrollNumber, x.DateAndTime.Day, x.InOutMode }) // .Select(g => g.Last()).ToList(); List <MachineInfo> ss = new List <MachineInfo>(); ss = Marcaciones.Where(x => x.InOutMode == 1 && Between(x.DateAndTime, Desde, Hasta)) .GroupBy(x => new { x.EnrollNumber, x.DateAndTime.Day, x.InOutMode }) .Select(g => g.Last()).ToList(); List <DatosDispositivoModel> phs = new List <DatosDispositivoModel>(); foreach (var soloEntrada in se) { foreach (var soloSalida in ss) { bool dia = soloEntrada.DateAndTime.Day == soloSalida.DateAndTime.Day; bool mes = soloEntrada.DateAndTime.Month == soloSalida.DateAndTime.Month; bool anio = soloEntrada.DateAndTime.Year == soloSalida.DateAndTime.Year; bool enroll = soloEntrada.EnrollNumber == soloSalida.EnrollNumber; if (dia && mes && anio && enroll) { DatosDispositivoModel ph = new DatosDispositivoModel { Entrada = soloEntrada.DateAndTime, Salida = soloSalida.DateAndTime, idEmpleado = soloEntrada.EnrollNumber, }; phs.Add(ph); } } } foreach (var soloEntrada in se) { if (!phs.Where(x => x.Entrada == soloEntrada.DateAndTime).Any()) { DatosDispositivoModel ph = new DatosDispositivoModel { Entrada = soloEntrada.DateAndTime, idEmpleado = soloEntrada.EnrollNumber }; phs.Add(ph); } } foreach (var soloSalida in ss) { if (!phs.Where(x => x.Salida == soloSalida.DateAndTime).Any()) { DatosDispositivoModel ph = new DatosDispositivoModel { Salida = soloSalida.DateAndTime, idEmpleado = soloSalida.EnrollNumber }; phs.Add(ph); } } int x = 1; foreach (var ph in phs) { ph._NombreEmpleado = hec.GetNombreEmpleadoById(ph.idEmpleado); ph.idDDM = x; x++; } return(phs.OrderBy(x => x.NombreEmpleado).ToList()); }