Пример #1
0
        public async Task <IActionResult> ApproveRejectEvaluation([FromBody] EvalVM evaluationVM)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Bad Request"));
            }
            var userId = Convert.ToInt32(this.User.FindFirstValue(ClaimTypes.NameIdentifier));

            _evaluationRepository.ApproveRejectEvaluation(evaluationVM);
            return(Ok());
        }
Пример #2
0
        public async void ApproveRejectEvaluation(EvalVM evaluationVM)
        {
            Evaluation evaluation = _context.Evaluations.Where(p => p.EvaluationID == evaluationVM.evaluationID).FirstOrDefault();
            Users      users      = _context.Users.Where(p => p.EmployeeId == evaluation.EmployeeID).FirstOrDefault();

            Employee employeeManager = _context.EmployeeInfoView.Where(p => p.ManagerID == evaluation.EmployeeID).FirstOrDefault();
            Users    usersManager    = null;

            if (employeeManager != null)
            {
                usersManager = _context.Users.Where(p => p.EmployeeId == employeeManager.EmployeeID).FirstOrDefault();
            }

            if (evaluation != null)
            {
                Employee employee = _context.EmployeeInfoView.Where(p => p.EmployeeID == evaluation.EmployeeID).FirstOrDefault();

                if (evaluationVM.employeeApproval == 0 || evaluationVM.employeeApproval == 1)
                {
                    if (employee != null && employee.EmployeeID == evaluationVM.employeeID)
                    {
                        if (evaluation.HRApproval == null && (evaluation.ManagerApproval == null || evaluation.ManagerApproval == 2))
                        {
                            if (evaluationVM.employeeApproval == 1)
                            {
                                if (usersManager != null)
                                {
                                    await notificationConcrete.SaveNotification(evaluation.EvaluationID, false, "NOT02", usersManager.UserId, 1, null);
                                }
                            }
                        }
                        else
                        {
                            throw new Exception("MSG_EVALUATION_DONT_HAVE_PEMISSION");
                        }
                    }
                    else
                    {
                        throw new Exception("MSG_EVALUATION_DONT_HAVE_PEMISSION");
                    }
                }

                //manager
                else if (evaluationVM.managerApproval == 0)
                {
                    if (evaluation.HRApproval == null && evaluation.ManagerApproval == 1)
                    {
                    }
                    else
                    {
                        throw new Exception("MSG_EVALUATION_DONT_HAVE_PEMISSION");
                    }
                }
                else if (evaluationVM.managerApproval == 1)
                {
                    if ((evaluation.HRApproval == null || evaluation.HRApproval == 2) && evaluation.EmployeeApproval == 1)
                    {
                        List <EmployeeUserHRViewModel> employeeUserHRs = await employeesConcrete.GetEmployeeUserHR();

                        if (employeeUserHRs != null)
                        {
                            foreach (EmployeeUserHRViewModel item in employeeUserHRs)
                            {
                                await notificationConcrete.SaveNotification(evaluation.EvaluationID, false, "NOT02", Convert.ToInt32(item.UserId), 1, null);
                            }
                        }
                    }
                    else
                    {
                        throw new Exception("MSG_EVALUATION_DONT_HAVE_PEMISSION");
                    }
                }
                else if (evaluationVM.managerApproval == 2)
                {
                    if ((evaluation.HRApproval == null || evaluation.HRApproval == 2) && evaluation.EmployeeApproval == 1)
                    {
                        if (users != null)
                        {
                            await notificationConcrete.SaveNotification(evaluation.EvaluationID, false, "NOT02", users.UserId, 2, null);
                        }
                    }
                    else
                    {
                        throw new Exception("MSG_EVALUATION_DONT_HAVE_PEMISSION");
                    }
                }

                //hr
                else if (evaluationVM.hRApproval == 0)
                {
                    if (evaluation.HRApproval == 1 && evaluation.ManagerApproval == 1)
                    {
                    }
                    else
                    {
                        throw new Exception("MSG_EVALUATION_DONT_HAVE_PEMISSION");
                    }
                }
                else if (evaluationVM.hRApproval == 1)
                {
                    if (evaluation.HRApproval == null && evaluation.ManagerApproval == 1)
                    {
                        if (users != null)
                        {
                            await notificationConcrete.SaveNotification(evaluation.EvaluationID, false, "NOT02", users.UserId, 1, null);
                        }
                        if (usersManager != null)
                        {
                            await notificationConcrete.SaveNotification(evaluation.EvaluationID, false, "NOT02", usersManager.UserId, 1, null);
                        }
                    }
                    else
                    {
                        throw new Exception("MSG_EVALUATION_DONT_HAVE_PEMISSION");
                    }
                }
                else if (evaluationVM.hRApproval == 2)
                {
                    if ((evaluation.HRApproval == null || evaluation.HRApproval == 1) && evaluation.ManagerApproval == 1)
                    {
                        if (usersManager != null)
                        {
                            await notificationConcrete.SaveNotification(evaluation.EvaluationID, false, "NOT02", usersManager.UserId, 2, null);
                        }
                    }
                    else
                    {
                        throw new Exception("MSG_EVALUATION_DONT_HAVE_PEMISSION");
                    }
                }
            }

            using (SqlConnection con = new SqlConnection(_configuration.GetConnectionString("DatabaseConnection")))
            {
                var paramater = new DynamicParameters();
                paramater.Add("@EvaluationID", evaluationVM.evaluationID);
                paramater.Add("@EmployeeApproval", evaluationVM.employeeApproval);
                paramater.Add("@ManagerApproval", evaluationVM.managerApproval);
                paramater.Add("@ManagerApprovalID", evaluationVM.managerApprovalID);
                paramater.Add("@HRApproval", evaluationVM.hRApproval);
                paramater.Add("@HRApprovalID ", evaluationVM.hRApprovalID);
                paramater.Add("@Note ", evaluationVM.notes);

                var value = con.Query("[ess].ApprovalRejectEvaluationInfo", paramater, null, true, 0, commandType: System.Data.CommandType.StoredProcedure);
            }
        }