Hello,
I have following code to retrieve the data of page content type called special event page. Now it has one nested fields called calendar event which is reusable content type which contains two fields called start date and end date.
var builder = new ContentItemQueryBuilder()
.ForContentType(
GPHC.SpecialEventPage.CONTENT_TYPE_NAME,
config => config
.Where(where => where
.WhereEquals(nameof(WebPageFields.WebPageItemID), webPageItemId))
.WithLinkedItems(20)
.ForWebsite(_webSiteChannelContext.WebsiteChannelName)
)
.InLanguage(_preferredLanguageRetriever.Get());
var queryExecutorOptions = new ContentQueryExecutionOptions
{
ForPreview = _webSiteChannelContext.IsPreview
};
var specialEventPages = await _contentQueryExecutor.GetMappedWebPageResult<GPHC.SpecialEventPage>(builder, queryExecutorOptions);
Now when i inspect value it shows the data as follow [which is not correct.]
There is one more place where i retireve that calendar event using below code and data is showing the correct
Environment
var contentItem = await GetContentType<GPHC.CalendarEvent>(
indexedItem.ItemGuid,
indexedItem.LanguageName,
GPHC.CalendarEvent.CONTENT_TYPE_NAME);
private async Task<T?> GetContentType<T>(Guid id, string languageName, string contentTypeName)
where T : IContentItemFieldsSource, new()
{
const string source = nameof(GetContentType);
if (id == Guid.Empty)
{
_eventLogService.LogWarning(source, "INVALID_GUID", "Provided GUID is empty.");
}
try
{
var query = new ContentItemQueryBuilder()
.ForContentType(contentTypeName,
config =>
config
.WithLinkedItems(10)
.Where(where => where.WhereEquals(nameof(WebPageFields.ContentItemGUID), id))
.TopN(1))
.InLanguage(languageName);
var options = new ContentQueryExecutionOptions();
var result = await _queryExecutor.GetMappedResult<T>(query, options) ?? Enumerable.Empty<T>();
return result.FirstOrDefault();
}
catch (Exception ex)
{
_eventLogService.LogException(source, "CONTENT_RETRIEVAL_ERROR", ex,
$"Error retrieving content for GUID: {id}, Language: {languageName}, Type: {contentTypeName}");
throw new ApplicationException("An error occurred while retrieving CalendarEvent content.", ex);
}
Here is the result
Can you help what am i missing or is there anything wrong
Also in the db it showing the correct value. Also note that both fields are having text data type.
Xperience by Kentico version: [30.10.1]
.NET version: [8]
Execution environment: [SaaS]