Example #1
0
        public IActionResult AddReply([FromBody] AddReplyRequestModel reply)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new { Errors = Validation.GetErrors(ModelState) }));
            }

            string ReplyContent = reply.Content;
            int    ReplyTo      = reply.ReplyTo;
            int    ThreadId     = reply.ThreadId;
            //string UserId = "1"; //temp
            //string UserId = "439e896d-d4d4-4c3e-937c-cd45d6f63dfe";
            string UserId = UserManagerRepo.GetUserId(User);

            var result = Repo.Find(c => c.Id == ReplyTo && c.ThreadId == ThreadId).FirstOrDefault();

            if (result == null)
            {
                return(BadRequest(new { Errors = "No reply found" }));
            }

            int?GroupId = result.GroupId == null ? result.Id : result.GroupId;

            if (GroupId == null)
            {
                return(BadRequest(new { Errors = "No reply found" }));
            }

            var NewReply = new Comment()
            {
                Content  = ReplyContent,
                ReplyTo  = ReplyTo,
                GroupId  = GroupId,
                ThreadId = ThreadId,
                UserId   = UserId
            };


            Repo.Add(NewReply);

            if (Repo.SaveChanges() > 0)
            {
                //return Json(new {Success = true});
                return(Json(NewReply));
            }
            return(BadRequest(new { Errors = "" }));
        }