public async Task <DetalleSolicitudDto> ObtenerDetalleSolicitud(int id)
        {
            var detalle = (await EncontrarDetallesSolicitudes(t => t.Id == id)).FirstOrDefault();

            if (detalle != default(DetalleSolicitud))
            {
                var prendaClasificacion = (await _clasificacionPrendasAccesoBd.EncontrarPrendasClasificacion(t => t.Id == detalle.PrendasClasificacionId)).FirstOrDefault();

                var prenda        = (await _clasificacionPrendasAccesoBd.EncontrarPrenda(t => t.Id == prendaClasificacion.PrendasId)).FirstOrDefault();
                var clasificacion = (await _clasificacionPrendasAccesoBd.EncontrarClasificacion(t => t.Id == prendaClasificacion.ClasificacionId)).FirstOrDefault();

                var detalleDto = new DetalleSolicitudDto
                {
                    Id                     = detalle.Id,
                    Estado                 = detalle.Estado,
                    Doblado                = detalle.Doblado,
                    LavadoPlanchado        = detalle.LavadoPlanchado,
                    LavadoSeco             = detalle.LavadoSeco,
                    Planchado              = detalle.Planchado,
                    CantidadPrendas        = detalle.CantidadPrendas,
                    PrendasClasificacionId = detalle.PrendasClasificacionId,
                    SolicitudesId          = detalle.SolicitudesId,
                    Clasificacion          = clasificacion.Nombre,
                    Prenda                 = prenda.Nombre
                };

                return(detalleDto);
            }
            return(default(DetalleSolicitudDto));
        }
        public async Task <List <SolicitudesConDetallesDto> > ConsultarSolicitudConDetallePorEstado(string estado)
        {
            var solicitudes = (await EncontrarSolicitudes(t => t.Estado == estado)).ToList();
            var listaSolicitudConDetalles = new List <SolicitudesConDetallesDto>();

            foreach (var solicitud in solicitudes)
            {
                var listaDetalles    = (await EncontrarDetallesSolicitudes(t => t.SolicitudesId == solicitud.Id)).ToList();
                var listaDetallesDto = new List <DetalleSolicitudDto>();

                foreach (var detalle in listaDetalles)
                {
                    var prendaClasificacion = (await _clasificacionPrendasAccesoBd.EncontrarPrendasClasificacion(t => t.Id == detalle.PrendasClasificacionId)).FirstOrDefault();

                    var prenda        = (await _clasificacionPrendasAccesoBd.EncontrarPrenda(t => t.Id == prendaClasificacion.PrendasId)).FirstOrDefault();
                    var clasificacion = (await _clasificacionPrendasAccesoBd.EncontrarClasificacion(t => t.Id == prendaClasificacion.ClasificacionId)).FirstOrDefault();

                    var detalleDto = new DetalleSolicitudDto
                    {
                        Id                     = detalle.Id,
                        Estado                 = detalle.Estado,
                        Doblado                = detalle.Doblado,
                        LavadoPlanchado        = detalle.LavadoPlanchado,
                        LavadoSeco             = detalle.LavadoSeco,
                        Planchado              = detalle.Planchado,
                        CantidadPrendas        = detalle.CantidadPrendas,
                        PrendasClasificacionId = detalle.PrendasClasificacionId,
                        SolicitudesId          = detalle.SolicitudesId,
                        Clasificacion          = clasificacion.Nombre,
                        Prenda                 = prenda.Nombre
                    };
                    listaDetallesDto.Add(detalleDto);
                }

                var listadoDetalles = new ListadoDetallesSolicitudDto
                {
                    DetalleSolicitud = listaDetallesDto
                };
                var cliente = await _clienteAccesoBd.ObtenerClientePorId(solicitud.ClienteId);

                var solicitudConDetalle = new SolicitudesConDetallesDto
                {
                    ClienteId                = solicitud.ClienteId,
                    Estado                   = solicitud.Estado,
                    Fecha                    = solicitud.Fecha,
                    Id                       = solicitud.Id,
                    SuplementoEntrega        = solicitud.SuplementoEntrega,
                    ListadoDetallesSolicitud = listadoDetalles,
                    Habitacion               = cliente.Habitacion,
                    Nombres                  = cliente.Nombres
                };
                listaSolicitudConDetalles.Add(solicitudConDetalle);
            }
            return(await Task.FromResult(listaSolicitudConDetalles));
        }
        public async Task ActualizarDetalleSolicitud(DetalleSolicitudDto detalle)
        {
            var detalleEntidad = _context.Set <DetalleSolicitud>().First(a => a.Id == detalle.Id);

            if (detalleEntidad != default(DetalleSolicitud))
            {
                detalleEntidad.Id = detalle.Id;
                detalleEntidad.CantidadPrendas        = detalle.CantidadPrendas;
                detalleEntidad.Doblado                = detalle.Doblado;
                detalleEntidad.Estado                 = detalle.Estado;
                detalleEntidad.LavadoPlanchado        = detalle.LavadoPlanchado;
                detalleEntidad.LavadoSeco             = detalle.LavadoSeco;
                detalleEntidad.Planchado              = detalle.Planchado;
                detalleEntidad.PrendasClasificacionId = detalle.PrendasClasificacionId;
                detalleEntidad.SolicitudesId          = detalle.SolicitudesId;

                await _context.SaveChangesAsync();
            }
        }
        public async Task <List <SolicitudesConDetallesDto> > ConsultarSolicitudPorEstado(string estado)
        {
            var solicitudes = (await EncontrarSolicitudes(t => t.Estado == estado)).ToList();
            var listaSolicitudConDetalles = new List <SolicitudesConDetallesDto>();

            foreach (var solicitud in solicitudes)
            {
                var listaDetalles    = (await EncontrarDetallesSolicitudes(t => t.SolicitudesId == solicitud.Id)).ToList();
                var listaDetallesDto = new List <DetalleSolicitudDto>();

                foreach (var detalle in listaDetalles)
                {
                    var detalleDto = new DetalleSolicitudDto
                    {
                        Id                     = detalle.Id,
                        Estado                 = detalle.Estado,
                        Doblado                = detalle.Doblado,
                        LavadoPlanchado        = detalle.LavadoPlanchado,
                        LavadoSeco             = detalle.LavadoSeco,
                        Planchado              = detalle.Planchado,
                        PrendasClasificacionId = detalle.PrendasClasificacionId,
                        SolicitudesId          = detalle.SolicitudesId
                    };
                    listaDetallesDto.Add(detalleDto);
                }

                var listadoDetalles = new ListadoDetallesSolicitudDto
                {
                    DetalleSolicitud = listaDetallesDto
                };
                var solicitudConDetalle = new SolicitudesConDetallesDto
                {
                    ClienteId                = solicitud.ClienteId,
                    Estado                   = solicitud.Estado,
                    Fecha                    = solicitud.Fecha,
                    Id                       = solicitud.Id,
                    SuplementoEntrega        = solicitud.SuplementoEntrega,
                    ListadoDetallesSolicitud = listadoDetalles
                };
                listaSolicitudConDetalles.Add(solicitudConDetalle);
            }
            return(await Task.FromResult(listaSolicitudConDetalles));
        }
        public ActionResult About()
        {
            var detallesSolicitudes = new List <DetalleSolicitudDto>();

            var detalleSolicitud = new DetalleSolicitudDto
            {
                CantidadPrendas        = 2,
                Doblado                = true,
                LavadoPlanchado        = true,
                LavadoSeco             = true,
                Planchado              = true,
                Estado                 = "Pendiente",
                PrendasClasificacionId = 1
            };

            detallesSolicitudes.Add(detalleSolicitud);

            var listadoDetallesSolicitud = new ListadoDetallesSolicitudDto {
                DetalleSolicitud = detallesSolicitudes
            };

            var guardarSolicitud = new GuardarSolicitudConDetallesDto
            {
                ClienteId         = 1,
                Estado            = "Pendiente",
                Fecha             = DateTime.Now,
                SuplementoEntrega = true,
                DetallesSolicitud = listadoDetallesSolicitud
            };

            _solicitudLogica.GuardarSolicitudConDetalle(guardarSolicitud);

            var cliente = _clientesLogica.ObtenerTodosClientes().Result;

            ViewBag.Message = "Your application description page." + cliente.Count;

            return(View());
        }
        public async Task <List <DetalleSolicitudDto> > ObtenerDetalleSolicitudPorId(int idSolicitud)
        {
            var listaDetallesSolicitudesDto = new List <DetalleSolicitudDto>();
            var detalleSolicitudes          = (await EncontrarDetallesSolicitudes(t => t.SolicitudesId == idSolicitud)).ToList();

            foreach (var detalle in detalleSolicitudes)
            {
                var detalleDto = new DetalleSolicitudDto
                {
                    Id                     = detalle.Id,
                    Estado                 = detalle.Estado,
                    Doblado                = detalle.Doblado,
                    LavadoPlanchado        = detalle.LavadoPlanchado,
                    LavadoSeco             = detalle.LavadoSeco,
                    Planchado              = detalle.Planchado,
                    CantidadPrendas        = detalle.CantidadPrendas,
                    PrendasClasificacionId = detalle.PrendasClasificacionId,
                    SolicitudesId          = detalle.SolicitudesId
                };
                listaDetallesSolicitudesDto.Add(detalleDto);
            }
            return(listaDetallesSolicitudesDto);
        }