public Response <IEnumerable <BoletaPago> > GetTrabajadores(BoletaPago obj) { try { var result = repository.GetTrabajadores(obj); if (result.Any()) { string periodo = obj.HorasTrabajadas.Periodo; string body = CargarPlantilla(periodo); string nombrearchivo = "Boleta de Pago " + periodo; int i = 1; int?trabajadorid = 0; int contador = result.Count(); while (contador >= i) { trabajadorid = result.Where(x => x.Indicador == i).Select(y => y.Trabajador.Trabajador_Id).FirstOrDefault(); Trabajador trabajador = new Trabajador(); Empleador empleador = new Empleador(); HorasTrabajadas horasTrabajadas = new HorasTrabajadas(); IEnumerable <DetalleVacaciones> lstdetalleVacaiones; Beneficio beneficio = new Beneficio(); if (trabajadorid > 0) { trabajador = repository2.ObtenerTrabajador(trabajadorid); empleador = repository3.ObtenerEmpleador(); horasTrabajadas = repository4.CalculaHorasTrabajadas(periodo, trabajador); trabajador.HorasTrabajadas = new HorasTrabajadas { Periodo = periodo }; lstdetalleVacaiones = repository5.DetalleVacaciones(trabajador); beneficio = repository6.GetSeguro(trabajador); byte[] arraybytes = CrearBoletaPago(periodo, empleador, trabajador, horasTrabajadas, lstdetalleVacaiones.ToArray(), beneficio); EnvioCorreo.Send(trabajador.Correo, nombrearchivo, body, arraybytes, nombrearchivo + ".pdf"); } i++; } return(new Response <IEnumerable <BoletaPago> >(result)); } else { var rs = new Response <IEnumerable <BoletaPago> >(result); rs.InternalException = "No se encontraton boletas con esa fecha"; rs.InternalStatus = InternalStatus.Failed; return(rs); } } catch (Exception ex) { return(new Response <IEnumerable <BoletaPago> >(ex)); } }