private async Task <Skill> GetOrCreateSkillAsync(string skillName) { var trimName = skillName.Trim(); return(_storageBroker.SelectAllSkills() .FirstOrDefault(skill => skill.Name.ToLower().Equals(trimName.ToLower())) ?? await AddSkillAsync(trimName)); }
public Task <IList <Skill> > GetAllSkills(GetAllSkillsFilter filter = null) { return(TryCatch(async() => { if (filter?.SubscriptionId == null) { var queryable = _storageBroker.SelectAllSkills(); queryable = AddFiltersOnQuery(filter, queryable); return await queryable.ToListAsync(); } //check subscriptionId var subscription = await _storageBroker.SelectSourceSubscriptionByIdAsync(filter.SubscriptionId.Value); ValidateSubscription(subscription, filter.SubscriptionId.Value); var queryableBySubscription = _storageBroker.SelectAllSubscriptionVacancies(); var query = AddFiltersWithSubscriptionOnQuery(filter, queryableBySubscription); return await query.ToListAsync(); })); }