Esempio n. 1
0
        public async Task <IHttpActionResult> HidePost(int Post_Id)
        {
            try
            {
                var userId = Convert.ToInt32(User.GetClaimValue("userid"));

                using (RiscoContext ctx = new RiscoContext())
                {
                    Post post = ctx.Posts.FirstOrDefault(x => x.Id == Post_Id);

                    HidePost hidePost = new HidePost
                    {
                        FirstUser_Id  = userId,
                        SecondUser_Id = post.User_Id,
                        Post_Id       = Post_Id,
                        CreatedDate   = DateTime.UtcNow
                    };

                    ctx.HidePosts.Add(hidePost);
                    ctx.SaveChanges();

                    CustomResponse <HidePost> response = new CustomResponse <HidePost>
                    {
                        Message    = Global.ResponseMessages.Success,
                        StatusCode = (int)HttpStatusCode.OK,
                        Result     = hidePost
                    };
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
Esempio n. 2
0
        public void Put(HidePost request)
        {
            var user = GetUser();
            var post = AssertPost(request.Id);

            AssertCanPostToOrganization(Db, post.OrganizationId, user, out var org, out var orgMember);

            if (!user.IsOrganizationModerator(orgMember))
            {
                throw HttpError.Forbidden("Access Denied");
            }

            var now = DateTime.Now;

            if (request.Hide)
            {
                post.Hidden   = now;
                post.HiddenBy = user.UserName;
                if (!string.IsNullOrEmpty(request.Reason))
                {
                    post.Notes = request.Reason;
                }
            }
            else
            {
                post.Hidden   = null;
                post.HiddenBy = null;
            }

            Db.Update(post);

            Db.Insert(new PostChangeHistory {
                ChangedName   = nameof(post.Hidden),
                ChangedValue  = request.Hide.ToString(),
                ChangedReason = request.Reason,
                Created       = now,
                CreatedBy     = user.UserName,
            });

            ClearPostCaches();
        }