Sonarqube сообщает о дублировании кода на действиях контроллера - PullRequest
0 голосов
/ 28 апреля 2020

Я анализирую свое. NET Базовое приложение, использующее SonarQube, и теперь оно сообщает о дублирующих блоках для обоих описанных ниже действий контроллера: три параметра, полученные из строки запроса, и вызов ParametersHelper.ProcessAndSanitizeSee2InputParams, как вы можете видеть на изображении.

SonarQube duplicated code block.

Вызов метода stati c очищает каждый параметр - проверку нуля, обрезку и пользовательские логи c - и группы их в словаре.

Какие-либо советы о том, как реорганизовать эти действия, чтобы избежать запуска обнаружения дублированного кода SonarQube?

// comments omitted
[HttpGet("{seasonKey}")]
[ProducesResponseType(typeof(See2Season), 200)]
public async Task<IActionResult> GetSeasonByKeyAsync(
    string seasonKey,
    [FromQuery(Name = "provider")] string providers,
    [FromQuery(Name = "lang")] string languages,
    [FromQuery(Name = "priority")] string priority)
{
    var sanitizedSee2Params = ParametersHelper.ProcessAndSanitizeSee2InputParams(
        this._logger,
        true,
        new KeyValuePair<string, string>(InputParameterNames.PROVIDERS, providers),
        new KeyValuePair<string, string>(InputParameterNames.LANGUAGE, languages),
        new KeyValuePair<string, string>(InputParameterNames.PRIORITY, priority));

    var result = await this._seasonManager.GetSeasonByKeyAsync(
        seasonKey,
        sanitizedSee2Params).ConfigureAwait(false); 

    return this.Ok(result);
}

// comments omitted
[HttpGet("{seasonKey}/children")]
[ProducesResponseType(typeof(IEnumerable<See2Content>), 200)]
public async Task<IActionResult> GetSeasonChildrenByKeyAsync(
    string seasonKey,
    [FromQuery(Name = "overrideDefaultDirection")] bool overrideDefaultDirection,
    [FromQuery(Name = "provider")] string providers,
    [FromQuery(Name = "lang")] string languages,
    [FromQuery(Name = "priority")] string priority)
{
    var sanitizedSee2Params = ParametersHelper.ProcessAndSanitizeSee2InputParams(
        this._logger,
        true,
        new KeyValuePair<string, string>(InputParameterNames.PROVIDERS, providers),
        new KeyValuePair<string, string>(InputParameterNames.LANGUAGE, languages),
        new KeyValuePair<string, string>(InputParameterNames.PRIORITY, priority));

    var result = await this._seasonManager.GetSeasonChildrenByKeyAsync(
        seasonKey,
        overrideDefaultDirection,
        sanitizedSee2Params).ConfigureAwait(false);

    return this.Ok(result);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...