Exemple #1
0
 public static void AddFeedbackEscalation(FeedbackEscalationMapping feedbackReq)
 {
     using (var db = new Entities())
     {
         db.FeedbackEscalationMapping.Add(feedbackReq);
         db.SaveChanges();
     }
 }
        public IActionResult UpdateFeedback(UpdateFeedbackReq req)
        {
            BaseResponse resp = new BaseResponse();

            try
            {
                if (RequestValidator.UpdateFeedback(req))
                {
                    if (req.user_id == JwtToken.GetUserID(req.token))
                    {
                        if (req.feedback_info.Id > 0)
                        {
                            if (Constants.ClosedStatus.Contains(req.feedback_info.StatusId))
                            {
                                FeedbackCRUD.updateFeedbackStatus(req.feedback_info.Id, req.feedback_info.StatusId);
                            }
                            else
                            {
                                FeedbackCRUD.updateFeedbackStatus(req.feedback_info.Id, (int)eFeedbackStatus.Escalated);
                                FeedbackEscalationMapping escalation = new FeedbackEscalationMapping()
                                {
                                    EscalatedUserId = req.feedback_info.CreatedFor,
                                    FeedbackId      = req.feedback_id,
                                    LastUpdate      = DateTime.Now,
                                    Message         = req.feedback_info.Message,
                                    Subject         = req.feedback_info.Subject
                                };
                                FeedbackCRUD.AddFeedbackEscalation(escalation);
                            }
                            resp.status_code    = Ok().StatusCode;
                            resp.status_message = StatusMessage.Success;
                        }
                        else
                        {
                            if (!FeedbackCRUD.AnyOpenFeedback(req.feedback_info.CreatedBy, req.feedback_info.CreatedFor))
                            {
                                req.feedback_info.LastUpdate = DateTime.Now;
                                req.feedback_info.CreatedOn  = DateTime.Now;
                                FeedbackCRUD.AddFeedback(req.feedback_info);
                                resp.status_code    = Ok().StatusCode;
                                resp.status_message = StatusMessage.Success;
                            }
                            else
                            {
                                resp.status_code    = Conflict().StatusCode;
                                resp.status_message = StatusMessage.FeedbackExists;
                            }
                        }
                    }
                    else
                    {
                        resp.status_code    = Unauthorized().StatusCode;
                        resp.status_message = StatusMessage.UnAuthorised;
                    }
                }
                else
                {
                    resp.status_code    = BadRequest().StatusCode;
                    resp.status_message = StatusMessage.BadRequest;
                }
            }
            catch (Exception es)
            {
                resp.status_code    = 500;
                resp.status_message = StatusMessage.InternalServerError;
            }

            return(Ok(resp));
        }