Example #1
0
        /// <summary>
        /// Recibe un objeto como paramentro y posteriormente intenta almacenarlo en la base de datos
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public async Task <HttpResponseMessage> Post(seguidores item)
        {
            if (item == null)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, $"El seguidor no puede estar sin datos"));
            }
            if (!ValidandoSiExistenDatosRelacionados.ExistsUser(item.id_seguido))
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, $"No existe el usuario seguido {item.id_seguido}"));
            }
            if (!ValidandoSiExistenDatosRelacionados.ExistsUser(item.seguidor_id))
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, $"No existe el seguidor {item.seguidor_id}"));
            }
            if (item.id_seguido == item.seguidor_id)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, $"No puedes seguirte a ti mismo"));
            }
            using (var db = new DBContextModel())
            {
                var seguidorDatos = db.seguidores
                                    .FirstOrDefault(s => s.id_seguido == item.id_seguido && s.seguidor_id == item.seguidor_id);
                if (seguidorDatos == default(seguidores))
                {
                    item.accepted = true;
                    item.fecha    = DateTime.Now;
                    if (r.Post(item))
                    {
                        //TODO Push Seguido
                        var usuarioSeguido   = db.users.Find(item.id_seguido);
                        var usuarioSEGUIDOR  = db.users.Find(item.seguidor_id);
                        var receiptInstallID = new Dictionary <string, string>();
                        try
                        {
                            receiptInstallID.Add(usuarioSeguido.Phone_OS, usuarioSeguido.Device_id);
                        }
                        catch (Exception) { /**No todos los usuarios tienen telefono asociado **/ }

                        AppCenterPush appCenterPush = new AppCenterPush(receiptInstallID);
                        await appCenterPush.Notify("Seguidor nuevo",
                                                   $"{usuarioSEGUIDOR.username} ahora te sigue",
                                                   "Ve a darle una revisada a su perfil",
                                                   new Dictionary <string, string>() {
                            { DLL.PushConstantes.gotoPage, DLL.PushConstantes.goto_profile },
                            { DLL.PushConstantes.id_user, item.seguidor_id.ToString() }
                        });

                        return(Request.CreateResponse(HttpStatusCode.Created, "seguidor guardado correctamente"));
                    }
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.OK, "Ya sigues a este usuario, actualiza la página en la que te encuentras"));
                }
            }

            return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "No es posible guardar los datos del seguidor"));
        }
        public async Task <HttpResponseMessage> Post(comentarios item)
        {
            if (item == null)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, $"El comentario no puede estar sin datos"));
            }

            //Valido si existe la publicacion, si no se manda el valor, por defecto es CERO
            if (!ValidandoSiExistenDatosRelacionados.ExistsPublicacion(item.id_post))
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "No existe dicha publicación"));
            }

            //valido si existe el user que comenta
            if (!ValidandoSiExistenDatosRelacionados.ExistsUser(item.id_user))
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "No existe el usuario"));
            }

            item.fecha_creacion = DateTime.Now;
            item.isDeleted      = false;
            if (r.Post(item))
            {
                //TODO PUSH for comment
                using (var db = new DBContextModel())
                {
                    users creatorPost      = db.publicaciones.SingleOrDefault(u => u.id_post == item.id_post).users;
                    var   receiptInstallID = new Dictionary <string, string>
                    {
                        { creatorPost.Phone_OS, creatorPost.Device_id }
                    };

                    AppCenterPush appCenterPush = new AppCenterPush(receiptInstallID);
                    users         CommenterPost = db.users.SingleOrDefault(u => u.id_user == item.id_user);
                    await appCenterPush.Notify("comentarios",
                                               $"{CommenterPost.nombre} comentó tu publicación",
                                               item.contenido,
                                               new Dictionary <string, string>() {
                        { DLL.PushConstantes.gotoPage, DLL.PushConstantes.goto_post },
                        { DLL.PushConstantes.id_post, item.id_post.ToString() },
                        { DLL.PushConstantes.id_user, creatorPost.id_user.ToString() }
                    });
                }

                return(Request.CreateResponse(HttpStatusCode.Created, item));
            }



            return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "No es posible guardar los datos del comentario"));
        }
