public ApprovalTransactionViewModel AddApprovalTransaction(EntityAndApprovalViewModel entityAndApprovalViewModel)
        {
            var approvalTransaction = new ApprovalTransactions();

            approvalTransaction.MapAuditColumns((ClaimsIdentity)_principal.Identity);

            var approvalTransactionViewModel = entityAndApprovalViewModel.approvalTransactionViewModel;

            approvalTransaction.ApprovalId       = approvalTransactionViewModel.ApprovalId;
            approvalTransaction.ApprovalActionId = approvalTransactionViewModel.ApprovalActionId;
            if (entityAndApprovalViewModel.openingViewModel != null)
            {
                approvalTransaction.EntityId = entityAndApprovalViewModel.openingViewModel.OpeningId;
            }
            else
            {
                approvalTransaction.EntityId = entityAndApprovalViewModel.candidateViewModel.CandidateId;
            }
            approvalTransaction.EntityType = 0;
            if (approvalTransactionViewModel.NextEventOrderNumber < 0)
            {
                approvalTransaction.NextEventOrderNumber = approvalTransactionViewModel.NextEventOrderNumber;
            }
            else
            {
                approvalTransaction.EventOrderNumber     = approvalTransactionViewModel.ApprovalEventOrder;
                approvalTransaction.NextEventOrderNumber = approvalTransaction.EventOrderNumber + 1;
            }

            var approvalTransactionDetail = new ApprovalTransactionDetails();

            approvalTransactionDetail.MapAuditColumns((ClaimsIdentity)_principal.Identity);
            approvalTransactionDetail.Comments         = approvalTransactionViewModel.Comments;
            approvalTransactionDetail.ApprovalActionId = approvalTransaction.ApprovalActionId;
            approvalTransactionDetail.EventOrderNumber = approvalTransaction.EventOrderNumber;
            approvalTransaction.ApprovalTransactionDetails.Add(approvalTransactionDetail);
            _approvalRepository.CreateApprovalTransaction(approvalTransaction);
            approvalTransactionViewModel.MapFromModel(approvalTransaction);
            var userId = GenericHelper.GetUserClaimDetails((ClaimsIdentity)_principal.Identity).UserId;

            if (entityAndApprovalViewModel.candidateViewModel != null)
            {
                _candidateRepository.OnInterviewFinished(approvalTransaction, userId);
            }

            return(approvalTransactionViewModel);
        }
示例#2
0
 public void AddApprovalTransactionDetails(ApprovalTransactionDetails approvalTransactionDetail)
 {
     _context.ApprovalTransactionDetails.Add(approvalTransactionDetail);
     _context.SaveChanges();
 }
示例#3
0
 public void UpdateApprovalTransaction(ApprovalTransactions approvalTransaction, ApprovalTransactionDetails approvalTransactionDetail)
 {
     _context.ApprovalTransactionDetails.Add(approvalTransactionDetail);
     _context.Entry(approvalTransaction).State = EntityState.Modified;
     _context.SaveChanges();
 }
        public IResult ManageApprovalTransaction(EntityAndApprovalViewModel entityAndApprovalViewModel)
        {
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var approvalTransactionViewModel = entityAndApprovalViewModel.approvalTransactionViewModel;
                if (approvalTransactionViewModel.ApprovalTransactionId == 0)
                {
                    result.Body = AddApprovalTransaction(entityAndApprovalViewModel);
                }
                else
                {
                    var approvalTransactionModel = _approvalRepository.GetApprovalTransactionByEntity(approvalTransactionViewModel.EntityId);

                    if (approvalTransactionViewModel.NextEventOrderNumber == 0)
                    {
                        approvalTransactionModel.IsApproved = true;
                        if (approvalTransactionViewModel.ApprovalId == (int)Approval.Candidate)
                        {
                            _candidateRepository.OnCandidateApproved(approvalTransactionModel);
                        }
                    }

                    if (approvalTransactionModel.NextEventOrderNumber == approvalTransactionViewModel.NextEventOrderNumber)
                    {
                        approvalTransactionModel.IsFurtherActionRequired = true;
                    }
                    else
                    {
                        approvalTransactionModel.IsFurtherActionRequired = false;
                    }

                    approvalTransactionModel.MapFromViewModel(approvalTransactionViewModel, (ClaimsIdentity)_principal.Identity);
                    approvalTransactionViewModel.Action = approvalTransactionModel.ApprovalAction.ApprovalActionName;
                    var approvalTransactionDetail = new ApprovalTransactionDetails();
                    approvalTransactionDetail.MapAuditColumns((ClaimsIdentity)_principal.Identity);
                    approvalTransactionDetail.ApprovalTransactionId = approvalTransactionViewModel.ApprovalTransactionId;
                    approvalTransactionDetail.ApprovalActionId      = approvalTransactionViewModel.ApprovalActionId;
                    approvalTransactionDetail.EventOrderNumber      = approvalTransactionViewModel.EventOrderNumber;
                    approvalTransactionDetail.Comments = approvalTransactionViewModel.Comments;
                    _approvalRepository.UpdateApprovalTransaction(approvalTransactionModel, approvalTransactionDetail);
                    var userId = GenericHelper.GetUserClaimDetails((ClaimsIdentity)_principal.Identity).UserId;
                    if (approvalTransactionViewModel.ApprovalId == (int)Approval.Candidate)
                    {
                        _candidateRepository.OnInterviewFinished(approvalTransactionModel, userId);
                    }

                    //if (approvalTransactionViewModel.ApprovalTransactionId != 0)
                    //{
                    //    if (approvalTransactionViewModel.ApprovalId == (int)Approval.Candidate)
                    //    {
                    //        UserViewModel userViewModel = new UserViewModel();
                    //        var user = _approvalRepository.GetUserForCandidateApproval(approvalTransactionViewModel.EntityId, approvalTransactionViewModel.NextEventOrderNumber);
                    //        userViewModel.MapFromModel(user);
                    //        approvalTransactionViewModel.User = userViewModel;
                    //        MailDetailModel mailDetail = new MailDetailModel();
                    //        mailDetail.EmailId = user.Email;
                    //        mailDetail.Subject = approvalTransactionViewModel.Action + " Candidate";
                    //        mailDetail.Template = TemplateType.Appoval;
                    //        mailDetail.MessageBody = approvalTransactionViewModel;
                    //        GenericHelper.Send(mailDetail, _configuration);
                    //    }
                    //    else
                    //    {
                    //        var users = _approvalRepository.GetUserForOpeningApproval(approvalTransactionViewModel);
                    //        users.ForEach(user =>
                    //        {
                    //            UserViewModel userViewModel = new UserViewModel();
                    //            MailDetailModel mailDetail = new MailDetailModel();
                    //            userViewModel.MapFromModel(user);
                    //            approvalTransactionViewModel.User = userViewModel;
                    //            mailDetail.EmailId = user.Email;
                    //            mailDetail.Subject = approvalTransactionViewModel.Action + " Opening";
                    //            mailDetail.Template = TemplateType.Appoval;
                    //            mailDetail.MessageBody = approvalTransactionViewModel;
                    //            GenericHelper.Send(mailDetail, _configuration);
                    //        });
                    //    }
                    //}
                    result.Body = approvalTransactionViewModel;
                }
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Error;
            }
            return(result);
        }