Exemplo n.º 1
0
        public JsonResult Problem_Update(Guid problemID, string problemTitle, string problemDescription, short priority, short state, int rowVersion)
        {
            GeneralResponse response = new GeneralResponse();

            #region Access Check

            bool hasPermission = GetEmployee().IsGuaranteed("Problem_Update");
            if (!hasPermission)
            {
                response.ErrorMessages.Add("AccessDenied");
                return(Json(response, JsonRequestBehavior.AllowGet));
            }

            #endregion

            EditProblemRequest request = new EditProblemRequest();
            request.ID                 = problemID;
            request.RowVersion         = rowVersion;
            request.ModifiedEmployeeID = GetEmployee().ID;
            request.ProblemTitle       = problemTitle;
            request.ProblemDescription = problemDescription;
            request.Priority           = priority;
            request.State              = state;

            response = this._problemService.EditProblem(request);

            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 2
0
        public GeneralResponse EditProblem(EditProblemRequest request)
        {
            GeneralResponse response = new GeneralResponse();
            Problem         problem  = new Problem();

            problem = _problemRepository.FindBy(request.ID);

            if (problem != null)
            {
                try
                {
                    problem.ModifiedDate       = PersianDateTime.Now;
                    problem.ModifiedEmployee   = _employeeRepository.FindBy(request.ModifiedEmployeeID);
                    problem.Priority           = request.Priority;
                    problem.ProblemDescription = request.ProblemDescription;
                    problem.ProblemTitle       = request.ProblemTitle;
                    problem.State = request.State;

                    #region RowVersion

                    if (problem.RowVersion != request.RowVersion)
                    {
                        response.ErrorMessages.Add("EditConcurrencyKey");
                        return(response);
                    }
                    else
                    {
                        problem.RowVersion += 1;
                    }

                    #endregion

                    #region Validation

                    if (problem.GetBrokenRules().Count() > 0)
                    {
                        foreach (BusinessRule businessRule in problem.GetBrokenRules())
                        {
                            response.ErrorMessages.Add(businessRule.Rule);
                        }

                        return(response);
                    }

                    #endregion

                    _problemRepository.Save(problem);
                    _uow.Commit();

                    ////response.success = true;
                }
                catch (Exception ex)
                {
                    response.ErrorMessages.Add(ex.Message);
                }
            }
            else
            {
                response.ErrorMessages.Add("NoItemToEditKey");
            }
            return(response);
        }