public async Task <IActionResult> ListFromService(int idServicio, DateTime?creationDateFrom = null, DateTime?creationDateTo = null, int?idTipoRecurso = null)
        {
            try
            {
                var filter   = new ServicioRecursoFilterDTO(creationDateFrom, creationDateTo, idTipoRecurso);
                var entities = await _recursoService.ListFromService(idServicio, filter, Usuario);

                return(Ok(entities));
            }
            catch (Exception e)
            {
                return(StatusCode(500, e.Message));
            }
        }
Example #2
0
        public async Task <IEnumerable <ServicioRecursoDTO> > ListFromService(int IdServicio, ServicioRecursoFilterDTO filter, UsuarioDTO currUser)
        {
            var result = new List <ServicioRecursoDTO>();
            var rrhh   = await _servicioRecursoRepository.ListBy(s =>
                                                                 s.Active == true && s.IdServicio == IdServicio &&
                                                                 s.IdRecursoNavigation.IdTipoRecurso == TipoRecursoEnum.Recurso_Humano.ToInt() &&
                                                                 s.IdRecursoNavigation.IdEmpresa == currUser.IdEmpresa,
                                                                 s => s.IdRecursoNavigation,
                                                                 s => s.IdRecursoNavigation.IdTipoRecursoNavigation,
                                                                 s => s.IdRecursoNavigation.RecursoHumano);

            var rrmat = await _servicioRecursoRepository.ListBy(s =>
                                                                s.Active == true && s.IdServicio == IdServicio &&
                                                                s.IdRecursoNavigation.IdTipoRecurso == TipoRecursoEnum.Recurso_Material.ToInt() &&
                                                                s.IdRecursoNavigation.IdEmpresa == currUser.IdEmpresa,
                                                                s => s.IdRecursoNavigation,
                                                                s => s.IdUbicacionNavigation,
                                                                s => s.IdRecursoNavigation.IdTipoRecursoNavigation,
                                                                s => s.IdRecursoNavigation.RecursoMaterial);

            if (rrhh.Any())
            {
                result.AddRange(rrhh.Select(s => new ServicioRecursoDTO
                {
                    Recurso = new RecursoDTO
                    {
                        Id           = s.IdRecurso,
                        Descripcion  = s.IdRecursoNavigation.RecursoHumano.FirstOrDefault().Apellido + ", " + s.IdRecursoNavigation.RecursoHumano.FirstOrDefault().Nombre + " - " + s.IdRecursoNavigation.RecursoHumano.FirstOrDefault().Cuil,
                        CreationDate = s.IdRecursoNavigation.CreationDate
                    },
                    TipoRecurso      = _mapper.Map <TipoRecursoDTO>(s.IdRecursoNavigation.IdTipoRecursoNavigation),
                    FechaAsignado    = s.FechaAsignado,
                    Id               = s.Id,
                    FechaDesasignado = s.FechaDesasignado,
                    IdRecurso        = s.IdRecurso,
                    IdUbicacion      = s.IdUbicacion,
                    IdServicio       = s.IdServicio
                }).ToList());
            }
            if (rrmat.Any())
            {
                result.AddRange(rrmat.Select(s => new ServicioRecursoDTO
                {
                    Recurso = new RecursoDTO
                    {
                        Id           = s.IdRecurso,
                        Descripcion  = s.IdRecursoNavigation.RecursoMaterial.FirstOrDefault().Marca + ", " + s.IdRecursoNavigation.RecursoMaterial.FirstOrDefault().Modelo + (s.IdUbicacionNavigation != null ? " - " + s.IdUbicacionNavigation.Referencia :""),
                        CreationDate = s.IdRecursoNavigation.CreationDate
                    },
                    TipoRecurso      = _mapper.Map <TipoRecursoDTO>(s.IdRecursoNavigation.IdTipoRecursoNavigation),
                    FechaAsignado    = s.FechaAsignado,
                    Id               = s.Id,
                    FechaDesasignado = s.FechaDesasignado,
                    IdRecurso        = s.IdRecurso,
                    IdUbicacion      = s.IdUbicacion,
                    IdServicio       = s.IdServicio
                }).ToList());
            }

            return(result.Where(s =>
                                (!filter.FechaAsignadoFrom.HasValue || s.FechaAsignado >= filter.FechaAsignadoFrom.Value) &&
                                (!filter.FechaAsignadoTo.HasValue || s.FechaAsignado <= filter.FechaAsignadoTo.Value) &&
                                (!filter.IdTipoRecurso.HasValue || s.TipoRecurso.Id == filter.IdTipoRecurso.Value)
                                ).OrderBy(x => x.Id));
        }