static void ReadDataSupervisor(IMessageHandling proxy) { // consultar lista de departamentos DepartamentQuery dptQry = new DepartamentQuery(); DepartamentQueryResult dptQryRst = proxy.Handle(dptQry); Console.WriteLine("\nLeida lista de departamentos. Cantidad: " + dptQryRst.Coleccion.Count); foreach (var depart in dptQryRst.Coleccion) { Console.WriteLine(string.Format(" Leído Departamento Id: {0}\t Nombre: {1}", depart.Id, depart.Description)); } // consultar claves mes existentes ClaveMesQuery cmQry = new ClaveMesQuery(); ClaveMesQueryResult cmQryRst = proxy.Handle(cmQry); Console.WriteLine("\nClaves Mes registradas"); foreach (var item in cmQryRst.Coleccion) { Console.WriteLine(string.Format(" Clave Mes: {0}", item.Texto)); } // consultar asistencia para un mes y tres departamentos ClaveMes mk = cmQryRst.Coleccion[1]; Collection <int> departs = new Collection <int>(); departs.Add(dptQryRst.Coleccion[1].Id); departs.Add(dptQryRst.Coleccion[3].Id); departs.Add(dptQryRst.Coleccion[5].Id); AsistenciaQuery asistQry = new AsistenciaQuery(mk.Id, departs); AsistenciaQueryResult asistQryRst = proxy.Handle(asistQry); //Console.WriteLine("\nIncidencias en el Mes registradas: " + asistQryRst.Incidencias.Count); Console.WriteLine("\nAsistencias en el Mes registradas"); Console.WriteLine(string.Format("Recibidos {0} empleados.", asistQryRst.Empleados.Count)); // listando empleados foreach (var item in asistQryRst.Empleados) { Console.WriteLine(string.Format("Nombre: {0}\t Id: {1}\t Codigo: {2} Cant. Asistencias: {3}", item.Nombre, item.Id, item.Code, item.Asistencias.Count)); } foreach (var empleado in asistQryRst.Empleados) { Console.WriteLine(); Console.WriteLine(string.Format(" {0}", empleado.Nombre)); foreach (var asist in empleado.Asistencias) { Console.WriteLine(string.Format(" {0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}", asist.State, asist.Id, asist.Fecha, asist.DiaSemana, asist.ChekinTime, asist.ChekoutTime, asist.IncidenciaCausaId, asist.IncidenciaObservacion)); } } }
/// <summary> /// Realiza la consulta de Asistencia. /// </summary> /// <param name="qry">Objeto con parámetros de consulta.</param> private static void ConsultarAsistencias(AsistenciaQuery qry) { const string methodName = "ConsultarAsistencias"; try { Log.WriteEntry(ClassName, methodName, TraceEventType.Information, "Consultando Asistencias registradas."); AsistenciaQueryResult result = _proxy.Handle(qry); bdsTodosEmpleados.DataSource = result.Empleados; bdsEmpleados.DataSource = result.Empleados; bdsCausasIncidencia.DataSource = result.CausasIncidencias; // Actualizar etiqueta Mes en Form Edicion ActualizarFechaConsultaForm(); Log.WriteEntry(ClassName, methodName, TraceEventType.Information, "Asistencias consultadas con exito."); } catch (Exception ex) { Log.WriteEntry(ClassName, methodName, TraceEventType.Error, string.Format("Error: {0}", ex.Message)); } }
// Metodo de entrada de resultado public static void In_AsistenciaQueryResult(AsistenciaQueryResult result) { const string methodName = "In_AsistenciaQueryResult"; try { FinEsperaPorTarea(TipoEspera.Consulta); bdsTodosEmpleados.DataSource = result.Empleados; bdsEmpleados.DataSource = result.Empleados; bdsCausasIncidencia.DataSource = result.CausasIncidencias; // Actualizar etiqueta Mes en Form Edicion ActualizarFechaConsultaForm(); _editForm.TabNavigationMode(FormClient.TabNavigationStatus.Resultados); Log.WriteEntry(ClassName, methodName, TraceEventType.Information, "Asistencias consultadas con exito."); } catch (Exception ex) { Log.WriteEntry(ClassName, methodName, TraceEventType.Error, string.Format("Error: {0}", ex.Message)); } }
public AsistenciaQueryResult Handle(AsistenciaQuery query) { // creando colecciones para respuesta //Collection<Incidencia> colIncidencias; Collection <Empleado> colEmpleados; Collection <Asistencia> colAssist; // Lectura de toda la tabla Collection <CausaIncidencia> colCausasIncid = RetCausaIncidencia(); // select Empleado handler de acuerdo a tipo de query switch (query.Mode) { case AsistenciaQuery.QueryMode.MesAnnoDepart: case AsistenciaQuery.QueryMode.ClaveMesDepart: colEmpleados = RetEmpleadosByDepart(query.Departamentos[0]); break; case AsistenciaQuery.QueryMode.MesAnnoListDepart: case AsistenciaQuery.QueryMode.ClaveMesListDepart: default: colEmpleados = RetEmpleadosByDepart(query.Departamentos); break; } // select Asistencia handler de acuerdo a tipo de query switch (query.Mode) { case AsistenciaQuery.QueryMode.MesAnnoDepart: colAssist = GetRegistroAsistenciaMes(query.Mes, query.Anno, query.Departamentos[0]); break; case AsistenciaQuery.QueryMode.ClaveMesDepart: colAssist = GetRegistroAsistenciaMes(query.MesId, query.Departamentos[0]); break; case AsistenciaQuery.QueryMode.MesAnnoListDepart: colAssist = GetRegistroAsistenciaMes(query.Mes, query.Anno, query.Departamentos); break; case AsistenciaQuery.QueryMode.ClaveMesListDepart: default: colAssist = GetRegistroAsistenciaMes(query.MesId, query.Departamentos); break; } // enlazando Empleados y Asistencias //colIncidencias = new Collection<Incidencia>(); foreach (var empl in colEmpleados) { IEnumerable <Asistencia> assistByEmpl = colAssist.Where(a => a.UserId == empl.Id); // Asignando asistencias a cada empleado por su Id empl.Asistencias = new Collection <Asistencia>(assistByEmpl.ToArray()); // actualizando Descriptor de Causa de Incidencia en Asistencias foreach (var asist in empl.Asistencias) { if (asist.IncidenciaRef != null) { // lookup improvisado int incId = asist.IncidenciaCausaId; var desc = colCausasIncid.Where(c => c.Id == incId).First(); asist.IncidenciaCausaDesc = desc.Description; } } } // Creando conjunto de datos de retorno //AsistenciaQueryResult ret = new AsistenciaQueryResult(colCausasIncid, colIncidencias, colEmpleados); AsistenciaQueryResult ret = new AsistenciaQueryResult(colCausasIncid, colEmpleados); // retornando return(ret); }
static void ReadDataJefeGrupo(IMessageHandling proxy) { // consultar dept del usuario UserDepartamentQuery dptQry = new UserDepartamentQuery(_userID); UserDepartamentQueryResult dptQryRst = proxy.Handle(dptQry); Console.WriteLine(string.Format(" Leído Departamento Id: {0}\t Nombre: {1}", dptQryRst.Id, dptQryRst.Name)); // consultar claves mes existentes ClaveMesQuery cmQry = new ClaveMesQuery(); ClaveMesQueryResult cmQryRst = proxy.Handle(cmQry); Console.WriteLine("\nClaves Mes registradas"); foreach (var item in cmQryRst.Coleccion) { Console.WriteLine(string.Format(" Clave Mes: {0}", item.Texto)); } // consultar asistencia para un mes y departamento del usuario // aislar datos de mes ClaveMes mk = cmQryRst.Coleccion[0]; AsistenciaQuery asistQry = new AsistenciaQuery(mk.Id, dptQryRst.Id); AsistenciaQueryResult asistQryRst = proxy.Handle(asistQry); // guardando ref a incidencias recibidas //Console.WriteLine("\nIncidencias en el Mes registradas: " + asistQryRst.Incidencias.Count); _asistencias = new Collection <Asistencia>(); Console.WriteLine("\nAsistencias en el Mes registradas"); Console.WriteLine(string.Format("Recibidos {0} empleados.", asistQryRst.Empleados.Count)); // listando empleados foreach (var item in asistQryRst.Empleados) { Console.WriteLine(string.Format("Nombre: {0}\t Id: {1}\t Codigo: {2} Cant. Asistencias: {3}", item.Nombre, item.Id, item.Code, item.Asistencias.Count)); } Console.WriteLine("\nAsistencias por trabajador"); foreach (var empleado in asistQryRst.Empleados) { Console.WriteLine(); Console.WriteLine(string.Format(" {0}", empleado.Nombre)); foreach (var asist in empleado.Asistencias) { Console.WriteLine(string.Format(" {0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}", asist.State, asist.Id, asist.Fecha, asist.DiaSemana, asist.ChekinTime, asist.ChekoutTime, asist.IncidenciaCausaId, asist.IncidenciaObservacion)); if (asist.Id == 177) { _asist01 = asist; } if (asist.Id == 232) { _asist02 = asist; } if (asist.Id == 342) { _asist03 = asist; } if (asist.Id == 452) { _asist04 = asist; } } } _asistencias.Add(_asist01); _asistencias.Add(_asist02); _asistencias.Add(_asist03); _asistencias.Add(_asist04); }