public IResult InsertOrUpdateOpening(EntityAndApprovalViewModel entityAndApprovalViewModel) { var result = new Result { Operation = Operation.Create, Status = Status.Success }; try { var openingViewModel = entityAndApprovalViewModel.openingViewModel; if (openingViewModel.OpeningId != Guid.Empty) { result.Body = UpdateOpening(entityAndApprovalViewModel); } else { var openingModel = new Openings(); openingModel.MapFromViewModel(openingViewModel, (ClaimsIdentity)_principal.Identity); var openingSkillList = new List <OpeningSkills>(); var openingSkills = openingViewModel.PrimarySkillTypes.Union(openingViewModel.SecondarySkillTypes).ToList(); foreach (var item in openingSkills) { var openingSkill = new OpeningSkills { SkillId = item.SkillId, SkillType = item.OpeningSkillType }; openingSkill.MapAuditColumns((ClaimsIdentity)_principal.Identity); openingSkillList.Add(openingSkill); } _openingRepository.CreateOpening(openingModel, openingSkillList); entityAndApprovalViewModel.openingViewModel.OpeningId = openingModel.OpeningId; var approvalTransactionViewModel = _approvalManagerService.AddApprovalTransaction(entityAndApprovalViewModel); // var users = _approvalRepository.GetUserForOpeningApproval(approvalTransactionViewModel); //users.ForEach(user => //{ // MailDetailModel mailDetail = new MailDetailModel(); // mailDetail.EmailId = user.Email; // mailDetail.Subject = "Opening Approval"; // mailDetail.Template = TemplateType.Appoval; // mailDetail.MessageBody = approvalTransactionViewModel; // GenericHelper.Send(mailDetail, _configuration); //}); result.Body = approvalTransactionViewModel; } } catch (Exception e) { result.Message = e.Message; result.Status = Status.Fail; } return(result); }
public ApprovalTransactionViewModel UpdateOpening(EntityAndApprovalViewModel entityAndApprovalViewModel) { var openingViewModel = entityAndApprovalViewModel.openingViewModel; var openingModel = new Openings(); openingModel.MapFromViewModel(openingViewModel, (ClaimsIdentity)_principal.Identity); var openingDetail = _openingRepository.GetByID(openingViewModel.OpeningId); var skillViewModelList = openingViewModel.PrimarySkillTypes.Union(openingViewModel.SecondarySkillTypes).ToList(); var skillModelList = openingDetail.OpeningSkills.Where(x => (x.IsActive && !x.IsDeleted)).Select(x => x.Skill).ToList(); var existingSkills = skillViewModelList.Select(x => x.SkillId).Intersect(skillModelList.Select(x => x.SkillId)).ToList(); var addingSkills = skillViewModelList.Select(x => x.SkillId).Except(existingSkills).ToList(); var removingSkills = skillModelList.Select(x => x.SkillId).Except(existingSkills).ToList(); if (existingSkills.Any()) { var openingSkills = openingDetail.OpeningSkills.Where(x => existingSkills.Contains(x.SkillId)).ToList(); openingSkills.ForEach(x => x.MapAuditColumns((ClaimsIdentity)_principal.Identity)); } if (removingSkills.Any()) { var openingSkills = openingDetail.OpeningSkills.Where(x => removingSkills.Contains(x.SkillId)).ToList(); openingSkills.ForEach(x => x.MapDeleteColumns((ClaimsIdentity)_principal.Identity)); } var openingSkillList = new List <OpeningSkills>(); if (addingSkills.Any()) { var addingSkillList = skillViewModelList.Where(x => addingSkills.Contains(x.SkillId)).ToList(); foreach (var item in addingSkillList) { var openingSkill = new OpeningSkills() { OpeningId = openingDetail.OpeningId, SkillId = item.SkillId, SkillType = item.OpeningSkillType }; openingSkill.MapAuditColumns((ClaimsIdentity)_principal.Identity); openingSkillList.Add(openingSkill); } } if (openingSkillList.Any()) { _openingRepository.UpdateOpeningSkills(openingSkillList); } _openingRepository.Update(openingModel); entityAndApprovalViewModel.approvalTransactionViewModel.NextEventOrderNumber += 1; _approvalManagerService.ManageApprovalTransaction(entityAndApprovalViewModel); _openingRepository.SaveChanges(); return(entityAndApprovalViewModel.approvalTransactionViewModel); }
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 IResult InsertOrUpdateOpening([FromBody] EntityAndApprovalViewModel entityAndApprovalViewModel) { var createdOpening = _openingManagerService.InsertOrUpdateOpening(entityAndApprovalViewModel); return(createdOpening); }
public IResult ManageApprovalTransaction([FromBody] EntityAndApprovalViewModel entityAndApprovalViewModel) { var createdEventRole = _approvalManager.ManageApprovalTransaction(entityAndApprovalViewModel); return(createdEventRole); }
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); }