public bool GuardarAudioDeCancionDeArtista(int idCancion, byte[] audio)
        {
            UVFYGuardadoDeArchivos.Respuesta respuesta = new UVFYGuardadoDeArchivos.Respuesta();
            var cliente = new Guardado.GuardadoClient(ServidorDeGuardado);
            PeticionDeGuardadoDeCancion peticion = new PeticionDeGuardadoDeCancion()
            {
                IdCancion      = idCancion,
                AudioDeCancion = Google.Protobuf.ByteString.CopyFrom(audio)
            };

            try
            {
                respuesta = cliente.GuardarAudioDeCancionDeArtista(peticion);
            }
            catch (System.Net.Http.HttpRequestException e)
            {
                throw new AccesoAServicioException("Archivos", e);
            }
            catch (Grpc.Core.RpcException e)
            {
                throw new AccesoAServicioException("Sesiones", e);
            }

            if (respuesta.Exitosa)
            {
                return(true);
            }
            else
            {
                throw new ResultadoDeServicioFallidoException("Sesiones");
            }
        }
예제 #2
0
        public override Task <Respuesta> GuardarAudioDeCancionDeArtista(PeticionDeGuardadoDeCancion request, ServerCallContext context)
        {
            Respuesta respuesta = new Respuesta
            {
                Exitosa = false
            };
            List <byte[]> audiosConvertidos;

            try
            {
                audiosConvertidos = ConvertidorDeArchivos.ConvertirACalidadesEstandar(request.AudioDeCancion.ToArray(), request.IdCancion);
            }
            catch (AccesoAServicioException)
            {
                respuesta.Exitosa = false;
                respuesta.Motivo  = 500;
                return(Task.FromResult(respuesta));
            }
            catch (ResultadoDeServicioFallidoException)
            {
                respuesta.Exitosa = false;
                respuesta.Motivo  = 500;
                return(Task.FromResult(respuesta));
            }

            GuardadoDeArchivos guardadoDeArchivos = new GuardadoDeArchivos();

            try
            {
                guardadoDeArchivos.GuardarAudioDeCancionDeArtista(request.IdCancion, audiosConvertidos[0], UVFYArchivos.calidad.Baja);
                guardadoDeArchivos.GuardarAudioDeCancionDeArtista(request.IdCancion, audiosConvertidos[1], UVFYArchivos.calidad.Media);
                guardadoDeArchivos.GuardarAudioDeCancionDeArtista(request.IdCancion, audiosConvertidos[2], UVFYArchivos.calidad.Alta);
            }
            catch (AccesoAServicioException)
            {
                respuesta.Exitosa = false;
                respuesta.Motivo  = 500;
                return(Task.FromResult(respuesta));
            }
            catch (ResultadoDeServicioFallidoException)
            {
                respuesta.Exitosa = false;
                respuesta.Motivo  = 500;
                return(Task.FromResult(respuesta));
            }

            respuesta.Exitosa = true;

            return(Task.FromResult(respuesta));
        }