public IResult GetAllOpenings()
        {
            var result = new Result
            {
                Operation = Operation.Read,
                Status    = Status.Success
            };

            try
            {
                var allOpenings          = _openingRepository.GetAll();
                var openingIds           = allOpenings.Select(x => x.OpeningId).Distinct().ToList();
                var approvalTransactions = _approvalRepository.GetAllApprovalTransactions(openingIds).ToList();
                result.Body = allOpenings.Select(opening =>
                {
                    var approvalTransaction = approvalTransactions.FirstOrDefault(x => x.EntityId == opening.OpeningId);

                    var openingViewModel = new OpeningViewModel();
                    MapPrimaryandSecondarySkills(openingViewModel, opening);

                    if (approvalTransaction != null)
                    {
                        openingViewModel.IsApproved = approvalTransaction.IsApproved;
                        openingViewModel.Status     = approvalTransaction.ApprovalAction.ApprovalActionName;
                    }
                    return(openingViewModel.MapFromModel(opening));
                }).ToList();
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Fail;
            }
            return(result);
        }