private async Task <List <DataBlock> > GetInputList(
            InputType inputType,
            string inputSource,
            IBlipAIClient client,
            IContentManagerApiClient contentClient,
            string reportOutput,
            List <Intention> intentions,
            bool doContentCheck,
            bool rawContent)
        {
            switch (inputType)
            {
            case InputType.Phrase:
                return(new List <DataBlock> {
                    DataBlock.GetInstance(1, InputWithTags.FromText(inputSource), client, contentClient, reportOutput, doContentCheck, rawContent, intentions)
                });

            case InputType.File:
                var inputListAsString = await _fileService.GetInputsToAnalyseAsync(inputSource);

                return(inputListAsString
                       .Select((input, i) => DataBlock.GetInstance(i + 1, input, client, contentClient, reportOutput, doContentCheck, rawContent, intentions))
                       .ToList());

            case InputType.Bot:
                var botSource   = inputSource.Replace(BOT_KEY_PREFIX, "").Trim();
                var localClient = _blipClientFactory.GetInstanceForAI(botSource);
                _logger.LogDebug("\tCarregando intenções do bot fonte...");
                var allIntents = await localClient.GetAllIntentsAsync();

                var questionListAsString = new List <string>();
                foreach (var intent in allIntents)
                {
                    questionListAsString.AddRange(intent.Questions.Select(q => q.Text));
                }
                _logger.LogDebug("\tIntenções carregadas!");
                return(questionListAsString
                       .Select((input, i) => DataBlock.GetInstance(i + 1, InputWithTags.FromText(input), client, contentClient, reportOutput, doContentCheck, rawContent, intentions))
                       .ToList());

            default:
                throw new ArgumentException($"Unexpected value {inputType}.", "inputType");
            }
        }
        public static DataBlock GetInstance(int id, InputWithTags input, IBlipAIClient aiClient, IContentManagerApiClient contentClient, string reportOutput, bool doCheck, bool rawContent, List <Intention> intents)
        {
            var instance = GetInstance(id, input, aiClient, contentClient, reportOutput);

            instance.DoContentCheck        = doCheck;
            instance.ShouldWriteRawContent = rawContent;
            instance.AllIntents            = intents;
            return(instance);
        }
 public static DataBlock GetInstance(int id, InputWithTags input, IBlipAIClient aiClient, IContentManagerApiClient contentClient, string reportOutput)
 {
     return(new DataBlock
     {
         Id = id,
         Input = input,
         AIClient = aiClient,
         ReportOutputFile = reportOutput,
         ContentClient = contentClient
     });
 }