public async Task <IEnumerable <PinnedDiscipline> > Get(PinnedDisciplineGetOptions options) { try { StringBuilder sql = new StringBuilder(); _logger.LogInformation("Try to create get pinned disciplines sql query"); sql.AppendLine(@" select pd.Id, pd.UserId, pd.DisciplineTitleId, pd.ProjectType, dt.Name as DisciplineTitle from PinnedDiscipline pd left join DisciplineTitle dt on DisciplineTitleId = dt.Id"); int conditionIndex = 0; if (options.Id.HasValue) { sql.AppendLine($"{(conditionIndex++ == 0 ? "where" : "and")} pd.Id = @id"); } if (options.UserId.HasValue) { sql.AppendLine($"{(conditionIndex++ == 0 ? "where" : "and")} pd.UserId = @UserId"); } if (options.DisciplineTitleId.HasValue) { sql.AppendLine($"{(conditionIndex++ == 0 ? "where" : "and")} pd.DisciplineTitleId = @DisciplineTitleId"); } if (options.Ids != null && options.Ids.Count > 0) { sql.AppendLine($"{(conditionIndex++ == 0 ? "where" : "and")} pd.Id in @Ids"); } if (options.DisciplineTitlesIds != null && options.DisciplineTitlesIds.Count > 0) { sql.AppendLine($"{(conditionIndex++ == 0 ? "where" : "and")} pd.DisciplineTitleId in @DisciplineTitlesIds"); } if (options.UsersIds != null && options.UsersIds.Count > 0) { sql.AppendLine($"{(conditionIndex++ == 0 ? "where" : "and")} pd.UserId in @UsersIds"); } _logger.LogInformation($"Sql query successfully created:\n{sql.ToString()}"); _logger.LogInformation("Try to execute sql get pinned disciplines query"); var result = await QueryAsync <PinnedDiscipline>(sql.ToString(), options); _logger.LogInformation("Sql get pinned disciplines query successfully executed"); return(result); } catch (Exception exception) { _logger.LogError(exception.Message); throw exception; } }
public async Task <IEnumerable <PinnedDiscipline> > Get(PinnedDisciplineGetOptions options) { return(await _dao.Get(options)); }