public IHttpActionResult Putgroup_comment(int id, group_comment group_comment)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != group_comment.id)
            {
                return(BadRequest());
            }

            db.Entry(group_comment).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!group_commentExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        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 IHttpActionResult Getgroup_SingleComment(int id)
        {
            group_comment group_comment = db.group_comment.Include(x => new { x.AspNetUser.UserName, x.AspNetUser.Photo }).FirstOrDefault(x => x.id == id);

            if (group_comment == null)
            {
                return(NotFound());
            }

            return(Ok(group_comment));
        }
        public IHttpActionResult Deletegroup_comment(int id)
        {
            group_comment group_comment = db.group_comment.Find(id);

            if (group_comment == null)
            {
                return(NotFound());
            }

            db.group_comment.Remove(group_comment);
            db.SaveChanges();

            return(Ok(group_comment));
        }