Пример #1
0
        public async Task <IActionResult> MeGustaUsuario(int id, int recibidorId)
        {
            if (id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            var meGusta = await _coderos.ObtenerMeGusta(id, recibidorId);

            if (meGusta != null)
            {
                return(BadRequest($"No puede darle {"Me gusta "} al mismo usuario más de una vez."));
            }

            if (await _coderos.ObtenerUsuario(recibidorId) == null)
            {
                return(NotFound("Usuario no encontrado"));
            }

            meGusta = new MeGusta {
                MeGustadorId = id,
                MeGustaaId   = recibidorId
            };

            _coderos.Agregar <MeGusta> (meGusta);

            if (await _coderos.Guardar())
            {
                return(Ok());
            }

            return(BadRequest($"Error al darle {"'Me Gusta'"} al usuario"));
        }
        public async void B_MeGusta(object sender, EventArgs e)
        {
            HttpClient cliente4   = new HttpClient();
            var        responseMG = await cliente4.GetStringAsync("https://cursivia.herokuapp.com/api_v1/meGusta/");

            var megustas = JsonConvert.DeserializeObject <List <MeGusta> >(responseMG);

            var  ListaMG = new List <MeGusta>();
            bool isOk    = true;

            HttpClient cliente2   = new HttpClient();
            string     sTokenUser = "******" + this.sToken + "/";
            var        responseU  = await cliente2.GetStringAsync(sTokenUser);

            var sUser = JsonConvert.DeserializeObject <TokenUser>(responseU);

            this.sUsuario = sUser.user;

            foreach (var MG in megustas)
            {
                if (MG.usuario == this.sUsuario && MG.publicacion == this.sPublic)
                {
                    isOk = false;
                }
            }


            if (isOk)
            {
                HttpClient client = new HttpClient();

                MeGusta megusta = new MeGusta()
                {
                    //id = 4,
                    usuario     = this.sUsuario,
                    publicacion = this.sPublic
                };

                var json = JsonConvert.SerializeObject(megusta);

                var content = new StringContent(json, Encoding.UTF8, "application/json");

                try
                {
                    var result = await client.PostAsync("https://cursivia.herokuapp.com/api_v1/meGusta/", content);

                    if (result.StatusCode == HttpStatusCode.Created)
                    {
                        HttpClient cliente3 = new HttpClient();

                        var responseP = await cliente2.GetStringAsync(sPublic);

                        var sPublicacion = JsonConvert.DeserializeObject <Publicacion>(responseP);

                        Publicacion publicacion = new Publicacion()
                        {
                            id               = sPublicacion.id,
                            usuario          = sPublicacion.usuario,
                            titulo           = sPublicacion.titulo,
                            cuerpo           = sPublicacion.cuerpo,
                            fecha_alta       = sPublicacion.fecha_alta,
                            aprovacion       = sPublicacion.aprovacion + 1,
                            tipo_publicacion = sPublicacion.tipo_publicacion,
                            materia          = sPublicacion.materia
                        };

                        var json2 = JsonConvert.SerializeObject(publicacion);

                        var content2 = new StringContent(json2, Encoding.UTF8, "application/json");

                        var result2 = await client.PutAsync(sPublic, content2);

                        if (result2.IsSuccessStatusCode)
                        {
                            Application.Current.MainPage = new NavigationPage(new PublicacionDetail(this.sToken, this.sPublic, this.sMat));
                        }
                    }
                }
                catch (Exception ex)
                {
                    var msg = ex.Message;
                    Console.WriteLine(msg);
                }
            }
            else
            {
                await DisplayAlert("Ups!", "Ya te gusta esta publicación", "Ok");
            }
        }