Exemple #1
0
        public IHttpActionResult Putwork_group(int id, work_group work_group)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

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

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

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

            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemple #2
0
        public ActionResult DeleteConfirmed(int id)
        {
            work_group work_group = db.work_group.Find(id);

            db.work_group.Remove(work_group);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemple #3
0
 public ActionResult Edit([Bind(Include = "id,name,about,creating_date,place,trange,availlable,way_to_apply,notes,admin,category,video,Archived")] work_group work_group)
 {
     if (ModelState.IsValid)
     {
         db.Entry(work_group).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(work_group));
 }
Exemple #4
0
        public IHttpActionResult Getwork_group(int id)
        {
            work_group work_group = db.work_group.Find(id);

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

            return(Ok(work_group));
        }
Exemple #5
0
        public IHttpActionResult Putwork_group(int id, work_group work_group)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

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

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

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!work_groupExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            var my_group = new
            {
                id           = work_group.id,
                name         = work_group.name,
                about        = work_group.about,
                TimeRange    = work_group.trange,
                VideoLink    = work_group.video,
                WayToApply   = work_group.way_to_apply,
                Notes        = work_group.notes,
                Place        = work_group.place,
                AdminId      = work_group.admin,
                AdminName    = db.AspNetUsers.FirstOrDefault(x => x.Id == work_group.admin).UserName,
                CreatingDate = work_group.creating_date,
                Catogery     = work_group.category,
                work_group.Archived,
                Available    = work_group.availlable,
                MembersCount = work_group.Work_group_members.Count,
                groupTags    = work_group.work_group_tags.Select(x => x.tag_name).ToList()
                               //groupMembers = work_group.Work_group_members.ToList()
            };

            return(Ok(my_group));
        }
Exemple #6
0
        public IHttpActionResult Deletework_group(int id)
        {
            work_group work_group = db.work_group.Find(id);

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

            db.work_group.Remove(work_group);
            db.SaveChanges();

            return(Ok(work_group));
        }
Exemple #7
0
        // GET: mvcwork_group/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            work_group work_group = db.work_group.Find(id);

            if (work_group == null)
            {
                return(HttpNotFound());
            }
            return(View(work_group));
        }
Exemple #8
0
        public IHttpActionResult Postwork_group(work_group work_group)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            Work_group_members wg = new Work_group_members();

            wg.Member_id     = work_group.admin;
            wg.Work_group_id = work_group.id;
            wg.AddingDate    = System.DateTime.Now;
            db.work_group.Add(work_group);
            db.Work_group_members.Add(wg);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = work_group.id }, work_group));
        }
Exemple #9
0
        public IHttpActionResult Getwork_group(int id, string user_id)
        {
            work_group work_group = db.work_group.Find(id);

            if (work_group == null)
            {
                return(NotFound());
            }
            var current_user = db.AspNetUsers.FirstOrDefault(x => x.Id == user_id);
            var group_tags   = db.work_group_tags.Where(x => x.work_group_id == id).Select(z => z.tag_name);

            var liked    = db.likes.FirstOrDefault(x => x.liked_id == id && x.liked_type == "group" && x.user_id == current_user.Id);
            var is_liked = false;

            if (liked != null)
            {
                is_liked = true;
            }
            var my_group = new
            {
                id           = work_group.id,
                name         = work_group.name,
                about        = work_group.about,
                TimeRange    = work_group.trange,
                VideoLink    = work_group.video,
                WayToApply   = work_group.way_to_apply,
                Notes        = work_group.notes,
                Place        = work_group.place,
                AdminId      = work_group.admin,
                AdminName    = db.AspNetUsers.FirstOrDefault(x => x.Id == work_group.admin).UserName,
                CreatingDate = work_group.creating_date,
                Catogery     = work_group.category,
                work_group.Archived,
                Available    = work_group.availlable,
                MembersCount = work_group.Work_group_members.Count,
                groupTags    = group_tags,
                is_liked
                //groupMembers = work_group.Work_group_members.ToList()
            };

            return(Ok(my_group));
        }
Exemple #10
0
        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));
        }