• R/O
  • HTTP
  • SSH
  • HTTPS

コミット

タグ
未設定

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

EveryDB2のデータベースを読み込んでWinFormでGUI表示するサンプル


コミットメタ情報

リビジョン209dd036e6fa669ec8e1fa9b84679ecdc19fad6a (tree)
日時2021-05-30 13:26:06
作者yoshy <yoshy@user...>
コミッターyoshy

ログメッセージ

temp_20210530_1325

変更サマリ

差分

--- a/App/Adaptor/Gateway/ViewModel/Dto/UmaRaceRowDto.cs
+++ b/App/Adaptor/Gateway/ViewModel/Dto/UmaRaceRowDto.cs
@@ -8,13 +8,13 @@ using UmaTest.Infra.Helper;
88
99 namespace UmaTest.App.Adaptor.Gateway.ViewModel.Dto
1010 {
11- public class UmaRaceRowDto : NUmaRaceWithNRace
11+ public class UmaRaceRowDto : NUmaRaceInfo
1212 {
1313 public UmaRaceRowDto()
1414 {
1515 }
1616
17- public UmaRaceRowDto(NUmaRaceWithNRace umaRace)
17+ public UmaRaceRowDto(NUmaRaceInfo umaRace)
1818 {
1919 BeanHelper.Copy(this, umaRace);
2020 }
--- a/App/Adaptor/Gateway/ViewModel/Dto/UmaSummaryRowDto.cs
+++ b/App/Adaptor/Gateway/ViewModel/Dto/UmaSummaryRowDto.cs
@@ -35,6 +35,8 @@ namespace UmaTest.App.Adaptor.Gateway.ViewModel.Dto
3535 public string Wakuban { get; set; }
3636 public string Umaban { get; set; }
3737
38+ public string SenSuu { get; set; }
39+
3840 public string SexAge
3941 {
4042 get
--- a/App/Adaptor/Presenter/AsyncLoadManualUmaListPresenter.cs
+++ b/App/Adaptor/Presenter/AsyncLoadManualUmaListPresenter.cs
@@ -140,7 +140,7 @@ namespace UmaTest.App.Gateway.Presenter
140140
141141 umaSummaryList.Add(summaryDto);
142142
143- if (!res.Races.TryGetValue(kettoNum, out IEnumerable<NUmaRaceWithNRace> umaRaces) || (umaRaces.Count() == 0))
143+ if (!res.Races.TryGetValue(kettoNum, out IEnumerable<NUmaRaceInfo> umaRaces) || (umaRaces.Count() == 0))
144144 {
145145 Logger.Warn($"血統登録番号: {kettoNum} の馬レース情報が見つかりませんでした");
146146 continue;
@@ -148,7 +148,7 @@ namespace UmaTest.App.Gateway.Presenter
148148
149149 List<UmaRaceRowDto> umaRaceList = new List<UmaRaceRowDto>();
150150
151- foreach (NUmaRaceWithNRace umaRace in umaRaces)
151+ foreach (NUmaRaceInfo umaRace in umaRaces)
152152 {
153153 NRace detail = umaRace.Race;
154154 Logger.Debug($"{detail.Year}/{detail.Monthday.Substring(0, 2)}/{detail.Monthday.Substring(2, 2)} - {detail.Hondai} - {detail.Kyori} - {detail.Gradecd} - {detail.Jyokencd1} - {umaRace.Nyusenjyuni} - {umaRace.Kakuteijyuni}");
--- a/App/Adaptor/Presenter/AsyncLoadSelectedRaceUmaListPresenter.cs
+++ b/App/Adaptor/Presenter/AsyncLoadSelectedRaceUmaListPresenter.cs
@@ -123,7 +123,7 @@ namespace UmaTest.App.Gateway.Presenter
123123
124124 umaSummaryList.Add(summaryDto);
125125
126- if (!res.Races.TryGetValue(kettoNum, out IEnumerable<NUmaRaceWithNRace> umaRaces)) // || (umaRaces.Count() == 0))
126+ if (!res.Races.TryGetValue(kettoNum, out IEnumerable<NUmaRaceInfo> umaRaces)) // || (umaRaces.Count() == 0))
127127 {
128128 Logger.Warn($"血統登録番号: {kettoNum} の馬レース情報が見つかりませんでした");
129129 continue;
@@ -131,7 +131,7 @@ namespace UmaTest.App.Gateway.Presenter
131131
132132 List<UmaRaceRowDto> umaRaceList = new List<UmaRaceRowDto>();
133133
134- foreach (NUmaRaceWithNRace umaRace in umaRaces)
134+ foreach (NUmaRaceInfo umaRace in umaRaces)
135135 {
136136 NRace detail = umaRace.Race;
137137 Logger.Debug($"{detail.Year}/{detail.Monthday.Substring(0, 2)}/{detail.Monthday.Substring(2, 2)} - {detail.Hondai} - {detail.Kyori} - {detail.Gradecd} - {detail.Jyokencd1} - {umaRace.Nyusenjyuni} - {umaRace.Kakuteijyuni}");
@@ -139,6 +139,8 @@ namespace UmaTest.App.Gateway.Presenter
139139 umaRaceList.Add(new UmaRaceRowDto(umaRace));
140140 }
141141
142+ summaryDto.SenSuu = umaRaceList.Count.ToString();
143+
142144 umaRaceMap.Add(kettoNum, umaRaceList);
143145 }
144146
--- a/App/Adaptor/Presenter/AsyncLoadTokuUmaListPresenter.cs
+++ b/App/Adaptor/Presenter/AsyncLoadTokuUmaListPresenter.cs
@@ -129,7 +129,7 @@ namespace UmaTest.App.Gateway.Presenter
129129
130130 umaSummaryList.Add(summaryDto);
131131
132- if (!res.Races.TryGetValue(kettoNum, out IEnumerable<NUmaRaceWithNRace> umaRaces) || (umaRaces.Count() == 0))
132+ if (!res.Races.TryGetValue(kettoNum, out IEnumerable<NUmaRaceInfo> umaRaces) || (umaRaces.Count() == 0))
133133 {
134134 Logger.Warn($"血統登録番号: {kettoNum} の馬レース情報が見つかりませんでした");
135135 continue;
@@ -137,7 +137,7 @@ namespace UmaTest.App.Gateway.Presenter
137137
138138 List<UmaRaceRowDto> umaRaceList = new List<UmaRaceRowDto>();
139139
140- foreach (NUmaRaceWithNRace umaRace in umaRaces)
140+ foreach (NUmaRaceInfo umaRace in umaRaces)
141141 {
142142 NRace detail = umaRace.Race;
143143 Logger.Debug($"{detail.Year}/{detail.Monthday.Substring(0, 2)}/{detail.Monthday.Substring(2, 2)} - {detail.Hondai} - {detail.Kyori} - {detail.Gradecd} - {detail.Jyokencd1} - {umaRace.Nyusenjyuni} - {umaRace.Kakuteijyuni}");
--- a/App/Adaptor/Presenter/LoadManualUmaListPresenter.cs
+++ b/App/Adaptor/Presenter/LoadManualUmaListPresenter.cs
@@ -117,7 +117,7 @@ namespace UmaTest.App.Gateway.Presenter
117117
118118 umaSummaryList.Add(summaryDto);
119119
120- if (!res.Races.TryGetValue(kettoNum, out IEnumerable<NUmaRaceWithNRace> umaRaces) || (umaRaces.Count() == 0))
120+ if (!res.Races.TryGetValue(kettoNum, out IEnumerable<NUmaRaceInfo> umaRaces) || (umaRaces.Count() == 0))
121121 {
122122 Logger.Warn($"血統登録番号: {kettoNum} の馬レース情報が見つかりませんでした");
123123 return res;
@@ -125,7 +125,7 @@ namespace UmaTest.App.Gateway.Presenter
125125
126126 List<UmaRaceRowDto> umaRaceList = new List<UmaRaceRowDto>();
127127
128- foreach (NUmaRaceWithNRace umaRace in umaRaces)
128+ foreach (NUmaRaceInfo umaRace in umaRaces)
129129 {
130130 NRace detail = umaRace.Race;
131131 Logger.Debug($"{detail.Year}/{detail.Monthday.Substring(0, 2)}/{detail.Monthday.Substring(2, 2)} - {detail.Hondai} - {detail.Kyori} - {detail.Gradecd} - {detail.Jyokencd1} - {umaRace.Nyusenjyuni} - {umaRace.Kakuteijyuni}");
--- a/App/Domain/Model/Logic/IUmaRaceLogic.cs
+++ b/App/Domain/Model/Logic/IUmaRaceLogic.cs
@@ -8,9 +8,9 @@ namespace UmaTest.App.Domain.Model.Logic
88 public interface IUmaRaceLogic
99 {
1010 Dictionary<string, IEnumerable<ChakudosuuSummary>> LoadChakudosuuSummaries(List<string> kettoNumList);
11- Dictionary<string, IEnumerable<NUmaRaceWithNRace>> LoadRacesByKettoNumList(List<string> kettoNumList);
11+ Dictionary<string, IEnumerable<NUmaRaceInfo>> LoadRacesByKettoNumList(List<string> kettoNumList);
1212 Task<Dictionary<string, IEnumerable<ChakudosuuSummary>>> LoadChakudosuuSummariesAsync(List<string> kettoNumList);
13- Task<Dictionary<string, IEnumerable<NUmaRaceWithNRace>>> LoadRacesByKettoNumListAsync(List<string> kettoNumList);
13+ Task<Dictionary<string, IEnumerable<NUmaRaceInfo>>> LoadRacesByKettoNumListAsync(List<string> kettoNumList);
1414 Task<IEnumerable<NUmaRace>> LoadHorsesBySelectedRaceAsync(NRace race);
1515 }
1616 }
\ No newline at end of file
--- a/App/Domain/Model/Logic/UmaRaceLogic.cs
+++ b/App/Domain/Model/Logic/UmaRaceLogic.cs
@@ -23,15 +23,16 @@ namespace UmaTest.App.Domain.Model.Logic
2323 this.statusBar = statusBar;
2424 }
2525
26- public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> LoadRacesByKettoNumList(List<string> kettoNumList)
26+ public Dictionary<string, IEnumerable<NUmaRaceInfo>> LoadRacesByKettoNumList(List<string> kettoNumList)
2727 {
2828 return TaskHelper.WaitSingle(LoadRacesByKettoNumListAsync(kettoNumList));
2929 }
3030
31- public async Task<Dictionary<string, IEnumerable<NUmaRaceWithNRace>>> LoadRacesByKettoNumListAsync(List<string> kettoNumList)
31+ public async Task<Dictionary<string, IEnumerable<NUmaRaceInfo>>> LoadRacesByKettoNumListAsync(List<string> kettoNumList)
3232 {
3333 return await LogicHelper.tryLogic(() =>
3434 {
35+ statusBar.SetStatusText($"レース情報を読み込み中です...");
3536 return dao.FindAllRacesByKettoNumListAsync(kettoNumList);
3637 });
3738 }
@@ -45,18 +46,21 @@ namespace UmaTest.App.Domain.Model.Logic
4546 {
4647 return Task.Run<Dictionary<string, IEnumerable<ChakudosuuSummary>>>(() =>
4748 {
48- return LogicHelper.tryLogic(async () =>
49+ return LogicHelper.tryLogic(() =>
4950 {
50- Dictionary<string, IEnumerable<ChakudosuuSummary>> res = new Dictionary<string, IEnumerable<ChakudosuuSummary>>();
51+ //Dictionary<string, IEnumerable<ChakudosuuSummary>> res = new Dictionary<string, IEnumerable<ChakudosuuSummary>>();
5152
52- foreach (string kettoNum in kettoNumList)
53- {
54- statusBar.SetStatusText($"血統登録番号: {kettoNum} に紐付くレース着度数情報を集約中です...");
55- IEnumerable<ChakudosuuSummary> summaries = await dao.FindChakudosuuSummaryAsync(kettoNum);
56- res.Add(kettoNum, summaries);
57- }
53+ //foreach (string kettoNum in kettoNumList)
54+ //{
55+ // statusBar.SetStatusText($"血統登録番号: {kettoNum} に紐付くレース着度数情報を集約中です...");
56+ // IEnumerable<ChakudosuuSummary> summaries = await dao.FindChakudosuuSummaryAsync(kettoNum);
57+ // res.Add(kettoNum, summaries);
58+ //}
5859
59- return res;
60+ //return res;
61+
62+ statusBar.SetStatusText("紐付くレース着度数情報を集約中です...");
63+ return dao.FindAllChakudosuuSummariesAsync(kettoNumList);
6064 });
6165 });
6266 }
--- a/App/Domain/Model/Repository/Database/Dao/INUmaRaceDao.cs
+++ b/App/Domain/Model/Repository/Database/Dao/INUmaRaceDao.cs
@@ -7,11 +7,12 @@ namespace UmaTest.App.Domain.Model.Repository.Database.Dao
77 {
88 public interface INUmaRaceDao
99 {
10- Dictionary<string, IEnumerable<NUmaRaceWithNRace>> FindAllRacesByKettoNumList(List<string> kettoNumList);
10+ Dictionary<string, IEnumerable<NUmaRaceInfo>> FindAllRacesByKettoNumList(List<string> kettoNumList);
1111 IEnumerable<ChakudosuuSummary> FindChakudosuuSummary(string kettoNum);
12- Task<Dictionary<string, IEnumerable<NUmaRaceWithNRace>>> FindAllRacesByKettoNumListAsync(List<string> kettoNumList);
12+ Task<Dictionary<string, IEnumerable<NUmaRaceInfo>>> FindAllRacesByKettoNumListAsync(List<string> kettoNumList);
1313 Task<IEnumerable<ChakudosuuSummary>> FindChakudosuuSummaryAsync(string kettoNum);
1414
1515 Task<IEnumerable<NUmaRace>> FindAllRacesBySelectedRaceAsync(NRace race);
16+ Task<Dictionary<string, IEnumerable<ChakudosuuSummary>>> FindAllChakudosuuSummariesAsync(List<string> kettoNumList);
1617 }
1718 }
\ No newline at end of file
--- a/App/Domain/Model/Repository/Database/Dao/NUmaDao.cs
+++ b/App/Domain/Model/Repository/Database/Dao/NUmaDao.cs
@@ -32,9 +32,8 @@ namespace UmaTest.App.Domain.Model.Repository.Database.Dao
3232 {
3333 Dictionary<string, NUma> res = new Dictionary<string, NUma>();
3434
35- string[] bameis = bameiList.ToArray();
3635 var sql = Sql.Builder
37- .Where("bamei in (@bameis)", new { bameis = bameis })
36+ .Where("bamei in (@Bameis)", new { Bameis = bameiList.ToArray() })
3837 .OrderBy("bamei, kettonum desc");
3938
4039 var horses = db.Query<NUma>(sql);
--- a/App/Domain/Model/Repository/Database/Dao/NUmaRaceDao.cs
+++ b/App/Domain/Model/Repository/Database/Dao/NUmaRaceDao.cs
@@ -19,30 +19,85 @@ namespace UmaTest.App.Domain.Model.Repository.Database.Dao
1919 this.db = db;
2020 }
2121
22- public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> FindAllRacesByKettoNumList(List<string> kettoNumList)
22+ public Dictionary<string, IEnumerable<NUmaRaceInfo>> FindAllRacesByKettoNumList(List<string> kettoNumList)
2323 {
2424 return TaskHelper.WaitSingle(FindAllRacesByKettoNumListAsync(kettoNumList));
2525 }
2626
27- public Task<Dictionary<string, IEnumerable<NUmaRaceWithNRace>>> FindAllRacesByKettoNumListAsync(List<string> kettoNumList)
27+ public Task<Dictionary<string, IEnumerable<NUmaRaceInfo>>> FindAllRacesByKettoNumListAsync(List<string> kettoNumList)
2828 {
29- return Task.Run<Dictionary<string, IEnumerable<NUmaRaceWithNRace>>>(() =>
29+ return Task.Run<Dictionary<string, IEnumerable<NUmaRaceInfo>>>(() =>
3030 {
3131 return DbHelper.tryQuery(() =>
3232 {
33- Dictionary<string, IEnumerable<NUmaRaceWithNRace>> res = new Dictionary<string, IEnumerable<NUmaRaceWithNRace>>();
33+ Dictionary<string, IEnumerable<NUmaRaceInfo>> res = new Dictionary<string, IEnumerable<NUmaRaceInfo>>();
3434
35- foreach (string kettoNum in kettoNumList)
35+ //foreach (string kettoNum in kettoNumList)
36+ //{
37+ // var sql = Sql.Builder
38+ // .Append("SELECT ur.*, r.*")
39+ // .From("n_uma_race ur")
40+ // .Append("INNER JOIN n_race r USING(year, jyocd, kaiji, nichiji, racenum)")
41+ // .Where("ur.kettonum = @0", kettoNum)
42+ // .OrderBy("ur.year desc, ur.monthday desc");
43+
44+ // var races = db.Query<NUmaRace, NRace, NUmaRaceInfo>((ur, r) => new NUmaRaceInfo(ur, r), sql);
45+ // res.Add(kettoNum, races);
46+ //}
47+
48+ //foreach (string kettoNum in kettoNumList)
49+ //{
50+ // string sql = "SELECT ur.*, r.*, k.*, c.*, u1.*, u2.* "
51+ // + "FROM n_uma_race ur "
52+ // + "INNER JOIN n_race r USING(year, jyocd, kaiji, nichiji, racenum) "
53+ // + "LEFT JOIN n_kisyu k USING(kisyucode) "
54+ // + "LEFT JOIN n_chokyo c ON ur.chokyosicode = c.chokyosicode "
55+ // + "LEFT JOIN n_uma u1 ON ur.kettonum1 = u1.kettonum "
56+ // + "LEFT JOIN n_uma u2 ON ur.kettonum2 = u2.kettonum "
57+ // + "WHERE ur.kettonum = @0 "
58+ // + "ORDER BY ur.kettonum, ur.year desc, ur.monthday desc";
59+
60+ // Func<NUmaRace, NRace, NKisyu, NChokyo, NUma, NUma, NUmaRaceInfo> mapper =
61+ // (ur, r, k, c, u1, u2) => new NUmaRaceInfo(ur, r, k, c, u1, u2);
62+
63+ // Type[] mapTypes = new Type[] { typeof(NUmaRace), typeof(NRace), typeof(NKisyu),
64+ // typeof(NChokyo), typeof(NUma), typeof(NUma) };
65+
66+ // IEnumerable<NUmaRaceInfo> races = db.Query<NUmaRaceInfo>(mapTypes, mapper, sql, kettoNum);
67+
68+ // res.Add(kettoNum, races.ToList());
69+ //}
70+
71+ string sql = "SELECT ur.*, r.*, k.*, c.*, h1.*, h5.* "
72+ + "FROM n_uma_race ur "
73+ + "INNER JOIN n_uma u USING(kettonum) "
74+ + "INNER JOIN n_race r USING(year, jyocd, kaiji, nichiji, racenum) "
75+ + "LEFT JOIN n_kisyu k USING(kisyucode) "
76+ + "LEFT JOIN n_chokyo c ON ur.chokyosicode = c.chokyosicode "
77+ + "LEFT JOIN n_hansyoku h1 ON u.ketto3infohansyokunum1 = h1.hansyokunum "
78+ + "LEFT JOIN n_hansyoku h5 ON u.ketto3infohansyokunum5 = h5.hansyokunum "
79+ + "WHERE ur.kettonum in (@KettoNums) "
80+ + "ORDER BY ur.kettonum, ur.year desc, ur.monthday desc";
81+
82+ Func<NUmaRace, NRace, NKisyu, NChokyo, NHansyoku, NHansyoku, NUmaRaceInfo> mapper =
83+ (ur, r, k, c, h1, h5) => new NUmaRaceInfo(ur, r, k, c, h1, h5);
84+
85+ Type[] mapTypes = new Type[] { typeof(NUmaRace), typeof(NRace), typeof(NKisyu),
86+ typeof(NChokyo), typeof(NHansyoku), typeof(NHansyoku) };
87+
88+ IEnumerable<NUmaRaceInfo> races = db.Query<NUmaRaceInfo>(
89+ mapTypes, mapper, sql, new { KettoNums = kettoNumList.ToArray() });
90+
91+ foreach (NUmaRaceInfo race in races)
3692 {
37- var sql = Sql.Builder
38- .Append("SELECT ur.*, r.*")
39- .From("n_uma_race ur")
40- .Append("INNER JOIN n_race r USING(year, jyocd, kaiji, nichiji, racenum)")
41- .Where("ur.kettonum = @0", kettoNum)
42- .OrderBy("ur.year desc, ur.monthday desc");
43-
44- var races = db.Query<NUmaRace, NRace, NUmaRaceWithNRace>((ur, r) => new NUmaRaceWithNRace(ur, r), sql);
45- res.Add(kettoNum, races);
93+ string kettoNum = race.Kettonum;
94+ if (!res.TryGetValue(kettoNum, out IEnumerable<NUmaRaceInfo> splitRaces))
95+ {
96+ splitRaces = new List<NUmaRaceInfo>();
97+ res.Add(kettoNum, splitRaces);
98+ }
99+
100+ ((List<NUmaRaceInfo>)splitRaces).Add(race);
46101 }
47102
48103 return res;
@@ -83,5 +138,37 @@ namespace UmaTest.App.Domain.Model.Repository.Database.Dao
83138 });
84139 });
85140 }
141+
142+ public Task<Dictionary<string, IEnumerable<ChakudosuuSummary>>> FindAllChakudosuuSummariesAsync(List<string> kettoNumList)
143+ {
144+ return Task.Run<Dictionary<string, IEnumerable<ChakudosuuSummary>>>(() =>
145+ {
146+ return DbHelper.tryQuery(() =>
147+ {
148+ Dictionary<string, IEnumerable<ChakudosuuSummary>> res = new Dictionary<string, IEnumerable<ChakudosuuSummary>>();
149+
150+ string sql = DbHelper.GetResourceSQLFile(this);
151+
152+ IEnumerable<ChakudosuuSummary> summaries = db.Query<ChakudosuuSummary>(sql, new { KettoNums = kettoNumList.ToArray() });
153+
154+ foreach (ChakudosuuSummary summary in summaries)
155+ {
156+ string kettoNum = summary.KettoNum;
157+
158+ //statusBar.SetStatusText($"血統登録番号: {kettoNum} に紐付くレース着度数情報を集約中です...");
159+
160+ if (!res.TryGetValue(kettoNum, out IEnumerable<ChakudosuuSummary> splitSummary))
161+ {
162+ splitSummary = new List<ChakudosuuSummary>();
163+ res.Add(kettoNum, splitSummary);
164+ }
165+
166+ ((List<ChakudosuuSummary>)splitSummary).Add(summary);
167+ }
168+
169+ return res;
170+ });
171+ });
172+ }
86173 }
87174 }
--- a/App/Domain/Model/Repository/Database/Dto/ChakudosuuSummary.cs
+++ b/App/Domain/Model/Repository/Database/Dto/ChakudosuuSummary.cs
@@ -9,6 +9,9 @@ namespace UmaTest.App.Domain.Model.Repository.Database.Dto
99 {
1010 public class ChakudosuuSummary
1111 {
12+ [Column(Name = "kettonum")]
13+ public String KettoNum { get; set; }
14+
1215 [Column(Name = "key1")]
1316 public String Key1 { get; set; }
1417
@@ -26,7 +29,7 @@ namespace UmaTest.App.Domain.Model.Repository.Database.Dto
2629
2730 public override string ToString()
2831 {
29- return $"ChakudosuuSummary[key1={Key1}, key2={Key2}, key3={Key3}, chakudosuu={Chakudosuu}, ijou={Ijou}]";
32+ return $"ChakudosuuSummary[kettonum={KettoNum}, key1={Key1}, key2={Key2}, key3={Key3}, chakudosuu={Chakudosuu}, ijou={Ijou}]";
3033 }
3134 }
3235 }
\ No newline at end of file
--- a/App/Domain/Model/Repository/Database/Dto/NUmaRaceWithNRace.cs
+++ b/App/Domain/Model/Repository/Database/Dto/NUmaRaceInfo.cs
@@ -9,13 +9,13 @@ using UmaTest.App.Domain.Model.Repository.Database.Entity.EveryDB2;
99
1010 namespace UmaTest.App.Domain.Model.Repository.Database.Dto
1111 {
12- public class NUmaRaceWithNRace : NUmaRace
12+ public class NUmaRaceInfo : NUmaRace
1313 {
14- public NUmaRaceWithNRace()
14+ public NUmaRaceInfo()
1515 {
1616 }
1717
18- public NUmaRaceWithNRace(NUmaRace ur, NRace r)
18+ public NUmaRaceInfo(NUmaRace ur, NRace r, NKisyu kisyu, NChokyo chokyo, NHansyoku chichi, NHansyoku hahachichi)
1919 {
2020 BeanHelper.Copy(this, ur);
2121 Race = r;
--- a/App/Domain/Translator/ILoadManualUmaListTranslator.cs
+++ b/App/Domain/Translator/ILoadManualUmaListTranslator.cs
@@ -12,7 +12,7 @@ namespace UmaTest.App.Domain.Translator
1212 LoadManualUmaListResponse res, LoadManualUmaListRequest req,
1313 List<string> kettoNums,
1414 Dictionary<string, NUma> horses,
15- Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races,
15+ Dictionary<string, IEnumerable<NUmaRaceInfo>> races,
1616 Dictionary<string, IEnumerable<ChakudosuuSummary>> summaries);
1717 }
1818 }
\ No newline at end of file
--- a/App/Domain/Translator/ILoadSelectedRaceUmaListTranslator.cs
+++ b/App/Domain/Translator/ILoadSelectedRaceUmaListTranslator.cs
@@ -14,7 +14,7 @@ namespace UmaTest.App.Domain.Translator
1414 AsyncLoadSelectedRaceUmaListRequest req,
1515 List<string> kettoNums,
1616 IEnumerable<NUmaRace> horses,
17- Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races,
17+ Dictionary<string, IEnumerable<NUmaRaceInfo>> races,
1818 Dictionary<string, IEnumerable<ChakudosuuSummary>> summaries);
1919 }
2020 }
\ No newline at end of file
--- a/App/Domain/Translator/ILoadTokuUmaListTranslator.cs
+++ b/App/Domain/Translator/ILoadTokuUmaListTranslator.cs
@@ -12,7 +12,7 @@ namespace UmaTest.App.Domain.Translator
1212 AsyncLoadTokuUmaListResponse res, AsyncLoadTokuUmaListRequest req,
1313 List<string> kettoNums,
1414 Dictionary<string, NToku> horses,
15- Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races,
15+ Dictionary<string, IEnumerable<NUmaRaceInfo>> races,
1616 Dictionary<string, IEnumerable<ChakudosuuSummary>> summaries);
1717 }
1818 }
\ No newline at end of file
--- a/App/Domain/Translator/LoadManualUmaListTranslator.cs
+++ b/App/Domain/Translator/LoadManualUmaListTranslator.cs
@@ -17,7 +17,7 @@ namespace UmaTest.App.Domain.Translator
1717 LoadManualUmaListResponse res, LoadManualUmaListRequest req,
1818 List<string> kettoNums,
1919 Dictionary<string, NUma> horses,
20- Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races,
20+ Dictionary<string, IEnumerable<NUmaRaceInfo>> races,
2121 Dictionary<string, IEnumerable<ChakudosuuSummary>> summaries)
2222 {
2323
--- a/App/Domain/Translator/LoadSelectedRaceUmaListTranslator.cs
+++ b/App/Domain/Translator/LoadSelectedRaceUmaListTranslator.cs
@@ -18,7 +18,7 @@ namespace UmaTest.App.Domain.Translator
1818 AsyncLoadSelectedRaceUmaListRequest req,
1919 List<string> kettoNums,
2020 IEnumerable<NUmaRace> horses,
21- Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races,
21+ Dictionary<string, IEnumerable<NUmaRaceInfo>> races,
2222 Dictionary<string, IEnumerable<ChakudosuuSummary>> summaries)
2323 {
2424 res.KettoNums = kettoNums;
--- a/App/Domain/Translator/LoadTokuUmaListTranslator.cs
+++ b/App/Domain/Translator/LoadTokuUmaListTranslator.cs
@@ -17,7 +17,7 @@ namespace UmaTest.App.Domain.Translator
1717 AsyncLoadTokuUmaListResponse res, AsyncLoadTokuUmaListRequest req,
1818 List<string> kettoNums,
1919 Dictionary<string, NToku> horses,
20- Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races,
20+ Dictionary<string, IEnumerable<NUmaRaceInfo>> races,
2121 Dictionary<string, IEnumerable<ChakudosuuSummary>> summaries)
2222 {
2323
--- a/App/Domain/UseCase/Interactor/AsyncLoadManualUmaListInteractor.cs
+++ b/App/Domain/UseCase/Interactor/AsyncLoadManualUmaListInteractor.cs
@@ -65,7 +65,7 @@ namespace UmaTest.App.Domain.UseCase.Interactor
6565
6666 statusBarProxy.SetStatusText("馬に紐付くレース情報を読み込んでいます...");
6767
68- Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races = await logicUmaRace.LoadRacesByKettoNumListAsync(kettoNums);
68+ Dictionary<string, IEnumerable<NUmaRaceInfo>> races = await logicUmaRace.LoadRacesByKettoNumListAsync(kettoNums);
6969
7070 statusBarProxy.SetStatusText("馬に紐付く着度数情報を読み込んでいます...");
7171
--- a/App/Domain/UseCase/Interactor/AsyncLoadSelectedRaceUmaListInteractor.cs
+++ b/App/Domain/UseCase/Interactor/AsyncLoadSelectedRaceUmaListInteractor.cs
@@ -41,7 +41,7 @@ namespace UmaTest.App.Domain.UseCase.Interactor
4141
4242 statusBarProxy.SetStatusText("馬に紐付くレース情報を読み込んでいます...");
4343
44- Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races = await logicUmaRace.LoadRacesByKettoNumListAsync(kettoNums);
44+ Dictionary<string, IEnumerable<NUmaRaceInfo>> races = await logicUmaRace.LoadRacesByKettoNumListAsync(kettoNums);
4545
4646 statusBarProxy.SetStatusText("馬に紐付く着度数情報を読み込んでいます...");
4747
--- a/App/Domain/UseCase/Interactor/AsyncLoadTokuUmaListInteractor.cs
+++ b/App/Domain/UseCase/Interactor/AsyncLoadTokuUmaListInteractor.cs
@@ -43,7 +43,7 @@ namespace UmaTest.App.Domain.UseCase.Interactor
4343
4444 statusBarProxy.SetStatusText("馬に紐付くレース情報を読み込んでいます...");
4545
46- Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races = await logicUmaRace.LoadRacesByKettoNumListAsync(kettoNums);
46+ Dictionary<string, IEnumerable<NUmaRaceInfo>> races = await logicUmaRace.LoadRacesByKettoNumListAsync(kettoNums);
4747
4848 statusBarProxy.SetStatusText("馬に紐付く着度数情報を読み込んでいます...");
4949
--- a/App/Domain/UseCase/Interactor/LoadManualUmaListInteractor.cs
+++ b/App/Domain/UseCase/Interactor/LoadManualUmaListInteractor.cs
@@ -41,7 +41,7 @@ namespace UmaTest.App.Domain.UseCase.Interactor
4141
4242 List<string> kettoNums = horses.Select(h => h.Value.Kettonum).OrderBy(k => k).ToList();
4343
44- Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races = logicUmaRace.LoadRacesByKettoNumList(kettoNums);
44+ Dictionary<string, IEnumerable<NUmaRaceInfo>> races = logicUmaRace.LoadRacesByKettoNumList(kettoNums);
4545 Dictionary<string, IEnumerable<ChakudosuuSummary>> summaries = logicUmaRace.LoadChakudosuuSummaries(kettoNums);
4646
4747 return translator.Translate(res, req, kettoNums, horses, races, summaries);
--- a/App/Domain/UseCase/Response/AsyncLoadSelectedRaceUmaListResponse.cs
+++ b/App/Domain/UseCase/Response/AsyncLoadSelectedRaceUmaListResponse.cs
@@ -18,7 +18,7 @@ namespace UmaTest.App.Domain.UseCase.Response
1818
1919 public List<string> KettoNums { get; set; }
2020 public IEnumerable<NUmaRace> Horses { get; set; }
21- public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> Races { get; set; }
21+ public Dictionary<string, IEnumerable<NUmaRaceInfo>> Races { get; set; }
2222 public Dictionary<string, IEnumerable<ChakudosuuSummary>> Summaries { get; set; }
2323 }
2424 }
--- a/App/Domain/UseCase/Response/AsyncLoadTokuUmaListResponse.cs
+++ b/App/Domain/UseCase/Response/AsyncLoadTokuUmaListResponse.cs
@@ -18,7 +18,7 @@ namespace UmaTest.App.Domain.UseCase.Response
1818
1919 public List<string> KettoNums { get; set; }
2020 public Dictionary<string, NToku> Horses { get; set; }
21- public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> Races { get; set; }
21+ public Dictionary<string, IEnumerable<NUmaRaceInfo>> Races { get; set; }
2222 public Dictionary<string, IEnumerable<ChakudosuuSummary>> Summaries { get; set; }
2323 }
2424 }
--- a/App/Domain/UseCase/Response/LoadManualUmaListResponse.cs
+++ b/App/Domain/UseCase/Response/LoadManualUmaListResponse.cs
@@ -17,7 +17,7 @@ namespace UmaTest.App.Domain.UseCase.Response
1717
1818 public List<string> KettoNums { get; set; }
1919 public Dictionary<string, NUma> Horses { get; set; }
20- public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> Races { get; set; }
20+ public Dictionary<string, IEnumerable<NUmaRaceInfo>> Races { get; set; }
2121 public Dictionary<string, IEnumerable<ChakudosuuSummary>> Summaries { get; set; }
2222 }
2323 }
--- a/App/Presentation/View/MainWindow.cs
+++ b/App/Presentation/View/MainWindow.cs
@@ -94,6 +94,11 @@ namespace UmaTest.App.Presentation.View
9494 },
9595 new DataGridViewTextBoxColumn
9696 {
97+ DataPropertyName = "SenSuu",
98+ Name = "戦数",
99+ },
100+ new DataGridViewTextBoxColumn
101+ {
97102 DataPropertyName = "Short.G1",
98103 Name = "短G1",
99104 },
@@ -285,8 +290,8 @@ namespace UmaTest.App.Presentation.View
285290 typeof(UmaSummaryRowDto)
286291 );
287292 TypeDescriptor.AddProvider(
288- new NestedTypeDescriptionProvider<NRace>(TypeDescriptor.GetProvider(typeof(NUmaRaceWithNRace))),
289- typeof(NUmaRaceWithNRace)
293+ new NestedTypeDescriptionProvider<NRace>(TypeDescriptor.GetProvider(typeof(NUmaRaceInfo))),
294+ typeof(NUmaRaceInfo)
290295 );
291296
292297 //
--- a/Properties/Resources.Designer.cs
+++ b/Properties/Resources.Designer.cs
@@ -62,6 +62,31 @@ namespace UmaTest.Properties {
6262
6363 /// <summary>
6464 /// select
65+ /// kettonum
66+ /// , kyori as key1
67+ /// , gradecd as key2
68+ /// , to_char(sum(jyuni1), &apos;FM99&apos;) || &apos;.&apos; || to_char(sum(jyuni2), &apos;FM99&apos;) || &apos;.&apos;
69+ /// || to_char(sum(jyuni3), &apos;FM99&apos;) || &apos;.&apos; || to_char(sum(jyuni4ika), &apos;FM99&apos;) as chakudosuu
70+ /// , sum(ijou) as ijou
71+ ///from (
72+ ///select
73+ /// kettonum
74+ /// , case
75+ /// when r.kyori &gt;= &apos;2800&apos; then &apos;5LONG&apos;
76+ /// when r.kyori &gt;= &apos;2200&apos; then &apos;4MIDDLELONG&apos;
77+ /// when r.kyori &gt;= &apos;1800&apos; then &apos;3MIDDLE&apos;
78+ /// when r.kyori &gt;= &apos;1400&apos; then &apos;2MILE&apos;
79+ /// else &apos;1SHORT&apos;
80+ /// end as kyori [残りの文字列は切り詰められました]&quot;; に類似しているローカライズされた文字列を検索します。
81+ /// </summary>
82+ internal static string NUmaRaceDao_FindAllChakudosuuSummariesAsync {
83+ get {
84+ return ResourceManager.GetString("NUmaRaceDao_FindAllChakudosuuSummariesAsync", resourceCulture);
85+ }
86+ }
87+
88+ /// <summary>
89+ /// select
6590 /// kyori as key1
6691 /// , gradecd as key2
6792 /// , to_char(sum(jyuni1), &apos;FM99&apos;) || &apos;.&apos; || to_char(sum(jyuni2), &apos;FM99&apos;) || &apos;.&apos;
--- a/Properties/Resources.resx
+++ b/Properties/Resources.resx
@@ -118,6 +118,9 @@
118118 <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119 </resheader>
120120 <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
121+ <data name="NUmaRaceDao_FindAllChakudosuuSummariesAsync" type="System.Resources.ResXFileRef, System.Windows.Forms">
122+ <value>..\resources\sql\numaracedao_findallchakudosuusummariesasync.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;shift_jis</value>
123+ </data>
121124 <data name="NUmaRaceDao_FindChakudosuuSummary" type="System.Resources.ResXFileRef, System.Windows.Forms">
122125 <value>..\resources\sql\numaracedao_findchakudosuusummary.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;shift_jis</value>
123126 </data>
--- /dev/null
+++ b/Resources/Sql/NUmaRaceDao_FindAllChakudosuuSummariesAsync.sql
@@ -0,0 +1,35 @@
1+select
2+ kettonum
3+ , kyori as key1
4+ , gradecd as key2
5+ , to_char(sum(jyuni1), 'FM99') || '.' || to_char(sum(jyuni2), 'FM99') || '.'
6+ || to_char(sum(jyuni3), 'FM99') || '.' || to_char(sum(jyuni4ika), 'FM99') as chakudosuu
7+ , sum(ijou) as ijou
8+from (
9+select
10+ kettonum
11+ , case
12+ when r.kyori >= '2800' then '5LONG'
13+ when r.kyori >= '2200' then '4MIDDLELONG'
14+ when r.kyori >= '1800' then '3MIDDLE'
15+ when r.kyori >= '1400' then '2MILE'
16+ else '1SHORT'
17+ end as kyori
18+ , case r.gradecd when 'A' then 'G1' when 'B' then 'G2' when 'C' then 'G3' else 'ZZ' end as gradecd
19+ , case when ur.kakuteijyuni = '01' then 1 else 0 end as jyuni1
20+ , case when ur.kakuteijyuni = '02' then 1 else 0 end as jyuni2
21+ , case when ur.kakuteijyuni = '03' then 1 else 0 end as jyuni3
22+ , case when ur.kakuteijyuni > '03' then 1 else 0 end as jyuni4ika
23+ , case when ur.kakuteijyuni = '00' then 1 else 0 end as ijou
24+from
25+ n_uma_race ur
26+ inner join n_race r
27+ using (year, jyocd, kaiji, nichiji, racenum)
28+where
29+ ur.kettonum in (@KettoNums)
30+ /* and to_date(ur.year || ur.monthday, 'YYYYMMDD') > (select max(to_date(ur2.year || ur2.monthday, 'YYYYMMDD')) from n_uma_race ur2 where ur.bamei = ur2.bamei) - INTERVAL '1 year' */
31+) v
32+group by
33+ kettonum, kyori, gradecd
34+order by
35+ kettonum, kyori, gradecd
--- a/ToDo.txt
+++ b/ToDo.txt
@@ -1,2 +1,3 @@
11 Controller→InfraとAppで分割、Abstract化?
22 requestにrequestScope用のdictionaryを追加、translatorに個別引数で渡す方法から変更
3+daoでdictionaryを生成している処理をlogicかtranslatorまでpullup
\ No newline at end of file
--- a/UmaTest.csproj
+++ b/UmaTest.csproj
@@ -231,7 +231,7 @@
231231 <Compile Include="Infra\Domain\DaoException.cs" />
232232 <Compile Include="App\Domain\Model\Repository\Database\Dao\NUmaRaceDao.cs" />
233233 <Compile Include="App\Domain\Model\Repository\Database\Dto\ChakudosuuSummary.cs" />
234- <Compile Include="App\Domain\Model\Repository\Database\Dto\NUmaRaceWithNRace.cs" />
234+ <Compile Include="App\Domain\Model\Repository\Database\Dto\NUmaRaceInfo.cs" />
235235 <Compile Include="App\Domain\Model\Repository\Database\Entity\EveryDB2.cs" />
236236 <Compile Include="Infra\Adaptor\Gateway\UI\DlgInfo.cs" />
237237 <Compile Include="Infra\Adaptor\Gateway\UI\IUserDialogProxy.cs" />
@@ -317,6 +317,7 @@
317317 <Content Include="Infra\Adaptor\Command\README.txt" />
318318 <EmbeddedResource Include="Resources\Sql\NUmaRaceDao_FindChakudosuuSummary.sql" />
319319 <EmbeddedResource Include="Resources\Sql\NUmaRaceDao_FindChakudosuuSummaryAsync.sql" />
320+ <EmbeddedResource Include="Resources\Sql\NUmaRaceDao_FindAllChakudosuuSummariesAsync.sql" />
320321 <Content Include="ToDo.txt" />
321322 </ItemGroup>
322323 <ItemGroup />