/// <summary>
        /// 遊技履歴から狙い目台の情報解析を行う
        /// </summary>
        /// <param name="searchDate"></param>
        /// <returns></returns>
        private static async Task <(string Output, List <string> OutputUri)> GetAnalyseResult(DateTime searchDate)
        {
            var output    = new StringBuilder(string.Empty);
            var outputUri = new List <string>();

            var tenpoInfo = ExcelData.GetTenpoInfo();
            var slotMachineSearchNames = ExcelData.GetSlotMachineSearchNames();

            var analyseSlotData = new AnalyseSlotData(searchDate);

            foreach (var slotMachineSearchName in slotMachineSearchNames)
            {
                //機種名を検索する文字列を取得して解析する
                var aimMachineInfo = ExcelData.GetAimMachineInfo().Where(x => x.MachineName == slotMachineSearchName.Key).ToList();
                await analyseSlotData.GetSlotDataAsync(tenpoInfo, slotMachineSearchName.Value, aimMachineInfo);

                //狙える台がない場合
                if (!analyseSlotData.SlotPlayDataCollection.Any())
                {
                    continue;
                    output.AppendLine("(設置されて)ないです。");
                }
                else if (analyseSlotData.AimMachineCollection.Any())
                {
                    //機種名を出力
                    output.AppendLine(Environment.NewLine + "【" + slotMachineSearchName.Key + "】");

                    //ステータスでグルーピングする
                    var aimMachineStatusGrouping = analyseSlotData.AimMachineCollection
                                                   .OrderByDescending(x => x.CoinPrice) //コレクションの中身をコイン単価で降順に並べる
                                                   .ThenByDescending(x => x.StartCount) //コレクションの中身をスタート数で降順に並べる
                                                   .GroupBy(x => new
                    {
                        x.Status,
                        x.ExceptValue,
                    })                                                                         //ステータスと期待値でグループ化する
                                                   .OrderByDescending(x => x.Key.ExceptValue); //グループを期待値で降順に並べる
                    foreach (var aimMachines in aimMachineStatusGrouping)
                    {
                        output.AppendLine("[" + aimMachines.Key.Status + "]");

                        foreach (var aimMachine in aimMachines)
                        {
                            output.AppendLine("(" + aimMachine.CoinPrice + "円) " + aimMachine.StoreName + " " + aimMachine.StartCount + "G");
                            output.AppendLine(aimMachine.SlotMachineUri.ToString());
                            outputUri.Add(aimMachine.SlotMachineUri.ToString());
                        }
                    }
                }
                else
                {
                    continue;
                    output.AppendLine("狙える台は無いンゴなぁ");
                }
            }

            output.AppendLine();
            return(output.ToString(), outputUri.OrderBy(x => x).ToList());
        }