Ejemplo n.º 1
0
        public IActionResult ReplyRequest(ProjectUserReplyRequest req)
        {
            var userId = HttpContext.User.Claims.Single(x => x.Type == "Id").Value;


            var res = _projectUserReqService.ReplyWith(Guid.Parse(userId), req);

            if (!res.Success)
            {
                return(BadRequest(res));
            }
            return(Ok(res));
        }
        public ResponseBase ReplyWith(Guid userId, ProjectUserReplyRequest req)
        {
            var res = new ResponseBase();

            var pur = _projectUserReqRepository.FindById(req.RequestId);

            if (pur == null)
            {
                return(res.ReturnErrorResponseWith("Specified request for project not found."));
            }

            if (!pur.UserAssigned.Id.Equals(userId))
            {
                return(res.ReturnErrorResponseWith("Request is not yours."));
            }

            if (req.IsAccepted)
            {
                //update
                pur.Accepted = req.IsAccepted;
                _projectUserReqRepository.Update(pur);
            }
            else
            {
                _projectUserReqRepository.Delete(pur);
            }

            pur.Validate();

            if (pur.GetBrokenRules().Count > 0)
            {
                return(res.ReturnErrorResponseWithMultiple(pur.GetBrokenRules()));
            }

            try
            {
                _uow.Commit();
            }
            catch (Exception ex)
            {
                return(res.ReturnErrorResponseWith(ex.Message));
            }

            res.Success = true;
            return(res);
        }