public virtual async Task <List <string> > GetAlreadyFilteredSpecOptionIds (IHttpContextAccessor httpContextAccessor, ISpecificationAttributeService specificationAttributeService) { var result = new List <string>(); foreach (var item in httpContextAccessor.HttpContext.Request.Query) { var spec = await specificationAttributeService.GetSpecificationAttributeBySeName(item.Key); if (spec != null) { foreach (var value in item.Value) { foreach (var option in value.Split(",")) { var opt = spec.SpecificationAttributeOptions.FirstOrDefault(x => x.SeName == option.ToLowerInvariant()); if (opt != null) { if (!result.Contains(opt.Id)) { result.Add(opt.Id); } } } } } } return(result); }