Exemplo n.º 1
0
        public override Task <RespuestaDeCaratula> CargarCaratulaDeCancionPorId(PeticionId request, ServerCallContext context)
        {
            RespuestaDeCaratula respuesta = new RespuestaDeCaratula()
            {
                Respuesta = new Respuesta()
            };

            try
            {
                if (ServiciosDeIO.VerificarEstructuraDeArchivosCancion(request.IdPeticion.ToString()))
                {
                    respuesta.Caratula          = Google.Protobuf.ByteString.CopyFrom(ServiciosDeIO.CargarCaratulaDeCancion(request.IdPeticion.ToString()));
                    respuesta.Respuesta.Exitosa = true;
                }
                else
                {
                    //No se pudo realizar la lectura, error de io
                    respuesta.Respuesta.Exitosa = false;
                    respuesta.Respuesta.Motivo  = 500;
                }
            }
            catch (IOException)
            {
                //No se encontro el archivo
                respuesta.Respuesta.Exitosa = false;
                respuesta.Respuesta.Motivo  = 500;
            }

            return(Task.FromResult(respuesta));
        }
        public IActionResult CargarCaratulaDeCancionPorId([FromQuery] string tokenDeAcceso, int idCancion)
        {
            IActionResult actionResult      = BadRequest();
            var           clienteDeArchivos = new UVFYArchivos.Archivos.ArchivosClient(ServicioDeArchivos);

            UVFYArchivos.PeticionId peticionId = new UVFYArchivos.PeticionId
            {
                Token = new UVFYArchivos.Token
                {
                    TokenDeAcceso = tokenDeAcceso
                },
                IdPeticion = idCancion
            };

            RespuestaDeCaratula respuesta = new RespuestaDeCaratula();

            try
            {
                respuesta = clienteDeArchivos.CargarCaratulaDeCancionPorId(peticionId);
            }
            catch (System.Net.Http.HttpRequestException)
            {
                actionResult = StatusCode(500);
                return(actionResult);
            }

            if (respuesta.Respuesta.Exitosa)
            {
                byte[] caratula = respuesta.Caratula.ToArray();
                actionResult = Ok(caratula);
            }
            else
            {
                actionResult = StatusCode(respuesta.Respuesta.Motivo);
            }

            return(actionResult);
        }