EveryDB2のデータベースを読み込んでWinFormでGUI表示するサンプル
修订版 | 219a774e32c68d7af05b6afd4be7e29ff2094468 (tree) |
---|---|
时间 | 2021-05-27 14:57:15 |
作者 | yoshy <yoshy@user...> |
Commiter | yoshy |
temp_20210527_1457
@@ -1,17 +1,20 @@ | ||
1 | -using System.ComponentModel; | |
1 | +using System; | |
2 | +using System.Collections.Generic; | |
3 | +using System.ComponentModel; | |
2 | 4 | using UmaTest.App.Adaptor.Gateway.ViewModel.Dto; |
3 | -using UmaTest.App.Repository.Database.Dto; | |
4 | -using UmaTest.App.Repository.Database.Entity.EveryDB2; | |
5 | 5 | using UmaTest.Infra.Command; |
6 | 6 | |
7 | 7 | namespace UmaTest.App.Presentation.ViewModel |
8 | 8 | { |
9 | 9 | public interface IMainWindowViewModel |
10 | 10 | { |
11 | - BindingList<UmaSummaryRowDto> UmaSummaryList { get; set; } | |
12 | 11 | ICommand CommandReadHorseList { get; } |
12 | + EventHandler EventSelectedHorseChanged { get; } | |
13 | 13 | BindingList<UmaRaceRowDto> RaceList { get; set; } |
14 | + BindingList<UmaSummaryRowDto> UmaSummaryList { get; set; } | |
14 | 15 | |
15 | 16 | event PropertyChangedEventHandler PropertyChanged; |
17 | + | |
18 | + void RefreshModel(List<UmaSummaryRowDto> umaSummaryList, Dictionary<string, List<UmaRaceRowDto>> umaRaceMap); | |
16 | 19 | } |
17 | 20 | } |
\ No newline at end of file |
@@ -4,6 +4,7 @@ using System.ComponentModel; | ||
4 | 4 | using System.Drawing; |
5 | 5 | using System.Drawing.Imaging; |
6 | 6 | using System.IO; |
7 | +using System.Windows.Forms; | |
7 | 8 | using System.Windows.Input; |
8 | 9 | using UmaTest.App.Adaptor.Gateway.ViewModel.Dto; |
9 | 10 | using UmaTest.App.Domain.UseCase.Request; |
@@ -12,6 +13,7 @@ using UmaTest.App.Presentation.Controller; | ||
12 | 13 | using UmaTest.App.Repository.Database.Dto; |
13 | 14 | using UmaTest.App.Repository.Database.Entity.EveryDB2; |
14 | 15 | using UmaTest.Infra.Command; |
16 | +using UmaTest.Infra.Log; | |
15 | 17 | using ICommand = UmaTest.Infra.Command.ICommand; |
16 | 18 | |
17 | 19 | namespace UmaTest.App.Presentation.ViewModel |
@@ -20,17 +22,25 @@ namespace UmaTest.App.Presentation.ViewModel | ||
20 | 22 | { |
21 | 23 | public event PropertyChangedEventHandler PropertyChanged; |
22 | 24 | |
25 | + public EventHandler EventSelectedHorseChanged { get; private set; } | |
26 | + | |
27 | + public ICommand CommandReadHorseList { get; private set; } | |
28 | + | |
23 | 29 | private IWindowController wc; |
24 | 30 | |
25 | - BindingList<UmaSummaryRowDto> _chakudosuuList = new BindingList<UmaSummaryRowDto>(); | |
31 | + private BindingList<UmaSummaryRowDto> _chakudosuuList = new BindingList<UmaSummaryRowDto>(); | |
26 | 32 | |
27 | - BindingList<UmaRaceRowDto> _raceList = new BindingList<UmaRaceRowDto>(); | |
33 | + private BindingList<UmaRaceRowDto> _raceList = new BindingList<UmaRaceRowDto>(); | |
34 | + | |
35 | + private List<UmaSummaryRowDto> _umaSummaryList = null; | |
36 | + private Dictionary<string, List<UmaRaceRowDto>> _umaRaceMap = null; | |
28 | 37 | |
29 | 38 | public MainWindowViewModel(IWindowController wc) |
30 | 39 | { |
31 | 40 | this.wc = wc; |
32 | 41 | |
33 | 42 | CommandReadHorseList = new DelegateCommand("Read Horse List (&R)", () => true, OnReadHorseList); |
43 | + EventSelectedHorseChanged = new EventHandler(OnSelectedHorseChanged); | |
34 | 44 | } |
35 | 45 | |
36 | 46 | public BindingList<UmaSummaryRowDto> UmaSummaryList |
@@ -45,13 +55,52 @@ namespace UmaTest.App.Presentation.ViewModel | ||
45 | 55 | set => PropertyChanged.RaiseIfSet(() => RaceList, ref _raceList, value); |
46 | 56 | } |
47 | 57 | |
48 | - public ICommand CommandReadHorseList { get; private set; } | |
58 | + public void RefreshModel(List<UmaSummaryRowDto> umaSummaryList, Dictionary<string, List<UmaRaceRowDto>> umaRaceMap) | |
59 | + { | |
60 | + _umaSummaryList = umaSummaryList; | |
61 | + _umaRaceMap = umaRaceMap; | |
62 | + | |
63 | + UmaSummaryList = new BindingList<UmaSummaryRowDto>(umaSummaryList); | |
49 | 64 | |
65 | + if (UmaSummaryList.Count > 0) | |
66 | + { | |
67 | + ChangeRaceList(0); | |
68 | + } | |
69 | + } | |
50 | 70 | private void OnReadHorseList() |
51 | 71 | { |
52 | 72 | LoadHorseRaceSummaryRequest req = new LoadHorseRaceSummaryRequest("アドマイヤハダル\nエフフォーリア\nグラティアス\nグレートマジシャン\nサトノレイナス\nシャフリヤール\nステラヴェローチェ\nタイトルホルダー\nタイムトゥヘヴン\nダノンザキッド\nディープモンスター\nバジオウ\nバスラットレオン\nヨーホーレイク\nラーゴム\nレッドジェネシス\nワンダフルタウン\nヴィクティファルス\n"); |
53 | 73 | |
54 | 74 | LoadHorseRaceSummaryResponse res = wc.Execute(req) as LoadHorseRaceSummaryResponse; |
55 | 75 | } |
76 | + | |
77 | + private void OnSelectedHorseChanged(object sender, EventArgs e) | |
78 | + { | |
79 | + DataGridView dgv = sender as DataGridView; | |
80 | + | |
81 | + var selected = dgv.SelectedRows; | |
82 | + | |
83 | + Logger.Debug($"OnSelectedHorseChanged: count - {selected.Count}"); | |
84 | + | |
85 | + if (selected.Count == 0) | |
86 | + { | |
87 | + return; | |
88 | + } | |
89 | + | |
90 | + Logger.Debug($"OnSelectedHorseChanged: index - {selected[0].Index}"); | |
91 | + | |
92 | + ChangeRaceList(selected[0].Index); | |
93 | + } | |
94 | + | |
95 | + private void ChangeRaceList(int index) | |
96 | + { | |
97 | + if (_umaRaceMap != null) | |
98 | + { | |
99 | + if (_umaRaceMap.TryGetValue(_umaSummaryList[index].Kettonum, out List<UmaRaceRowDto> umaRaceList)) | |
100 | + { | |
101 | + RaceList = new BindingList<UmaRaceRowDto>(umaRaceList); | |
102 | + } | |
103 | + } | |
104 | + } | |
56 | 105 | } |
57 | 106 | } |
@@ -30,26 +30,28 @@ namespace UmaTest.App.Presentation.Presenter | ||
30 | 30 | LoadHorseRaceSummaryRequest req = baseRes.Request as LoadHorseRaceSummaryRequest; |
31 | 31 | LoadHorseRaceSummaryResponse res = baseRes as LoadHorseRaceSummaryResponse; |
32 | 32 | |
33 | - List<string> bameiList = res.Bameis; | |
33 | + List<string> kettoNums = res.KettoNums; | |
34 | 34 | |
35 | - vm.UmaSummaryList.Clear(); | |
36 | - vm.RaceList.Clear(); | |
35 | + List<UmaSummaryRowDto> umaSummaryList = new List<UmaSummaryRowDto>(); | |
36 | + Dictionary<string, List<UmaRaceRowDto>> umaRaceMap = new Dictionary<string, List<UmaRaceRowDto>>(); | |
37 | 37 | |
38 | - foreach (string bamei in bameiList) | |
38 | + // TODO 変換処理をtranslatorに委譲 | |
39 | + | |
40 | + foreach (string kettoNum in kettoNums) | |
39 | 41 | { |
40 | - Logger.Info($"馬名: {bamei}"); | |
42 | + Logger.Info($"血統登録番号: {kettoNum}"); | |
41 | 43 | |
42 | 44 | UmaSummaryRowDto summaryDto; |
43 | 45 | |
44 | - if (!res.Horses.TryGetValue(bamei, out NUma uma)) | |
46 | + if (!res.Horses.TryGetValue(kettoNum, out NUma uma)) | |
45 | 47 | { |
46 | - Logger.Warn($"馬名: {bamei} の馬情報が見つかりませんでした"); | |
48 | + Logger.Warn($"血統登録番号: {kettoNum} の馬情報が見つかりませんでした"); | |
47 | 49 | continue; |
48 | 50 | } |
49 | 51 | |
50 | 52 | summaryDto = new UmaSummaryRowDto(uma); |
51 | 53 | |
52 | - foreach (ChakudosuuSummary chakudosuu in res.Summaries[bamei]) | |
54 | + foreach (ChakudosuuSummary chakudosuu in res.Summaries[kettoNum]) | |
53 | 55 | { |
54 | 56 | ChakudosuuByGradeRowDto chakudosuuByGrade; |
55 | 57 |
@@ -114,30 +116,29 @@ namespace UmaTest.App.Presentation.Presenter | ||
114 | 116 | |
115 | 117 | Logger.Debug(summaryDto.ToString()); |
116 | 118 | |
117 | - vm.UmaSummaryList.Add(summaryDto); | |
118 | - } | |
119 | + umaSummaryList.Add(summaryDto); | |
119 | 120 | |
120 | - if (vm.UmaSummaryList.Count == 0) | |
121 | - { | |
122 | - return res; | |
123 | - } | |
121 | + if (!res.Races.TryGetValue(kettoNum, out IEnumerable<NUmaRaceWithNRace> umaRaces) || (umaRaces.Count() == 0)) | |
122 | + { | |
123 | + Logger.Warn($"血統登録番号: {kettoNum} の馬レース情報が見つかりませんでした"); | |
124 | + return res; | |
125 | + } | |
124 | 126 | |
125 | - string bamei2 = vm.UmaSummaryList[0].Bamei; | |
127 | + List<UmaRaceRowDto> umaRaceList = new List<UmaRaceRowDto>(); | |
126 | 128 | |
127 | - if (!res.Races.TryGetValue(bamei2, out IEnumerable<NUmaRaceWithNRace> umaRaces) || (umaRaces.Count() == 0)) | |
128 | - { | |
129 | - Logger.Warn($"馬名: {bamei2} の馬レース情報が見つかりませんでした"); | |
130 | - return res; | |
131 | - } | |
129 | + foreach (NUmaRaceWithNRace umaRace in umaRaces) | |
130 | + { | |
131 | + NRace detail = umaRace.Race; | |
132 | + 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}"); | |
132 | 133 | |
133 | - foreach (NUmaRaceWithNRace umaRace in umaRaces) | |
134 | - { | |
135 | - NRace detail = umaRace.Race; | |
136 | - 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}"); | |
134 | + umaRaceList.Add(new UmaRaceRowDto(umaRace)); | |
135 | + } | |
137 | 136 | |
138 | - vm.RaceList.Add(new UmaRaceRowDto(umaRace)); | |
137 | + umaRaceMap.Add(kettoNum, umaRaceList); | |
139 | 138 | } |
140 | 139 | |
140 | + vm.RefreshModel(umaSummaryList, umaRaceMap); | |
141 | + | |
141 | 142 | return res; |
142 | 143 | } |
143 | 144 | } |
@@ -5,7 +5,7 @@ namespace UmaTest.App.Domain.Model | ||
5 | 5 | { |
6 | 6 | public interface IUmaRaceLogic |
7 | 7 | { |
8 | - Dictionary<string, IEnumerable<ChakudosuuSummary>> LoadChakudosuuSummaries(List<string> bameiList); | |
9 | - Dictionary<string, IEnumerable<NUmaRaceWithNRace>> LoadRaces(List<string> bameiList); | |
8 | + Dictionary<string, IEnumerable<ChakudosuuSummary>> LoadChakudosuuSummaries(List<string> kettoNumList); | |
9 | + Dictionary<string, IEnumerable<NUmaRaceWithNRace>> LoadRaces(List<string> kettoNumList); | |
10 | 10 | } |
11 | 11 | } |
\ No newline at end of file |
@@ -18,23 +18,23 @@ namespace UmaTest.App.Domain.Model | ||
18 | 18 | this.dao = dao; |
19 | 19 | } |
20 | 20 | |
21 | - public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> LoadRaces(List<string> bameiList) | |
21 | + public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> LoadRaces(List<string> kettoNumList) | |
22 | 22 | { |
23 | 23 | return LogicHelper.tryLogic(() => |
24 | 24 | { |
25 | - return dao.findAllUmaRacesByBameiList(bameiList); | |
25 | + return dao.findAllRacesByKettoNumList(kettoNumList); | |
26 | 26 | }); |
27 | 27 | } |
28 | 28 | |
29 | - public Dictionary<string, IEnumerable<ChakudosuuSummary>> LoadChakudosuuSummaries(List<string> bameiList) | |
29 | + public Dictionary<string, IEnumerable<ChakudosuuSummary>> LoadChakudosuuSummaries(List<string> kettoNumList) | |
30 | 30 | { |
31 | 31 | return LogicHelper.tryLogic(() => |
32 | 32 | { |
33 | 33 | Dictionary<string, IEnumerable<ChakudosuuSummary>> res = new Dictionary<string, IEnumerable<ChakudosuuSummary>>(); |
34 | 34 | |
35 | - foreach (string bamei in bameiList) | |
35 | + foreach (string bamei in kettoNumList) | |
36 | 36 | { |
37 | - IEnumerable<ChakudosuuSummary> summaries = dao.findRaceSummary(bamei); | |
37 | + IEnumerable<ChakudosuuSummary> summaries = dao.findChakudosuuSummary(bamei); | |
38 | 38 | res.Add(bamei, summaries); |
39 | 39 | } |
40 | 40 |
@@ -5,7 +5,7 @@ namespace UmaTest.App.Repository.Database.Dao | ||
5 | 5 | { |
6 | 6 | public interface INUmaRaceDao |
7 | 7 | { |
8 | - Dictionary<string, IEnumerable<NUmaRaceWithNRace>> findAllUmaRacesByBameiList(List<string> bameiList); | |
9 | - IEnumerable<ChakudosuuSummary> findRaceSummary(string bamei); | |
8 | + Dictionary<string, IEnumerable<NUmaRaceWithNRace>> findAllRacesByKettoNumList(List<string> kettoNumList); | |
9 | + IEnumerable<ChakudosuuSummary> findChakudosuuSummary(string kettoNum); | |
10 | 10 | } |
11 | 11 | } |
\ No newline at end of file |
@@ -35,13 +35,14 @@ namespace UmaTest.App.Repository.Database.Dao | ||
35 | 35 | |
36 | 36 | foreach (NUma horse in horses) |
37 | 37 | { |
38 | - if (!res.ContainsKey(horse.Bamei)) | |
38 | + if (!res.ContainsKey(horse.Kettonum)) | |
39 | 39 | { |
40 | - res.Add(horse.Bamei, horse); | |
40 | + res.Add(horse.Kettonum, horse); | |
41 | 41 | } |
42 | 42 | else |
43 | 43 | { |
44 | - Logger.Warn($"NUmaテーブルの馬名が重複しています: {horse.Bamei} ({horse.Kettonum})"); | |
44 | + NUma dupHorse = res[horse.Kettonum]; | |
45 | + Logger.Warn($"NUmaテーブルの血統登録番号が重複しています: {horse.Kettonum} - {horse.Bamei}, {dupHorse.Bamei})"); | |
45 | 46 | } |
46 | 47 | } |
47 | 48 |
@@ -19,36 +19,36 @@ namespace UmaTest.App.Repository.Database.Dao | ||
19 | 19 | this.db = db; |
20 | 20 | } |
21 | 21 | |
22 | - public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> findAllUmaRacesByBameiList(List<string> bameiList) | |
22 | + public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> findAllRacesByKettoNumList(List<string> kettoNumList) | |
23 | 23 | { |
24 | 24 | return DbHelper.tryQuery(() => |
25 | 25 | { |
26 | 26 | Dictionary<string, IEnumerable<NUmaRaceWithNRace>> res = new Dictionary<string, IEnumerable<NUmaRaceWithNRace>>(); |
27 | 27 | |
28 | - foreach (string bamei in bameiList) | |
28 | + foreach (string kettoNum in kettoNumList) | |
29 | 29 | { |
30 | 30 | var sql = Sql.Builder |
31 | 31 | .Append("SELECT ur.*, r.*") |
32 | 32 | .From("n_uma_race ur") |
33 | 33 | .Append("INNER JOIN n_race r USING(year, jyocd, kaiji, nichiji, racenum)") |
34 | - .Where("ur.bamei = @0", bamei) | |
34 | + .Where("ur.kettonum = @0", kettoNum) | |
35 | 35 | .OrderBy("ur.year desc, ur.monthday desc"); |
36 | 36 | |
37 | 37 | var races = db.Query<NUmaRace, NRace, NUmaRaceWithNRace>((ur, r) => new NUmaRaceWithNRace(ur, r), sql); |
38 | - res.Add(bamei, races); | |
38 | + res.Add(kettoNum, races); | |
39 | 39 | } |
40 | 40 | |
41 | 41 | return res; |
42 | 42 | }); |
43 | 43 | } |
44 | 44 | |
45 | - public IEnumerable<ChakudosuuSummary> findRaceSummary(string bamei) | |
45 | + public IEnumerable<ChakudosuuSummary> findChakudosuuSummary(string kettoNum) | |
46 | 46 | { |
47 | 47 | return DbHelper.tryQuery(() => |
48 | 48 | { |
49 | 49 | string sql = DbHelper.GetResourceSQLFile(this); |
50 | 50 | |
51 | - return db.Query<ChakudosuuSummary>(sql, bamei).ToList(); | |
51 | + return db.Query<ChakudosuuSummary>(sql, kettoNum).ToList(); | |
52 | 52 | }); |
53 | 53 | } |
54 | 54 | } |
@@ -10,6 +10,7 @@ namespace UmaTest.App.Domain.Translator | ||
10 | 10 | { |
11 | 11 | LoadHorseRaceSummaryResponse Translate( |
12 | 12 | LoadHorseRaceSummaryResponse res, LoadHorseRaceSummaryRequest req, |
13 | + List<string> kettoNums, | |
13 | 14 | Dictionary<string, NUma> horses, |
14 | 15 | Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races, |
15 | 16 | Dictionary<string, IEnumerable<ChakudosuuSummary>> summaries); |
@@ -14,12 +14,13 @@ namespace UmaTest.App.Domain.Translator | ||
14 | 14 | { |
15 | 15 | public LoadHorseRaceSummaryResponse Translate( |
16 | 16 | LoadHorseRaceSummaryResponse res, LoadHorseRaceSummaryRequest req, |
17 | + List<string> kettoNums, | |
17 | 18 | Dictionary<string, NUma> horses, |
18 | 19 | Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races, |
19 | 20 | Dictionary<string, IEnumerable<ChakudosuuSummary>> summaries) |
20 | 21 | { |
21 | - res.Bameis = req.HorseList; | |
22 | 22 | |
23 | + res.KettoNums = kettoNums; | |
23 | 24 | res.Horses = horses; |
24 | 25 | res.Races = races; |
25 | 26 | res.Summaries = summaries; |
@@ -32,10 +32,12 @@ namespace UmaTest.App.Domain.UseCase.Interactor | ||
32 | 32 | |
33 | 33 | Dictionary<string, NUma> horses = logicUma.LoadHorses(req.HorseList); |
34 | 34 | |
35 | - Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races = logicUmaRace.LoadRaces(req.HorseList); | |
36 | - Dictionary<string, IEnumerable<ChakudosuuSummary>> summaries = logicUmaRace.LoadChakudosuuSummaries(req.HorseList); | |
35 | + List<string> kettoNums = horses.Select(h => h.Value.Kettonum).OrderBy(k => k).ToList(); | |
37 | 36 | |
38 | - return translator.Translate(res, req, horses, races, summaries); | |
37 | + Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races = logicUmaRace.LoadRaces(kettoNums); | |
38 | + Dictionary<string, IEnumerable<ChakudosuuSummary>> summaries = logicUmaRace.LoadChakudosuuSummaries(kettoNums); | |
39 | + | |
40 | + return translator.Translate(res, req, kettoNums, horses, races, summaries); | |
39 | 41 | } |
40 | 42 | } |
41 | 43 | } |
@@ -16,7 +16,7 @@ namespace UmaTest.App.Domain.UseCase.Response | ||
16 | 16 | { |
17 | 17 | } |
18 | 18 | |
19 | - public List<string> Bameis { get; set; } | |
19 | + public List<string> KettoNums { get; set; } | |
20 | 20 | public Dictionary<string, NUma> Horses { get; set; } |
21 | 21 | public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> Races { get; set; } |
22 | 22 | public Dictionary<string, IEnumerable<ChakudosuuSummary>> Summaries { get; set; } |
@@ -59,7 +59,7 @@ namespace UmaTest.App.Presentation.View | ||
59 | 59 | this.menuStrip1.Location = new System.Drawing.Point(0, 0); |
60 | 60 | this.menuStrip1.Name = "menuStrip1"; |
61 | 61 | this.menuStrip1.Padding = new System.Windows.Forms.Padding(5, 2, 0, 2); |
62 | - this.menuStrip1.Size = new System.Drawing.Size(735, 24); | |
62 | + this.menuStrip1.Size = new System.Drawing.Size(862, 24); | |
63 | 63 | this.menuStrip1.TabIndex = 0; |
64 | 64 | this.menuStrip1.Text = "menuStrip1"; |
65 | 65 | // |
@@ -103,8 +103,8 @@ namespace UmaTest.App.Presentation.View | ||
103 | 103 | // splitContainer1.Panel2 |
104 | 104 | // |
105 | 105 | this.splitContainer1.Panel2.Controls.Add(this.splitContainer2); |
106 | - this.splitContainer1.Size = new System.Drawing.Size(735, 496); | |
107 | - this.splitContainer1.SplitterDistance = 245; | |
106 | + this.splitContainer1.Size = new System.Drawing.Size(862, 493); | |
107 | + this.splitContainer1.SplitterDistance = 92; | |
108 | 108 | this.splitContainer1.TabIndex = 1; |
109 | 109 | // |
110 | 110 | // treeView1 |
@@ -112,7 +112,7 @@ namespace UmaTest.App.Presentation.View | ||
112 | 112 | this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill; |
113 | 113 | this.treeView1.Location = new System.Drawing.Point(0, 0); |
114 | 114 | this.treeView1.Name = "treeView1"; |
115 | - this.treeView1.Size = new System.Drawing.Size(245, 496); | |
115 | + this.treeView1.Size = new System.Drawing.Size(92, 493); | |
116 | 116 | this.treeView1.TabIndex = 0; |
117 | 117 | // |
118 | 118 | // splitContainer2 |
@@ -129,8 +129,8 @@ namespace UmaTest.App.Presentation.View | ||
129 | 129 | // splitContainer2.Panel2 |
130 | 130 | // |
131 | 131 | this.splitContainer2.Panel2.Controls.Add(this.dataGridView2); |
132 | - this.splitContainer2.Size = new System.Drawing.Size(486, 496); | |
133 | - this.splitContainer2.SplitterDistance = 222; | |
132 | + this.splitContainer2.Size = new System.Drawing.Size(766, 493); | |
133 | + this.splitContainer2.SplitterDistance = 303; | |
134 | 134 | this.splitContainer2.TabIndex = 0; |
135 | 135 | // |
136 | 136 | // dataGridView1 |
@@ -138,7 +138,7 @@ namespace UmaTest.App.Presentation.View | ||
138 | 138 | this.dataGridView1.AllowUserToAddRows = false; |
139 | 139 | this.dataGridView1.AllowUserToDeleteRows = false; |
140 | 140 | this.dataGridView1.AllowUserToResizeRows = false; |
141 | - this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader; | |
141 | + this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; | |
142 | 142 | this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; |
143 | 143 | this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; |
144 | 144 | this.dataGridView1.Location = new System.Drawing.Point(0, 0); |
@@ -147,7 +147,7 @@ namespace UmaTest.App.Presentation.View | ||
147 | 147 | this.dataGridView1.ReadOnly = true; |
148 | 148 | this.dataGridView1.RowTemplate.Height = 21; |
149 | 149 | this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; |
150 | - this.dataGridView1.Size = new System.Drawing.Size(486, 222); | |
150 | + this.dataGridView1.Size = new System.Drawing.Size(766, 303); | |
151 | 151 | this.dataGridView1.TabIndex = 0; |
152 | 152 | // |
153 | 153 | // dataGridView2 |
@@ -164,14 +164,14 @@ namespace UmaTest.App.Presentation.View | ||
164 | 164 | this.dataGridView2.ReadOnly = true; |
165 | 165 | this.dataGridView2.RowTemplate.Height = 21; |
166 | 166 | this.dataGridView2.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; |
167 | - this.dataGridView2.Size = new System.Drawing.Size(486, 270); | |
167 | + this.dataGridView2.Size = new System.Drawing.Size(766, 186); | |
168 | 168 | this.dataGridView2.TabIndex = 0; |
169 | 169 | // |
170 | 170 | // MainWindow |
171 | 171 | // |
172 | 172 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); |
173 | 173 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; |
174 | - this.ClientSize = new System.Drawing.Size(735, 520); | |
174 | + this.ClientSize = new System.Drawing.Size(862, 517); | |
175 | 175 | this.Controls.Add(this.splitContainer1); |
176 | 176 | this.Controls.Add(this.menuStrip1); |
177 | 177 | this.MainMenuStrip = this.menuStrip1; |
@@ -17,6 +17,7 @@ using UmaTest.App.Repository.Database.Dto; | ||
17 | 17 | using UmaTest.App.Repository.Database.Entity.EveryDB2; |
18 | 18 | using UmaTest.Infra.Command; |
19 | 19 | using UmaTest.Infra.Domain.Translator; |
20 | +using UmaTest.Infra.Log; | |
20 | 21 | |
21 | 22 | namespace UmaTest.App.Presentation.View |
22 | 23 | { |
@@ -38,6 +39,14 @@ namespace UmaTest.App.Presentation.View | ||
38 | 39 | //this.pictureBox1.MouseUp += controller.MouseEvents[(int)MouseEventID.OnMouseUp]; |
39 | 40 | //this.pictureBox1.MouseWheel += controller.MouseEvents[(int)MouseEventID.OnMouseWheel]; |
40 | 41 | |
42 | + // Register VM PropertyChanged event | |
43 | + | |
44 | + vm.PropertyChanged += new PropertyChangedEventHandler(OnViewModelChanged); | |
45 | + | |
46 | + // Register DataGridView UI event | |
47 | + | |
48 | + this.dataGridView1.SelectionChanged += vm.EventSelectedHorseChanged; | |
49 | + | |
41 | 50 | // |
42 | 51 | // Register commands |
43 | 52 | // |
@@ -252,6 +261,27 @@ namespace UmaTest.App.Presentation.View | ||
252 | 261 | this.vm = vm; |
253 | 262 | } |
254 | 263 | |
264 | + private void OnViewModelChanged(object sender, EventArgs e) | |
265 | + { | |
266 | + PropertyChangedEventArgs args = e as PropertyChangedEventArgs; | |
267 | + | |
268 | + switch (args.PropertyName) | |
269 | + { | |
270 | + case "UmaSummaryList": | |
271 | + dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None; | |
272 | + bindingSource1.DataSource = vm.UmaSummaryList; | |
273 | + dataGridView1.AutoSizeColumnsMode = vm.UmaSummaryList.Count > 0 | |
274 | + ? DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader | |
275 | + : DataGridViewAutoSizeColumnsMode.AllCells; | |
276 | + break; | |
277 | + case "RaceList": | |
278 | + dataGridView2.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None; | |
279 | + bindingSource2.DataSource = vm.RaceList; | |
280 | + dataGridView2.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; | |
281 | + break; | |
282 | + } | |
283 | + } | |
284 | + | |
255 | 285 | //private void toolStripMenuQuit_Click(object sender, EventArgs e) |
256 | 286 | //{ |
257 | 287 | // Application.Exit(); |
@@ -46,7 +46,7 @@ namespace UmaTest.Infra.Domain.Translator | ||
46 | 46 | foreach (PropertyDescriptor cpd in children) |
47 | 47 | { |
48 | 48 | newCols.Add(new ChildPropertyDescriptor(pd, cpd, propertyName + "." + cpd.Name)); |
49 | - Logger.Trace(propertyName + "." + cpd.Name); | |
49 | + //Logger.Trace(propertyName + "." + cpd.Name); | |
50 | 50 | } |
51 | 51 | } |
52 | 52 |
@@ -62,22 +62,21 @@ namespace UmaTest.Properties { | ||
62 | 62 | |
63 | 63 | /// <summary> |
64 | 64 | /// select |
65 | - /// year as key1 | |
66 | - /// , kyori as key2 | |
67 | - /// , gradecd as key3 | |
65 | + /// kyori as key1 | |
66 | + /// , gradecd as key2 | |
68 | 67 | /// , to_char(sum(jyuni1), 'FM99') || '.' || to_char(sum(jyuni2), 'FM99') || '.' |
69 | 68 | /// || to_char(sum(jyuni3), 'FM99') || '.' || to_char(sum(jyuni4ika), 'FM99') as chakudosuu |
70 | 69 | /// , sum(ijou) as ijou |
71 | 70 | ///from ( |
72 | 71 | ///select |
73 | - /// year | |
74 | - /// , case | |
72 | + /// case | |
75 | 73 | /// when r.kyori >= '2800' then '5LONG' |
76 | 74 | /// when r.kyori >= '2200' then '4MIDDLELONG' |
77 | 75 | /// when r.kyori >= '1800' then '3MIDDLE' |
78 | 76 | /// when r.kyori >= '1400' then '2MILE' |
79 | 77 | /// else '1SHORT' |
80 | - /// end as kyor [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。 | |
78 | + /// end as kyori | |
79 | + /// , case r.gradecd when ' [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。 | |
81 | 80 | /// </summary> |
82 | 81 | internal static string NUmaRaceDao_findRaceSummary { |
83 | 82 | get { |
@@ -119,6 +119,6 @@ | ||
119 | 119 | </resheader> |
120 | 120 | <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> |
121 | 121 | <data name="NUmaRaceDao_findRaceSummary" type="System.Resources.ResXFileRef, System.Windows.Forms"> |
122 | - <value>..\resources\sql\numaracedao_findracesummary.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;shift_jis</value> | |
122 | + <value>..\resources\sql\numaracedao_findchakudosuusummary.sql;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;shift_jis</value> | |
123 | 123 | </data> |
124 | 124 | </root> |
\ No newline at end of file |
@@ -24,7 +24,7 @@ from | ||
24 | 24 | inner join n_race r |
25 | 25 | using (year, jyocd, kaiji, nichiji, racenum) |
26 | 26 | where |
27 | - ur.bamei = @0 | |
27 | + ur.kettonum = @0 | |
28 | 28 | /* 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' */ |
29 | 29 | ) v |
30 | 30 | group by |
@@ -1,3 +1,4 @@ | ||
1 | 1 | Controller→InfraとAppで分割、Abstract化? |
2 | 2 | 子画面の開き方→ControllerのプロパティをVMがサブスクライブする、VMのプロパティをViewがサブスクライブする |
3 | 3 | propaertychangedeventhandlerextensionのmixinをinfraに移動(名前空間で対応) |
4 | +requestにrequestScope用のdictionaryを追加、translatorに個別引数で渡す方法から変更 |
@@ -221,7 +221,7 @@ | ||
221 | 221 | </ItemGroup> |
222 | 222 | <ItemGroup> |
223 | 223 | <Content Include="Infra\Adaptor\Command\README.txt" /> |
224 | - <EmbeddedResource Include="Resources\Sql\NUmaRaceDao_findRaceSummary.sql" /> | |
224 | + <EmbeddedResource Include="Resources\Sql\NUmaRaceDao_findChakudosuuSummary.sql" /> | |
225 | 225 | <Content Include="ToDo.txt" /> |
226 | 226 | </ItemGroup> |
227 | 227 | <ItemGroup> |