public override Task <RespuestaDeCancion> CargarAudioDeCancionPorIdYCalidad(PeticionIdYCalidad request, ServerCallContext context) { RespuestaDeCancion respuesta = new RespuestaDeCancion() { Respuesta = new Respuesta() }; try { if (ServiciosDeIO.VerificarEstructuraDeArchivosCancion(request.IdPeticion.ToString())) { switch (request.Calidad) { case calidad.Alta: respuesta.Autio = Google.Protobuf.ByteString.CopyFrom(ServiciosDeIO.CargarAudioDeCancionPorCalidad(request.IdPeticion.ToString(), TipoDeArchivo.mp3_320)); break; case calidad.Media: respuesta.Autio = Google.Protobuf.ByteString.CopyFrom(ServiciosDeIO.CargarAudioDeCancionPorCalidad(request.IdPeticion.ToString(), TipoDeArchivo.mp3_256)); break; case calidad.Baja: respuesta.Autio = Google.Protobuf.ByteString.CopyFrom(ServiciosDeIO.CargarAudioDeCancionPorCalidad(request.IdPeticion.ToString(), TipoDeArchivo.mp3_128)); break; } respuesta.Respuesta.Exitosa = true; } else { //No se pudo realizar la lectura, error de io respuesta.Respuesta.Exitosa = false; respuesta.Respuesta.Motivo = 500; } } catch (IOException e) { //No se encontro el archivo respuesta.Respuesta.Exitosa = false; respuesta.Respuesta.Motivo = 500; } return(Task.FromResult(respuesta)); }
public IActionResult CargarAudioDeCancion([FromQuery] string tokenDeAcceso, int idCancion, int calidad) { IActionResult actionResult = BadRequest(); var clienteDeArchivos = new UVFYArchivos.Archivos.ArchivosClient(ServicioDeArchivos); PeticionIdYCalidad peticionId = new PeticionIdYCalidad { Token = new UVFYArchivos.Token { TokenDeAcceso = tokenDeAcceso }, IdPeticion = idCancion, Calidad = (calidad)calidad }; RespuestaDeCancion respuesta = new RespuestaDeCancion(); try { respuesta = clienteDeArchivos.CargarAudioDeCancionPorIdYCalidad(peticionId); } catch (System.Net.Http.HttpRequestException) { actionResult = StatusCode(500); return(actionResult); } if (respuesta.Respuesta.Exitosa) { byte[] audio = respuesta.Autio.ToArray(); actionResult = Ok(audio); } else { actionResult = StatusCode(respuesta.Respuesta.Motivo); } return(actionResult); }