last prepare and Fixes on XWebinar Service ...
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user