コード例 #1
0
        public IActionResult Create([FromBody] JObject review)
        {
            using (var context = new RevojiDataContext())
            {
                DBReview dbReview = new DBReview(review);

                if (dbReview.DBReviewable == null)
                {
                    return(BadRequest(new { ErrorMessage = "Reviewable not populated." }));
                }

                // If there is no reviewable in the db that the review refers to then create one
                if (dbReview.ReviewableId == 0 &&
                    dbReview.DBReviewable.TpId != null &&
                    !context.Reviewables.Any(r => r.TpId == dbReview.DBReviewable.TpId))
                {
                    //DBReviewable dBReviewable = new DBReviewable(reviewable);
                    context.Add(dbReview.DBReviewable);
                    context.Save();

                    dbReview.ReviewableId = dbReview.DBReviewable.Id;
                }

                dbReview.DBAppUser    = null;
                dbReview.DBReviewable = null;

                context.Add(dbReview);
                context.Save();

                var result = new Review(dbReview);
                return(Ok(result));
            }
        }
コード例 #2
0
        public IActionResult Create([FromBody] JObject appUser)
        {
            using (var context = new RevojiDataContext())
            {
                try
                {
                    DBAppUser dbAppUser = new DBAppUser(appUser);

                    if (context.AppUsers.Any(user => user.Handle == dbAppUser.Handle))
                    {
                        return(BadRequest("duplicate_user_handle"));
                    }

                    if (context.AppUsers.Any(user => user.Email == dbAppUser.Email))
                    {
                        return(BadRequest("duplicate_user_email"));
                    }

                    if (string.IsNullOrEmpty(dbAppUser.Password))// TODO: handle things like #chars, capital/lower case, symbols?
                    {
                        return(BadRequest("password_not_set"));
                    }

                    context.Add(dbAppUser);
                    context.Save();

                    return(Ok(new AppUserDetail(dbAppUser)));
                }
                catch (DbUpdateException e)
                {
                    return(BadRequest("invalid_error")); //TODO: should be an object
                }
            }
        }
コード例 #3
0
        public IActionResult CreateLike([FromBody] JObject like)
        {
            using (var context = new RevojiDataContext())
            {
                DBLike dBLike = new DBLike(like);

                context.Add(dBLike);
                context.Save();

                return(Ok(new Like(dBLike)));
            }
        }
コード例 #4
0
        public IActionResult CreateReply([FromBody] JObject reply)
        {
            using (var context = new RevojiDataContext())
            {
                DBReply dBReply = new DBReply(reply);

                context.Add(dBReply);
                context.Save();

                return(Ok());
            }
        }
コード例 #5
0
        public IActionResult Create([FromBody] ReviewableDetail reviewable)
        {
            using (var context = new RevojiDataContext())
            {
                DBReviewable dbReviewable = new DBReviewable();
                reviewable.UpdateDB(dbReviewable);

                context.Add(dbReviewable);
                context.Save();

                return(Ok(new Reviewable(dbReviewable)));
            }
        }
コード例 #6
0
        public IActionResult CreateBookmark([FromBody] JObject bookmark)
        {
            using (var context = new RevojiDataContext())
            {
                DBBookmark dBBookmark = new DBBookmark(bookmark);
                dBBookmark.Created = DateTime.Now;

                context.Add(dBBookmark);
                context.Save();

                return(Ok(new Bookmark(dBBookmark)));
            }
        }
コード例 #7
0
        public IActionResult AddFollowing(int followingId)
        {
            using (var context = new RevojiDataContext())
            {
                DBFollowing dbFollowing = new DBFollowing();
                dbFollowing.FollowingAppUserId = followingId;
                dbFollowing.FollowerAppUserId  = ApiUser.ID;

                context.Add(dbFollowing);
                context.Save();

                return(Ok(new AppUserFollowing(dbFollowing)));
            }
        }
コード例 #8
0
        public IActionResult BlockUser(int blockedId)
        {
            using (var context = new RevojiDataContext())
            {
                DBBlocking dBBlocking = new DBBlocking();
                dBBlocking.BlockedAppUserId = blockedId;//TODO: check if user actually exists
                dBBlocking.BlockerAppUserId = ApiUser.ID;

                context.Add(dBBlocking);
                context.Save();

                return(Ok(new AppUserBlocking(dBBlocking)));
            }
        }
コード例 #9
0
        public IActionResult CreateNotification([FromBody] JObject notification)
        {
            using (var context = new RevojiDataContext())
            {
                DBNotification dBNotification = new DBNotification(notification);

                if (dBNotification.AppUserId == -1)
                {
                    return(BadRequest("app_user_id_required"));
                }

                dBNotification.Created = DateTime.Now;

                context.Add(dBNotification);
                context.Save();

                return(Ok(new Notification(dBNotification)));
            }
        }