Example #3
0
        public async Task <HttpResponseMessage> Post(like_post item)
        {
            if (item == null)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, $"El like_post no puede estar sin datos"));
            }

            try
            {
                var likeDado = db.like_post.SingleOrDefault(l => l.id_post == item.id_post && l.id_user == item.id_user);

                if (likeDado == default(like_post))
                {
                    item.fecha = DateTime.UtcNow;

                    if (r.Post(item))
                    {
                        //TODO TEST like Post
                        var diccionarioPhone_Device = new System.Collections.Generic.Dictionary <string, string>();
                        var usuarioQueDioLike       = db.users.SingleOrDefault(u => u.id_user == item.id_user);
                        var publicacion             = db.publicaciones.SingleOrDefault(u => u.id_post == item.id_post);
                        diccionarioPhone_Device.Add(publicacion.users.Phone_OS, publicacion.users.Device_id);

                        var pushNotifier = new AppCenterPush(diccionarioPhone_Device);
                        await pushNotifier.Notify("like_post",

                                                  $"A {usuarioQueDioLike.username} le gusta tu publicación",
                                                  publicacion.descripcion,
                                                  new System.Collections.Generic.Dictionary <string, string>()
                        {
                            { DLL.PushConstantes.gotoPage, DLL.PushConstantes.goto_post },
                            { DLL.PushConstantes.id_post, publicacion.id_post.ToString() },
                            { DLL.PushConstantes.id_user, publicacion.id_user.ToString() }
                        });

                        return(Request.CreateResponse(HttpStatusCode.Created, "like_post guardado correctamente"));
                    }
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.OK, "Ya existe dicho like"));
                }
            }
            catch (Exception e) { Debug.Print(e.Message); }

            return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "No es posible guardar los datos del like_post"));
        }
Example #4
0
        public async Task <HttpResponseMessage> Post(like_comentario item)
        {
            if (item == null)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, $"El like_comentario no puede estar sin datos"));
            }
            //Verfico si ya existe para no agregar dos veces
            try
            {
                var likeDado = db.like_comentario.SingleOrDefault(l => l.id_comentario == item.id_comentario && l.id_user == item.id_user);

                if (likeDado == default(like_comentario))
                {
                    item.fecha = DateTime.Now;

                    if (r.Post(item))
                    {
                        //TODO TEST like comentario
                        var diccionarioPhone_Device = new System.Collections.Generic.Dictionary <string, string>();
                        var usuarioQueDioLike       = db.users.SingleOrDefault(u => u.id_user == item.id_user);
                        var comentario = db.comentarios.SingleOrDefault(u => u.id_comentario == item.id_comentario);
                        diccionarioPhone_Device.Add(comentario.users.Phone_OS, comentario.users.Device_id);

                        var pushNotifier = new AppCenterPush(diccionarioPhone_Device);
                        await pushNotifier.Notify("like_comentario",
                                                  $"A {usuarioQueDioLike.username} le gusta tu publicación",
                                                  comentario.contenido,
                                                  new System.Collections.Generic.Dictionary <string, string>()
                        {
                            { DLL.PushConstantes.gotoPage, DLL.PushConstantes.goto_post },
                            { DLL.PushConstantes.id_post, comentario.id_post.ToString() },
                            { DLL.PushConstantes.id_user, comentario.publicaciones.id_user.ToString() }
                        });

                        return(Request.CreateResponse(HttpStatusCode.Created, "like_comentario guardado correctamente"));
                    }
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.OK, "Ya existe dicho like"));
                }
            }
            catch (Exception) { }


            return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "No es posible guardar los datos del like_comentario"));
        }
Example #5
0
        public async System.Threading.Tasks.Task <HttpResponseMessage> Post(publicaciones item)
        {
            item.isDeleted = false;
            if (item == null)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, $"La publicación no puede estar sin datos"));
            }
            //Publicacion sin imagen o texto
            if (item.img == null && string.IsNullOrEmpty(item.descripcion))
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, $"La publicación no puede estar sin datos"));
            }
            //valido si existe el user que publicó
            if (item.id_user == 0)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "No se recibio ID del usuario"));
            }
            if (!ValidandoSiExistenDatosRelacionados.ExistsUser(item.id_user))
            {
                return(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, "No existe el usuario"));
            }

            item.fecha_creacion      = DateTime.Now;
            item.fecha_actualizacion = null;
            item.isDeleted           = false;
            //Intenta el post
            if (r.Post(item))
            {
                //TODO PUSH for comment
                using (var db = new DBContextModel())
                {
                    var seguidoresUsuario = db.users.SingleOrDefault(u => u.id_user == item.id_user)
                                            .seguidores1.ToList();
                    var receiptInstallID = new Dictionary <string, string>();
                    foreach (var seguidor in seguidoresUsuario)
                    {
                        try
                        {
                            receiptInstallID.Add(seguidor.users.Phone_OS, seguidor.users.Device_id);
                        }
                        catch (Exception) { /**No todos los usuarios tienen telefono asociado **/ }
                    }

                    AppCenterPush appCenterPush = new AppCenterPush(receiptInstallID);
                    users         CommenterPost = db.users.SingleOrDefault(u => u.id_user == item.id_user);
                    await appCenterPush.Notify("publicaciones",
                                               $"{seguidoresUsuario[0].users1.puesto_name} hizo una nueva publicación",
                                               item.descripcion,
                                               new Dictionary <string, string>() {
                        { DLL.PushConstantes.gotoPage, DLL.PushConstantes.goto_post },
                        { DLL.PushConstantes.id_user, item.id_user.ToString() },
                        { DLL.PushConstantes.id_post, item.id_post.ToString() }
                    });
                }
                return(Request.CreateResponse(HttpStatusCode.Created, item));
            }


            //Culpa del server xd
            return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "No es posible guardar los datos de la publicación"));
        }