public bool GuardarAudioDeCancionDeConsumidor(int idCancion, byte[] audio)
        {
            UVFYArchivos.Respuesta respuesta = new UVFYArchivos.Respuesta();
            var cliente = new Archivos.ArchivosClient(ServicioDeArchivos);
            PeticionGuardadoIdYCalidad peticion = new PeticionGuardadoIdYCalidad();

            peticion.Calidad    = calidad.Alta;
            peticion.Datos      = Google.Protobuf.ByteString.CopyFrom(audio);
            peticion.IdPeticion = idCancion;

            try
            {
                respuesta = cliente.GuardarAudioDeCancionPorIdYCalidad(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");
            }
        }
Example #2
0
        public override Task <Respuesta> GuardarAudioDeCancionPorIdYCalidad(PeticionGuardadoIdYCalidad request, ServerCallContext context)
        {
            Respuesta respuesta = new Respuesta();

            try
            {
                using (UVFYContext contexto = new UVFYContext())
                {
                    CancionDAO cancionDAO = new CancionDAO();
                    if (cancionDAO.CargarPorId(request.IdPeticion) != null)
                    {
                        try
                        {
                            if (ServiciosDeIO.VerificarEstructuraDeArchivosCancion(request.IdPeticion.ToString()))
                            {
                                switch (request.Calidad)
                                {
                                case calidad.Alta:
                                    ServiciosDeIO.GuardarArchivoDeCancion(request.IdPeticion.ToString(), request.Datos.ToByteArray(), TipoDeArchivo.mp3_320);
                                    break;

                                case calidad.Media:
                                    ServiciosDeIO.GuardarArchivoDeCancion(request.IdPeticion.ToString(), request.Datos.ToByteArray(), TipoDeArchivo.mp3_256);
                                    break;

                                case calidad.Baja:
                                    ServiciosDeIO.GuardarArchivoDeCancion(request.IdPeticion.ToString(), request.Datos.ToByteArray(), TipoDeArchivo.mp3_128);
                                    break;
                                }
                                respuesta.Exitosa = true;
                            }
                            else
                            {
                                //No se pudo realizar el guardado, error de io
                                respuesta.Exitosa = false;
                                respuesta.Motivo  = 500;
                            }
                        }
                        catch (IOException e)
                        {
                            //No se pudo realizar el guardado, error de io
                            respuesta.Exitosa = false;
                            respuesta.Motivo  = 500;
                        }
                    }
                    else
                    {
                        //No se encontro la cancion con el id dado (Deberia ser imposible porque se valida)
                        respuesta.Exitosa = false;
                        respuesta.Motivo  = 400;
                    }
                }
            }
            catch (AccesoADatosException)
            {
                //Error conectandose a la base de datos
                respuesta.Exitosa = false;
                respuesta.Motivo  = 500;
                return(Task.FromResult(respuesta));
            }
            return(Task.FromResult(respuesta));
        }