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); }
public void AddApprovalTransactionDetails(ApprovalTransactionDetails approvalTransactionDetail) { _context.ApprovalTransactionDetails.Add(approvalTransactionDetail); _context.SaveChanges(); }
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); }