Вы можете удалить параметр Guid participantId
из GetAlertsForParticipantOfOrganisation
, так как метод не использует этот параметр. Затем вы можете удалить его так же, как GetAllAlertsForOrganisation
.
Имея это в виду, вы можете создать другой метод, который возвращает IQueryable<Alert>
и выполняет фильтрацию, повторяемую вашими 3 методами:
public IQueryable<Alert> GetAllAlerts(int organisationId, DateTime? beginDate, DateTime? endDate)
{
return GetAlerts(i => i.OrganisationId == organisationId &&
(endDate == null || i.CreatedAt <= endDate) &&
(beginDate == null || i.CreatedAt >= beginDate));
}
Затем вы можете использовать те же логики c другими способами:
public async Task<List<Alert>> GetAllAlertsForOrganisation(int organisationId, DateTime? beginDate, DateTime? endDate)
{
return await GetAllAlerts(organisationId, beginDate, endDate).ToListAsync();
}
public async Task<int> GetAllAlertsForOrganisationCount(int organisationId, DateTime? beginDate, DateTime? endDate)
{
return await GetAllAlerts(organisationId, beginDate, endDate).CountAsync();
}