/// <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")); }
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")); }
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")); }
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")); }