public bool GuardarCaratulaDeAlbum(int idAlbum, byte[] caratula)
        {
            UVFYArchivos.Respuesta respuesta = new UVFYArchivos.Respuesta();
            var cliente = new Archivos.ArchivosClient(ServicioDeArchivos);
            PeticionGuardadoId peticion = new PeticionGuardadoId();

            peticion.Datos      = Google.Protobuf.ByteString.CopyFrom(caratula);
            peticion.IdPeticion = idAlbum;

            try
            {
                respuesta = cliente.GuardarCaratulaDeAlbumPorId(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> GuardarCaratulaDeAlbumPorId(PeticionGuardadoId request, ServerCallContext context)
        {
            Respuesta respuesta = new Respuesta();

            try
            {
                using (UVFYContext contexto = new UVFYContext())
                {
                    AlbumDAO albumDAO = new AlbumDAO();
                    if (albumDAO.CargarPorId(request.IdPeticion) != null)
                    {
                        try
                        {
                            if (ServiciosDeIO.VerificarEstructuraDeArchivosAlbum())
                            {
                                ServiciosDeIO.GuardarCaratulaDeAlbum(request.IdPeticion.ToString(), request.Datos.ToByteArray());
                                respuesta.Exitosa = true;
                            }
                            else
                            {
                                //No se pudo realizar el guardado, error de io
                                respuesta.Exitosa = false;
                                respuesta.Motivo  = 500;
                            }
                        }
                        catch (IOException)
                        {
                            //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));
        }