last prepare and Fixes on XWebinar Service ...

This commit is contained in:
2025-11-06 07:51:21 +03:30
parent 4c8b43a243
commit 4d88c12601
4 changed files with 167 additions and 2 deletions
+84 -2
View File
@@ -391,14 +391,14 @@ namespace xWebinarService.Providers
// Title ...
var titleAddedLocales = await TitleResourceProvider.AddOrUpdate(
resource: entity.Title,
locales: entityDto.Title.Locales
locales: item.Title.Locales
);
//
// Description ...
var descriptionAddedLocales = await DescriptionResourceProvider.AddOrUpdate(
resource: entity.Description,
locales: entityDto.Description.Locales
locales: item.Description.Locales
);
//
@@ -441,6 +441,19 @@ namespace xWebinarService.Providers
return result;
}
/// <summary>
/// Retrieve all Exists Webinar Ids ...
/// </summary>
/// <returns></returns>
public async Task<IEnumerable<Guid>> GetWebinarIds()
{
//
var result = await WebinarRepository.AsQueryable().SelectAsync(async l => l.Id);
//
return result;
}
/// <summary>
/// Query Webinars ...
/// </summary>
@@ -518,6 +531,75 @@ namespace xWebinarService.Providers
return result;
}
/// <summary>
/// Query Webinar Ids ...
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public async Task<XQueryResult<Guid>> QueryWebinarIds(XQuery query)
{
//
// Validate ...
if (query.IsNull())
{
XException.InvalidArgs.Throw();
}
//
// Normalize ...
query = query.NormalizeQuery(DataSercviceConfiguration);
//
// Since in Resourceable Entities we have to Search on Locales
// we Must Implement Senario Custom ...
var items = await GetWebinarIds();
var totalItemsCount = items.Count();
//
// Apply Filter ...
if (!query.Filter.IsNullOrEmpty())
{
//
items = items
.Where(i => i.ToString().ToNormalString().Contains(query.Filter));
}
int filteredItemsCount = items.Count();
//
// Count Pages ...
var totalPagesCount = query.CountPages(totalItemsCount);
var filteredPagesCount = query.CountPages(filteredItemsCount);
//
// Apply Paging and Sorting ...
if (totalItemsCount > 0 &&
filteredItemsCount > 0)
{
//
// Apply Paging ...
items = items.ApplyPaging(
query.Page,
query.PageSize
);
}
//
// Prepare Result ...
var result = new XQueryResult<Guid>
{
Items = items,
Page = query.Page,
PageSize = query.PageSize,
TotalPages = totalPagesCount,
TotalItems = totalItemsCount,
TotalFilteredPages = filteredPagesCount,
TotalFilteredItems = filteredItemsCount
};
//
return result;
}
/// <summary>
/// Remove Specified Webinar ...
/// </summary>