public IHttpActionResult Postcourse_tags(course_tags course_tags)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.course_tags.Add(course_tags);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (course_tagsExists(course_tags.course_id))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = course_tags.course_id }, course_tags));
        }
        public IHttpActionResult Putcourse_tags(int id, course_tags course_tags)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

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

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

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

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public IHttpActionResult Getcourse_tags(int id)
        {
            course_tags course_tags = db.course_tags.Find(id);

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

            return(Ok(course_tags));
        }
Beispiel #4
0
        public IHttpActionResult PostNewtags(cls_tag tags)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            List <int> ids = new List <int>();

            foreach (string item in tags.tag_names)
            {
                if (!db.tags.Any(x => x.tag1 == item))
                {
                    tag tag_to_add = new tag();
                    tag_to_add.tag1 = item;
                    db.tags.Add(tag_to_add);
                    db.SaveChanges();
                    ids.Add(db.tags.OrderByDescending(x => x.id).FirstOrDefault().id);
                }
                else
                {
                    ids.Add(db.tags.FirstOrDefault(x => x.tag1 == item).id);
                }
            }
            if (tags.Type == "course")
            {
                foreach (int item in ids)
                {
                    course_tags t = new course_tags
                    {
                        course_id = tags.TypeId,
                        tag_id    = item
                    };
                    db.course_tags.Add(t);
                    db.SaveChanges();
                }
            }
            else if (tags.Type == "group")
            {
                foreach (int item in ids)
                {
                    work_group_tags t = new work_group_tags
                    {
                        work_group_id = tags.TypeId,
                        tag_id        = item
                    };
                    db.work_group_tags.Add(t);
                    db.SaveChanges();
                }
            }


            return(Ok(tags));
        }
        public IHttpActionResult Deletecourse_tags(int id)
        {
            course_tags course_tags = db.course_tags.Find(id);

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

            db.course_tags.Remove(course_tags);
            db.SaveChanges();

            return(Ok(course_tags));
        }
        public 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;
            db.courses.Add(course);
            db.Course_Members.Add(cm);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = course.id }, course));
        }
        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));
        }