public async Task <IHttpActionResult> Postgroup_comment(group_comment group_comment) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.group_comment.Add(group_comment); db.SaveChanges(); //send notification to all friends var friends = db.friends.Where(x => x.UserId == group_comment.user_id && x.Confirmed == true).Select(x => x.friendId); var friends2 = db.friends.Where(x => x.friendId == group_comment.user_id && x.Confirmed == true).Select(x => x.UserId); friends.Concat(friends2); var new_notifi = new cls_notifi { source_name = "group", source_id = group_comment.group_id.ToString(), image = db.AspNetUsers.FirstOrDefault(x => x.Id == group_comment.user_id).Photo,//"no image", body_English = db.AspNetUsers.FirstOrDefault(x => x.Id == group_comment.user_id).UserName + " commented on work group " + db.work_group.FirstOrDefault(x => x.id == group_comment.group_id).name, body_Arabic = "كتب " + db.AspNetUsers.FirstOrDefault(x => x.Id == group_comment.user_id).UserName + " تعليق على مجموعة " + db.work_group.FirstOrDefault(x => x.id == group_comment.group_id).name, timestamp = DateTime.Now, readed = false }; //await Push(new_notifi, "notifications/" + db.courses.FirstOrDefault(x => x.id == group_comment.group_id).instructor + "/" + DateTime.UtcNow.ToString("dd-MM-yyyy")); foreach (var item in friends) { await Push(new_notifi, "notifications/" + item + "/" + DateTime.UtcNow.ToString("dd-MM-yyyy")); PushNotifi(db.AspNetUsers.FirstOrDefault(x => x.Id == item).DeviceToken, "New Comment", new_notifi.body_English, "group", group_comment.group_id.ToString()); } return(CreatedAtRoute("DefaultApi", new { id = group_comment.id }, group_comment)); }
public async Task <IHttpActionResult> likeGroup(like like) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } like.liked_type = "group"; db.likes.Add(like); db.SaveChanges(); var new_notifi = new cls_notifi { source_name = "group", source_id = like.liked_id.ToString(), image = db.AspNetUsers.FirstOrDefault(x => x.Id == like.user_id).Photo,//"no image", body_English = db.AspNetUsers.FirstOrDefault(x => x.Id == like.user_id).UserName + " likes your work group " + db.work_group.FirstOrDefault(x => x.id == like.liked_id).name, body_Arabic = "اعجب " + db.AspNetUsers.FirstOrDefault(x => x.Id == like.user_id).UserName + " بإنشاء مجموعتك " + db.work_group.FirstOrDefault(x => x.id == like.liked_id).name, timestamp = DateTime.Now, readed = false }; var Group_admin = db.work_group.FirstOrDefault(x => x.id == like.liked_id).admin; await Push(new_notifi, "notifications/" + Group_admin.ToString() + "/" + DateTime.UtcNow.ToString("dd-MM-yyyy")); PushNotifi(db.AspNetUsers.FirstOrDefault(x => x.Id == Group_admin).DeviceToken, "More Likes", new_notifi.body_English, "group", like.liked_id.ToString()); return(CreatedAtRoute("DefaultApi", new { id = like.id }, like)); }
public async Task Push(cls_notifi notifi, string path) { IFirebaseClient client = new FirebaseClient(config); var my_notifi = notifi; PushResponse response = await client.PushAsync(path, my_notifi); var xcv = response.Result.name; //The result will contain the child name of the new data that was added }
public async Task <IHttpActionResult> AcceptRequest(string Sender, string Reciver) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.accept_friend_request(Reciver, Sender); try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!friendExists(Sender, Reciver)) { return(NotFound()); } else { throw; } } var new_notifi = new cls_notifi { source_name = "user", source_id = Reciver, image = db.AspNetUsers.FirstOrDefault(x => x.Id == Reciver).Photo,//"no image", body_English = db.AspNetUsers.FirstOrDefault(x => x.Id == Reciver).UserName + " accepted your friend request", body_Arabic = "تم قبول طلب صداقتك من قبل " + db.AspNetUsers.FirstOrDefault(x => x.Id == Reciver).UserName, timestamp = DateTime.Now, readed = false }; await Push(new_notifi, "notifications/" + Sender.ToString() + "/" + DateTime.UtcNow.ToString("dd-MM-yyyy")); PushNotifi(db.AspNetUsers.FirstOrDefault(x => x.Id == Sender.ToString()).DeviceToken, "Friend Request Accepted", new_notifi.body_English, "user", Reciver); //RedirectToRoute("/rpc/notifi/push/", new { notifi = new_notifi, path = "notifications/" + Sender.ToString() + "/friends" }); return(StatusCode(HttpStatusCode.NoContent)); }
public async Task <IHttpActionResult> SendRequest(friend friend) { if (!ModelState.IsValid || friend.friendId == friend.UserId) { return(BadRequest(ModelState)); } db.send_friend_request(friend.UserId, friend.friendId, friend.since); //db.friends.Add(friend); try { db.SaveChanges(); } catch (DbUpdateException) { if (friendExists(friend.UserId, friend.friendId)) { return(Conflict()); } else { throw; } } var new_notifi = new cls_notifi { source_name = "user", source_id = friend.friendId, image = db.AspNetUsers.FirstOrDefault(x => x.Id == friend.friendId).Photo,//"no image", body_English = db.AspNetUsers.FirstOrDefault(x => x.Id == friend.friendId).UserName + " send you a friend request", body_Arabic = "قام " + db.AspNetUsers.FirstOrDefault(x => x.Id == friend.friendId).UserName + " بارسال طلب صداقة اليك", timestamp = DateTime.Now, readed = false }; await Push(new_notifi, "notifications/" + friend.UserId.ToString() + "/" + DateTime.UtcNow.ToString("dd-MM-yyyy")); PushNotifi(db.AspNetUsers.FirstOrDefault(x => x.Id == friend.UserId).DeviceToken, "New Friend Request", new_notifi.body_English, "user", friend.friendId); //return RedirectToRoute("~/rpc/notifi/push", new { notifi= new_notifi, path = "notifications/" + friend.UserId.ToString() + "/friends" }); return(CreatedAtRoute("DefaultApi", new { id = friend.UserId }, friend)); }
public async Task <IHttpActionResult> PostCourse_Members(Course_Members course_Members) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.Course_Members.Add(course_Members); try { db.SaveChanges(); } catch (DbUpdateException) { if (Course_MembersExists(course_Members.Course_id, course_Members.Member_id)) { return(Conflict()); } else { throw; } } var new_notifi = new cls_notifi { source_name = "user", source_id = course_Members.Member_id, image = db.AspNetUsers.FirstOrDefault(x => x.Id == course_Members.Member_id).Photo,//"no image", body_English = db.AspNetUsers.FirstOrDefault(x => x.Id == course_Members.Member_id).UserName + " Joined to Your course (" + db.courses.FirstOrDefault(x => x.id == course_Members.Course_id).name + ")", body_Arabic = "انضم " + db.AspNetUsers.FirstOrDefault(x => x.Id == course_Members.Member_id).UserName + " الي كورس (" + db.courses.FirstOrDefault(x => x.id == course_Members.Course_id).name + ")", timestamp = DateTime.Now, readed = false }; await Push(new_notifi, "notifications/" + db.courses.FirstOrDefault(x => x.id == course_Members.Course_id).instructor + "/" + DateTime.UtcNow.ToString("dd-MM-yyyy")); PushNotifi(db.AspNetUsers.FirstOrDefault(x => x.Id == db.courses.FirstOrDefault(Y => Y.id == course_Members.Course_id).instructor).DeviceToken, "New Member To your Course", new_notifi.body_English, "user", course_Members.Member_id); //////////////////////////////////////////////////////////////////////add member to room IFirebaseClient client = new FirebaseClient(config); var Course_room_id = db.courses.FirstOrDefault(x => x.id == course_Members.Course_id).room_id; var new_Mem = new { mem_id = course_Members.Member_id, mem_name = db.AspNetUsers.FirstOrDefault(x => x.Id == course_Members.Member_id).UserName }; var new_room = new { RoomId = Course_room_id, RoomName = db.courses.FirstOrDefault(x => x.id == course_Members.Course_id).name, AddedOn = DateTime.UtcNow, about = course_Members.course.about, RoomType = "course", RelatedTypeId = course_Members.Course_id }; await Push_for_room(new_Mem, "chat/members/" + Course_room_id); await Push_for_room(new_room, "chat/memberRooms/" + course_Members.Member_id); ////////////////////////////////////////////////////////////////////////////////// return(CreatedAtRoute("DefaultApi", new { id = course_Members.Course_id }, course_Members)); }
public async Task <IHttpActionResult> Postwork_group(work_group work_group) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } /////// Add Chat Room for the Course /////////////////////////////////////////////////////////// IFirebaseClient client = new FirebaseClient(config); cls_room new_room = new cls_room { name = work_group.name, about = "Chat Room for " + work_group.name + " Group", admin = work_group.admin, photo = "" }; PushResponse response = await client.PushAsync("chat/rooms/", new_room); var xcv = response.Result.name; var firstMem = new { mem_id = work_group.admin, //db.AspNetUsers.FirstOrDefault(x => x.UserName == room.adminName).Id, mem_name = db.AspNetUsers.FirstOrDefault(x => x.Id == work_group.admin).UserName //room.adminName }; await PushChat(firstMem, "chat/members/" + xcv); ///////////////////////////// var new_room2 = new { RoomId = xcv, RoomName = new_room.name, about = "Chat room for " + work_group.name + " group", AddedOn = DateTime.UtcNow, RoomType = "group", RelatedTypeId = db.work_group.OrderByDescending(x => x.id).FirstOrDefault().id }; await PushChat(new_room2, "chat/memberRooms/" + work_group.admin); work_group.room_id = xcv; db.work_group.Add(work_group); db.SaveChanges(); Work_group_members wg = new Work_group_members(); wg.Member_id = work_group.admin; wg.Work_group_id = db.work_group.OrderByDescending(x => x.id).FirstOrDefault().id; wg.AddingDate = System.DateTime.Now; db.Work_group_members.Add(wg); db.SaveChanges(); ////////////////////////////////////////////////////////////////////////////////////////////// //send notification to all friends var friends = db.friends.Where(x => x.UserId == work_group.admin && x.Confirmed == true).Select(x => x.friendId); var friends2 = db.friends.Where(x => x.friendId == work_group.admin && x.Confirmed == true).Select(x => x.UserId); friends.Concat(friends2); // var new_notifi = new cls_notifi { source_name = "group", source_id = db.work_group.OrderByDescending(x => x.id).FirstOrDefault().id.ToString(), image = "no image", body_English = "Work group " + work_group.name + " is available now by your friend " + db.AspNetUsers.FirstOrDefault(x => x.Id == work_group.admin).UserName, body_Arabic = "تمت اتاحة مجموعة " + work_group.name + " من قبل صديقك " + db.AspNetUsers.FirstOrDefault(x => x.Id == work_group.admin).UserName, timestamp = DateTime.UtcNow, readed = false }; foreach (var item in friends) { await Push(new_notifi, "notifications/" + item + "/" + DateTime.UtcNow.ToString("dd-MM-yyyy")); PushNotifi(db.AspNetUsers.FirstOrDefault(x => x.Id == item).DeviceToken, "New Workgroup", new_notifi.body_English, "group", db.work_group.OrderByDescending(x => x.id).FirstOrDefault().id.ToString()); } return(CreatedAtRoute("DefaultApi", new { id = work_group.id }, work_group)); }
public async Task <IHttpActionResult> Postcourse(course course) { // course.instructor= if (!ModelState.IsValid) { return(BadRequest(ModelState)); } Course_Members cm = new Course_Members(); course_tags ct = new course_tags(); ct.course_id = course.id; //ct.tag_id= cm.Course_id = course.id; cm.Member_id = course.instructor; cm.AddingDate = course.creating_date; //send notification to all friends var friends = db.friends.Where(x => x.UserId == course.instructor && x.Confirmed == true).Select(x => x.friendId); var friends2 = db.friends.Where(x => x.friendId == course.instructor && x.Confirmed == true).Select(x => x.UserId); friends.Concat(friends2); // var new_notifi = new cls_notifi { source_name = "course", source_id = db.courses.OrderByDescending(x => x.id).FirstOrDefault().id.ToString(), image = "no image", body_English = "Course " + course.name + " is available now by your friend " + db.AspNetUsers.FirstOrDefault(x => x.Id == course.instructor).UserName, body_Arabic = "تمت اتاحة كورس " + course.name + " من قبل صديقك " + db.AspNetUsers.FirstOrDefault(x => x.Id == course.instructor).UserName, timestamp = DateTime.UtcNow, readed = false }; foreach (var item in friends) { await Push(new_notifi, "notifications/" + item + "/" + DateTime.UtcNow.ToString("dd-MM-yyyy")); PushNotifi(db.AspNetUsers.FirstOrDefault(x => x.Id == item).DeviceToken, "New Course", new_notifi.body_English, "course", db.courses.OrderByDescending(x => x.id).FirstOrDefault().id.ToString()); } /////// Add Chat Room for the Course /////////////////////////////////////////////////////////// IFirebaseClient client = new FirebaseClient(config); cls_room new_room = new cls_room { name = course.name, about = "Chat Room for " + course.name + " Course", admin = course.instructor, photo = "" }; PushResponse response = await client.PushAsync("chat/rooms/", new_room); var xcv = response.Result.name; var firstMem = new { mem_id = course.instructor, //db.AspNetUsers.FirstOrDefault(x => x.UserName == room.adminName).Id, mem_name = db.AspNetUsers.FirstOrDefault(x => x.Id == course.instructor).UserName //room.adminName }; await PushChat(firstMem, "chat/members/" + xcv); ///////////////////////////// var new_room2 = new { RoomId = xcv, RoomName = new_room.name, about = "Chat room for " + course.name + " course", AddedOn = DateTime.UtcNow, RoomType = "course", RelatedTypeId = db.courses.OrderByDescending(x => x.id).FirstOrDefault().id }; await PushChat(new_room2, "chat/memberRooms/" + course.instructor); course.room_id = xcv; db.courses.Add(course); db.Course_Members.Add(cm); db.SaveChanges(); return(CreatedAtRoute("DefaultApi", new { id = course.id }, course)); }