/// <summary>
        /// Gets all reference data for category type nameValuePair using Guid Id
        /// </summary>
        /// <param name="id">Guid Id</param>
        /// <returns>NameValuePair</returns>
        public NameValuePair GetNameValueReferenceData(Guid id)
        {
            using (loggingHelper.RMTraceManager.StartTrace("DataService.GetNameValueReferenceData"))
            {
                string methodName = typeof(ReferenceDataDataService) + "." + nameof(GetNameValueReferenceData);
                loggingHelper.LogMethodEntry(methodName, priority, entryEventId);

                RM.Common.ReferenceData.WebAPI.Entities.ReferenceData referenceData = null;

                referenceData = DataContext.ReferenceDatas.Include(m => m.ReferenceDataCategory)
                                .Where(n => n.ID == id && n.ReferenceDataCategory.CategoryType.Equals(ReferenceDataCategoryTypeForNameValuePair)).SingleOrDefault();

                if (referenceData != null)
                {
                    loggingHelper.LogMethodExit(methodName, priority, exitEventId);
                    return(new NameValuePair
                    {
                        Id = referenceData.ID,
                        Group = referenceData.ReferenceDataCategory.CategoryName,
                        Name = referenceData.ReferenceDataName,
                        Value = referenceData.ReferenceDataValue,
                        DisplayText = referenceData.DisplayText,
                        Description = referenceData.DataDescription,
                        maintainable = referenceData.ReferenceDataCategory.Maintainable
                    });
                }
                else
                {
                    loggingHelper.LogMethodExit(methodName, priority, exitEventId);
                    return(null);
                }
            }
        }
        /// <summary>
        /// Gets all reference data for category type nameValuePair.
        /// </summary>
        /// <param name="dbGroupName">dbGroupName is recorded as the category name</param>
        /// <param name="dbItemName">dbItemName is recorded as the item name</param>
        /// <returns>List of <see cref="ReferenceDataCategoryDTO"></returns>
        public NameValuePair GetNameValueReferenceData(string dbGroupName, string dbItemName)
        {
            using (loggingHelper.RMTraceManager.StartTrace("DataService.GetNameValueReferenceData"))
            {
                string methodName = MethodBase.GetCurrentMethod().Name;
                loggingHelper.Log(methodName + LoggerTraceConstants.COLON + LoggerTraceConstants.MethodExecutionStarted, TraceEventType.Verbose, null, LoggerTraceConstants.Category, LoggerTraceConstants.ReferenceDataAPIPriority, LoggerTraceConstants.ReferenceDataDataServiceMethodEntryEventId, LoggerTraceConstants.Title);

                RM.Common.ReferenceData.WebAPI.Entities.ReferenceData referenceData = null;

                var referenceDataCategories = DataContext.ReferenceDataCategories.AsNoTracking().Include(m => m.ReferenceDatas)
                                              .Where(n => n.CategoryName.Equals(dbGroupName, StringComparison.OrdinalIgnoreCase) &&
                                                     n.CategoryType.Equals(ReferenceDataCategoryTypeForNameValuePair)).SingleOrDefault();

                if (referenceDataCategories?.ReferenceDatas != null && referenceDataCategories.ReferenceDatas.Count > 0)
                {
                    referenceData = referenceDataCategories.ReferenceDatas
                                    .Where(n => n.ReferenceDataName.Trim().Equals(dbItemName, StringComparison.OrdinalIgnoreCase)).SingleOrDefault();
                    loggingHelper.Log(methodName + LoggerTraceConstants.COLON + LoggerTraceConstants.MethodExecutionCompleted, TraceEventType.Verbose, null, LoggerTraceConstants.Category, LoggerTraceConstants.ReferenceDataAPIPriority, LoggerTraceConstants.ReferenceDataDataServiceMethodExitEventId, LoggerTraceConstants.Title);
                }

                if (referenceData != null)
                {
                    loggingHelper.Log(methodName + LoggerTraceConstants.COLON + LoggerTraceConstants.MethodExecutionCompleted, TraceEventType.Verbose, null, LoggerTraceConstants.Category, LoggerTraceConstants.ReferenceDataAPIPriority, LoggerTraceConstants.ReferenceDataDataServiceMethodExitEventId, LoggerTraceConstants.Title);

                    return(new NameValuePair
                    {
                        Id = referenceData.ID,
                        Group = referenceDataCategories.CategoryName,
                        Name = referenceData.ReferenceDataName,
                        Value = referenceData.ReferenceDataValue,
                        DisplayText = referenceData.DisplayText,
                        Description = referenceData.DataDescription,
                        maintainable = referenceDataCategories.Maintainable
                    });
                }
                else
                {
                    loggingHelper.Log(methodName + LoggerTraceConstants.COLON + LoggerTraceConstants.MethodExecutionCompleted, TraceEventType.Verbose, null, LoggerTraceConstants.Category, LoggerTraceConstants.ReferenceDataAPIPriority, LoggerTraceConstants.ReferenceDataDataServiceMethodExitEventId, LoggerTraceConstants.Title);
                    return(null);
                }
            }
        }