public IEnumerable <SolicitudRecurso> GetSolicitudesFullByProyectoId(int proyectoId) { var solicitudes = GetMany(x => x.ProyectoId.Equals(proyectoId)).ToList(); var buSolicitudRecursoDetalle = new BuSolicitudRecursoDetalle(); var buRecurso = new BuRecurso(); var buAlmacenRecurso = new BuAlmacenRecurso(); var prioridades = new BuPrioridad().GetAll(); var estados = new BuEstado().GetAll(); var trabajadores = new BuTrabajador().GetAll(); foreach (var solicitud in solicitudes) { solicitud.Prioridad = prioridades.FirstOrDefault(x => x.Id.Equals(solicitud.PrioridadId)); solicitud.Estado = estados.FirstOrDefault(x => x.Id.Equals(solicitud.EstadoId)); solicitud.Responsable = trabajadores.FirstOrDefault(x => x.Id.Equals(solicitud.ResponsableId)); solicitud.Recursos = buSolicitudRecursoDetalle.GetMany(x => x.SolicitudRecursoId.Equals(solicitud.Id)).ToList(); foreach (var detalle in solicitud.Recursos) { detalle.Recurso = buRecurso.GetById(detalle.RecursoId); detalle.QuantityAvailable = buAlmacenRecurso .Get(x => x.AlmacenId.Equals(1) && x.RecursoId.Equals(detalle.RecursoId)) .StockAvailable; detalle.QuantityToAssign = (detalle.QuantityAvailable > detalle.QuantityPending) ? detalle.QuantityPending : detalle.QuantityAvailable; } } return(solicitudes); }
public IEnumerable <Proyecto> GetProyectosFullByPortafolioIdOrProgramaId(int portafolioId, int programaId) { var id = portafolioId + programaId; var proyectos = !portafolioId.Equals(0) ? GetMany(x => x.PortafolioId.HasValue && x.PortafolioId.Value.Equals(id)).ToList() : GetMany(x => x.ProgramaId.HasValue && x.ProgramaId.Value.Equals(id)).ToList(); var buCliente = new BuCliente(); var buPatrocinador = new BuPatrocinador(); var buSolicitudRecurso = new BuSolicitudRecurso(); var buSolicitudRecursoDetalle = new BuSolicitudRecursoDetalle(); var buRecurso = new BuRecurso(); var buAlmacenRecurso = new BuAlmacenRecurso(); var prioridades = new BuPrioridad().GetAll(); var estados = new BuEstado().GetAll(); var estadoAprobaciones = new BuEstadoAprobacion().GetAll(); var trabajadores = new BuTrabajador().GetAll(); var tipoProyectos = new BuTipoProyecto().GetAll(); foreach (var proyecto in proyectos) { proyecto.EstadoAprobacion = estadoAprobaciones.FirstOrDefault(x => x.Id.Equals(proyecto.EstadoAprobacionId)); proyecto.Prioridad = prioridades.FirstOrDefault(x => x.Id.Equals(proyecto.PrioridadId)); proyecto.Estado = estados.FirstOrDefault(x => x.Id.Equals(proyecto.EstadoId)); proyecto.Cliente = buCliente.GetById(proyecto.ClienteId); proyecto.TipoProyecto = tipoProyectos.FirstOrDefault(x => x.Id.Equals(proyecto.TipoProyectoId)); proyecto.Responsable = trabajadores.FirstOrDefault(x => x.Id.Equals(proyecto.ResponsableId)); proyecto.Patrocinador = buPatrocinador.GetById(proyecto.PatrocinadorId); var solicitudes = buSolicitudRecurso.GetMany(x => x.ProyectoId.Equals(proyecto.Id) && x.EstadoId.Equals((int)Enums.EstadoType.Pendiente)); if (solicitudes == null) { continue; } { proyecto.SolicitudesRecurso = solicitudes.ToList(); foreach (var solicitud in proyecto.SolicitudesRecurso) { solicitud.Prioridad = prioridades.FirstOrDefault(x => x.Id.Equals(solicitud.PrioridadId)); var detallesSolicitud = buSolicitudRecursoDetalle.GetMany(x => x.SolicitudRecursoId.Equals(solicitud.Id)); if (detallesSolicitud == null) { continue; } { solicitud.Recursos = detallesSolicitud.ToList(); foreach (var detalle in solicitud.Recursos) { detalle.Recurso = buRecurso.GetById(detalle.RecursoId); detalle.QuantityAvailable = buAlmacenRecurso.Get(x => x.AlmacenId.Equals(1) && x.RecursoId.Equals(detalle.RecursoId)).StockAvailable; detalle.QuantityToAssign = (detalle.QuantityAvailable > detalle.QuantityPending) ? detalle.QuantityPending : detalle.QuantityAvailable; } } } } } return(proyectos); }