public async Task <Dictionary <string, CompanyModel> > GetCompanies([FromBody] UserFilter filter) { return(await cache.GetValueOrCreateAsync(GetCacheKey("companies", filter), CacheSeconds, async() => { var ageFilter = GetAgeFilter(filter); var communityFilter = GetCommunityFilter(filter); UpdateLanguagesFilter(filter); var result = await surveyService.GetCompanyModels( filter.Year, ageFilter, filter.cities, filter.educations, filter.experiences, filter.professions, filter.languages, communityFilter); return result.ToDictionary(cm => cm.Name, cm => cm); })); }