• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
Aucun tag

Frequently used words (click to add to your profile)

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

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


Commit MetaInfo

Révision219a774e32c68d7af05b6afd4be7e29ff2094468 (tree)
l'heure2021-05-27 14:57:15
Auteuryoshy <yoshy@user...>
Commiteryoshy

Message de Log

temp_20210527_1457

Change Summary

Modification

--- a/App/Adaptor/Gateway/ViewModel/IMainWindowViewModel.cs
+++ b/App/Adaptor/Gateway/ViewModel/IMainWindowViewModel.cs
@@ -1,17 +1,20 @@
1-using System.ComponentModel;
1+using System;
2+using System.Collections.Generic;
3+using System.ComponentModel;
24 using UmaTest.App.Adaptor.Gateway.ViewModel.Dto;
3-using UmaTest.App.Repository.Database.Dto;
4-using UmaTest.App.Repository.Database.Entity.EveryDB2;
55 using UmaTest.Infra.Command;
66
77 namespace UmaTest.App.Presentation.ViewModel
88 {
99 public interface IMainWindowViewModel
1010 {
11- BindingList<UmaSummaryRowDto> UmaSummaryList { get; set; }
1211 ICommand CommandReadHorseList { get; }
12+ EventHandler EventSelectedHorseChanged { get; }
1313 BindingList<UmaRaceRowDto> RaceList { get; set; }
14+ BindingList<UmaSummaryRowDto> UmaSummaryList { get; set; }
1415
1516 event PropertyChangedEventHandler PropertyChanged;
17+
18+ void RefreshModel(List<UmaSummaryRowDto> umaSummaryList, Dictionary<string, List<UmaRaceRowDto>> umaRaceMap);
1619 }
1720 }
\ No newline at end of file
--- a/App/Adaptor/Gateway/ViewModel/MainWindowViewModel.cs
+++ b/App/Adaptor/Gateway/ViewModel/MainWindowViewModel.cs
@@ -4,6 +4,7 @@ using System.ComponentModel;
44 using System.Drawing;
55 using System.Drawing.Imaging;
66 using System.IO;
7+using System.Windows.Forms;
78 using System.Windows.Input;
89 using UmaTest.App.Adaptor.Gateway.ViewModel.Dto;
910 using UmaTest.App.Domain.UseCase.Request;
@@ -12,6 +13,7 @@ using UmaTest.App.Presentation.Controller;
1213 using UmaTest.App.Repository.Database.Dto;
1314 using UmaTest.App.Repository.Database.Entity.EveryDB2;
1415 using UmaTest.Infra.Command;
16+using UmaTest.Infra.Log;
1517 using ICommand = UmaTest.Infra.Command.ICommand;
1618
1719 namespace UmaTest.App.Presentation.ViewModel
@@ -20,17 +22,25 @@ namespace UmaTest.App.Presentation.ViewModel
2022 {
2123 public event PropertyChangedEventHandler PropertyChanged;
2224
25+ public EventHandler EventSelectedHorseChanged { get; private set; }
26+
27+ public ICommand CommandReadHorseList { get; private set; }
28+
2329 private IWindowController wc;
2430
25- BindingList<UmaSummaryRowDto> _chakudosuuList = new BindingList<UmaSummaryRowDto>();
31+ private BindingList<UmaSummaryRowDto> _chakudosuuList = new BindingList<UmaSummaryRowDto>();
2632
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;
2837
2938 public MainWindowViewModel(IWindowController wc)
3039 {
3140 this.wc = wc;
3241
3342 CommandReadHorseList = new DelegateCommand("Read Horse List (&R)", () => true, OnReadHorseList);
43+ EventSelectedHorseChanged = new EventHandler(OnSelectedHorseChanged);
3444 }
3545
3646 public BindingList<UmaSummaryRowDto> UmaSummaryList
@@ -45,13 +55,52 @@ namespace UmaTest.App.Presentation.ViewModel
4555 set => PropertyChanged.RaiseIfSet(() => RaceList, ref _raceList, value);
4656 }
4757
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);
4964
65+ if (UmaSummaryList.Count > 0)
66+ {
67+ ChangeRaceList(0);
68+ }
69+ }
5070 private void OnReadHorseList()
5171 {
5272 LoadHorseRaceSummaryRequest req = new LoadHorseRaceSummaryRequest("アドマイヤハダル\nエフフォーリア\nグラティアス\nグレートマジシャン\nサトノレイナス\nシャフリヤール\nステラヴェローチェ\nタイトルホルダー\nタイムトゥヘヴン\nダノンザキッド\nディープモンスター\nバジオウ\nバスラットレオン\nヨーホーレイク\nラーゴム\nレッドジェネシス\nワンダフルタウン\nヴィクティファルス\n");
5373
5474 LoadHorseRaceSummaryResponse res = wc.Execute(req) as LoadHorseRaceSummaryResponse;
5575 }
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+ }
56105 }
57106 }
--- a/App/Adaptor/Presenter/LoadHorseRaceSummaryPresenter.cs
+++ b/App/Adaptor/Presenter/LoadHorseRaceSummaryPresenter.cs
@@ -30,26 +30,28 @@ namespace UmaTest.App.Presentation.Presenter
3030 LoadHorseRaceSummaryRequest req = baseRes.Request as LoadHorseRaceSummaryRequest;
3131 LoadHorseRaceSummaryResponse res = baseRes as LoadHorseRaceSummaryResponse;
3232
33- List<string> bameiList = res.Bameis;
33+ List<string> kettoNums = res.KettoNums;
3434
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>>();
3737
38- foreach (string bamei in bameiList)
38+ // TODO 変換処理をtranslatorに委譲
39+
40+ foreach (string kettoNum in kettoNums)
3941 {
40- Logger.Info($"馬名: {bamei}");
42+ Logger.Info($"血統登録番号: {kettoNum}");
4143
4244 UmaSummaryRowDto summaryDto;
4345
44- if (!res.Horses.TryGetValue(bamei, out NUma uma))
46+ if (!res.Horses.TryGetValue(kettoNum, out NUma uma))
4547 {
46- Logger.Warn($"馬名: {bamei} の馬情報が見つかりませんでした");
48+ Logger.Warn($"血統登録番号: {kettoNum} の馬情報が見つかりませんでした");
4749 continue;
4850 }
4951
5052 summaryDto = new UmaSummaryRowDto(uma);
5153
52- foreach (ChakudosuuSummary chakudosuu in res.Summaries[bamei])
54+ foreach (ChakudosuuSummary chakudosuu in res.Summaries[kettoNum])
5355 {
5456 ChakudosuuByGradeRowDto chakudosuuByGrade;
5557
@@ -114,30 +116,29 @@ namespace UmaTest.App.Presentation.Presenter
114116
115117 Logger.Debug(summaryDto.ToString());
116118
117- vm.UmaSummaryList.Add(summaryDto);
118- }
119+ umaSummaryList.Add(summaryDto);
119120
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+ }
124126
125- string bamei2 = vm.UmaSummaryList[0].Bamei;
127+ List<UmaRaceRowDto> umaRaceList = new List<UmaRaceRowDto>();
126128
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}");
132133
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+ }
137136
138- vm.RaceList.Add(new UmaRaceRowDto(umaRace));
137+ umaRaceMap.Add(kettoNum, umaRaceList);
139138 }
140139
140+ vm.RefreshModel(umaSummaryList, umaRaceMap);
141+
141142 return res;
142143 }
143144 }
--- a/App/Domain/Model/Logic/IUmaRaceLogic.cs
+++ b/App/Domain/Model/Logic/IUmaRaceLogic.cs
@@ -5,7 +5,7 @@ namespace UmaTest.App.Domain.Model
55 {
66 public interface IUmaRaceLogic
77 {
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);
1010 }
1111 }
\ No newline at end of file
--- a/App/Domain/Model/Logic/UmaRaceLogic.cs
+++ b/App/Domain/Model/Logic/UmaRaceLogic.cs
@@ -18,23 +18,23 @@ namespace UmaTest.App.Domain.Model
1818 this.dao = dao;
1919 }
2020
21- public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> LoadRaces(List<string> bameiList)
21+ public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> LoadRaces(List<string> kettoNumList)
2222 {
2323 return LogicHelper.tryLogic(() =>
2424 {
25- return dao.findAllUmaRacesByBameiList(bameiList);
25+ return dao.findAllRacesByKettoNumList(kettoNumList);
2626 });
2727 }
2828
29- public Dictionary<string, IEnumerable<ChakudosuuSummary>> LoadChakudosuuSummaries(List<string> bameiList)
29+ public Dictionary<string, IEnumerable<ChakudosuuSummary>> LoadChakudosuuSummaries(List<string> kettoNumList)
3030 {
3131 return LogicHelper.tryLogic(() =>
3232 {
3333 Dictionary<string, IEnumerable<ChakudosuuSummary>> res = new Dictionary<string, IEnumerable<ChakudosuuSummary>>();
3434
35- foreach (string bamei in bameiList)
35+ foreach (string bamei in kettoNumList)
3636 {
37- IEnumerable<ChakudosuuSummary> summaries = dao.findRaceSummary(bamei);
37+ IEnumerable<ChakudosuuSummary> summaries = dao.findChakudosuuSummary(bamei);
3838 res.Add(bamei, summaries);
3939 }
4040
--- a/App/Domain/Model/Repository/Database/Dao/INUmaRaceDao.cs
+++ b/App/Domain/Model/Repository/Database/Dao/INUmaRaceDao.cs
@@ -5,7 +5,7 @@ namespace UmaTest.App.Repository.Database.Dao
55 {
66 public interface INUmaRaceDao
77 {
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);
1010 }
1111 }
\ No newline at end of file
--- a/App/Domain/Model/Repository/Database/Dao/NUmaDao.cs
+++ b/App/Domain/Model/Repository/Database/Dao/NUmaDao.cs
@@ -35,13 +35,14 @@ namespace UmaTest.App.Repository.Database.Dao
3535
3636 foreach (NUma horse in horses)
3737 {
38- if (!res.ContainsKey(horse.Bamei))
38+ if (!res.ContainsKey(horse.Kettonum))
3939 {
40- res.Add(horse.Bamei, horse);
40+ res.Add(horse.Kettonum, horse);
4141 }
4242 else
4343 {
44- Logger.Warn($"NUmaテーブルの馬名が重複しています: {horse.Bamei} ({horse.Kettonum})");
44+ NUma dupHorse = res[horse.Kettonum];
45+ Logger.Warn($"NUmaテーブルの血統登録番号が重複しています: {horse.Kettonum} - {horse.Bamei}, {dupHorse.Bamei})");
4546 }
4647 }
4748
--- a/App/Domain/Model/Repository/Database/Dao/NUmaRaceDao.cs
+++ b/App/Domain/Model/Repository/Database/Dao/NUmaRaceDao.cs
@@ -19,36 +19,36 @@ namespace UmaTest.App.Repository.Database.Dao
1919 this.db = db;
2020 }
2121
22- public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> findAllUmaRacesByBameiList(List<string> bameiList)
22+ public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> findAllRacesByKettoNumList(List<string> kettoNumList)
2323 {
2424 return DbHelper.tryQuery(() =>
2525 {
2626 Dictionary<string, IEnumerable<NUmaRaceWithNRace>> res = new Dictionary<string, IEnumerable<NUmaRaceWithNRace>>();
2727
28- foreach (string bamei in bameiList)
28+ foreach (string kettoNum in kettoNumList)
2929 {
3030 var sql = Sql.Builder
3131 .Append("SELECT ur.*, r.*")
3232 .From("n_uma_race ur")
3333 .Append("INNER JOIN n_race r USING(year, jyocd, kaiji, nichiji, racenum)")
34- .Where("ur.bamei = @0", bamei)
34+ .Where("ur.kettonum = @0", kettoNum)
3535 .OrderBy("ur.year desc, ur.monthday desc");
3636
3737 var races = db.Query<NUmaRace, NRace, NUmaRaceWithNRace>((ur, r) => new NUmaRaceWithNRace(ur, r), sql);
38- res.Add(bamei, races);
38+ res.Add(kettoNum, races);
3939 }
4040
4141 return res;
4242 });
4343 }
4444
45- public IEnumerable<ChakudosuuSummary> findRaceSummary(string bamei)
45+ public IEnumerable<ChakudosuuSummary> findChakudosuuSummary(string kettoNum)
4646 {
4747 return DbHelper.tryQuery(() =>
4848 {
4949 string sql = DbHelper.GetResourceSQLFile(this);
5050
51- return db.Query<ChakudosuuSummary>(sql, bamei).ToList();
51+ return db.Query<ChakudosuuSummary>(sql, kettoNum).ToList();
5252 });
5353 }
5454 }
--- a/App/Domain/Translator/ILoadHorseRaceSummaryTranslator.cs
+++ b/App/Domain/Translator/ILoadHorseRaceSummaryTranslator.cs
@@ -10,6 +10,7 @@ namespace UmaTest.App.Domain.Translator
1010 {
1111 LoadHorseRaceSummaryResponse Translate(
1212 LoadHorseRaceSummaryResponse res, LoadHorseRaceSummaryRequest req,
13+ List<string> kettoNums,
1314 Dictionary<string, NUma> horses,
1415 Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races,
1516 Dictionary<string, IEnumerable<ChakudosuuSummary>> summaries);
--- a/App/Domain/Translator/LoadHorseRaceSummaryTranslator.cs
+++ b/App/Domain/Translator/LoadHorseRaceSummaryTranslator.cs
@@ -14,12 +14,13 @@ namespace UmaTest.App.Domain.Translator
1414 {
1515 public LoadHorseRaceSummaryResponse Translate(
1616 LoadHorseRaceSummaryResponse res, LoadHorseRaceSummaryRequest req,
17+ List<string> kettoNums,
1718 Dictionary<string, NUma> horses,
1819 Dictionary<string, IEnumerable<NUmaRaceWithNRace>> races,
1920 Dictionary<string, IEnumerable<ChakudosuuSummary>> summaries)
2021 {
21- res.Bameis = req.HorseList;
2222
23+ res.KettoNums = kettoNums;
2324 res.Horses = horses;
2425 res.Races = races;
2526 res.Summaries = summaries;
--- a/App/Domain/UseCase/Interactor/LoadHorseRaceSummaryInteractor.cs
+++ b/App/Domain/UseCase/Interactor/LoadHorseRaceSummaryInteractor.cs
@@ -32,10 +32,12 @@ namespace UmaTest.App.Domain.UseCase.Interactor
3232
3333 Dictionary<string, NUma> horses = logicUma.LoadHorses(req.HorseList);
3434
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();
3736
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);
3941 }
4042 }
4143 }
--- a/App/Domain/UseCase/Response/LoadHorseRaceSummaryResponse.cs
+++ b/App/Domain/UseCase/Response/LoadHorseRaceSummaryResponse.cs
@@ -16,7 +16,7 @@ namespace UmaTest.App.Domain.UseCase.Response
1616 {
1717 }
1818
19- public List<string> Bameis { get; set; }
19+ public List<string> KettoNums { get; set; }
2020 public Dictionary<string, NUma> Horses { get; set; }
2121 public Dictionary<string, IEnumerable<NUmaRaceWithNRace>> Races { get; set; }
2222 public Dictionary<string, IEnumerable<ChakudosuuSummary>> Summaries { get; set; }
--- a/App/Presentation/View/MainWindow.Designer.cs
+++ b/App/Presentation/View/MainWindow.Designer.cs
@@ -59,7 +59,7 @@ namespace UmaTest.App.Presentation.View
5959 this.menuStrip1.Location = new System.Drawing.Point(0, 0);
6060 this.menuStrip1.Name = "menuStrip1";
6161 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);
6363 this.menuStrip1.TabIndex = 0;
6464 this.menuStrip1.Text = "menuStrip1";
6565 //
@@ -103,8 +103,8 @@ namespace UmaTest.App.Presentation.View
103103 // splitContainer1.Panel2
104104 //
105105 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;
108108 this.splitContainer1.TabIndex = 1;
109109 //
110110 // treeView1
@@ -112,7 +112,7 @@ namespace UmaTest.App.Presentation.View
112112 this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
113113 this.treeView1.Location = new System.Drawing.Point(0, 0);
114114 this.treeView1.Name = "treeView1";
115- this.treeView1.Size = new System.Drawing.Size(245, 496);
115+ this.treeView1.Size = new System.Drawing.Size(92, 493);
116116 this.treeView1.TabIndex = 0;
117117 //
118118 // splitContainer2
@@ -129,8 +129,8 @@ namespace UmaTest.App.Presentation.View
129129 // splitContainer2.Panel2
130130 //
131131 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;
134134 this.splitContainer2.TabIndex = 0;
135135 //
136136 // dataGridView1
@@ -138,7 +138,7 @@ namespace UmaTest.App.Presentation.View
138138 this.dataGridView1.AllowUserToAddRows = false;
139139 this.dataGridView1.AllowUserToDeleteRows = false;
140140 this.dataGridView1.AllowUserToResizeRows = false;
141- this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader;
141+ this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells;
142142 this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
143143 this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
144144 this.dataGridView1.Location = new System.Drawing.Point(0, 0);
@@ -147,7 +147,7 @@ namespace UmaTest.App.Presentation.View
147147 this.dataGridView1.ReadOnly = true;
148148 this.dataGridView1.RowTemplate.Height = 21;
149149 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);
151151 this.dataGridView1.TabIndex = 0;
152152 //
153153 // dataGridView2
@@ -164,14 +164,14 @@ namespace UmaTest.App.Presentation.View
164164 this.dataGridView2.ReadOnly = true;
165165 this.dataGridView2.RowTemplate.Height = 21;
166166 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);
168168 this.dataGridView2.TabIndex = 0;
169169 //
170170 // MainWindow
171171 //
172172 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
173173 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);
175175 this.Controls.Add(this.splitContainer1);
176176 this.Controls.Add(this.menuStrip1);
177177 this.MainMenuStrip = this.menuStrip1;
--- a/App/Presentation/View/MainWindow.cs
+++ b/App/Presentation/View/MainWindow.cs
@@ -17,6 +17,7 @@ using UmaTest.App.Repository.Database.Dto;
1717 using UmaTest.App.Repository.Database.Entity.EveryDB2;
1818 using UmaTest.Infra.Command;
1919 using UmaTest.Infra.Domain.Translator;
20+using UmaTest.Infra.Log;
2021
2122 namespace UmaTest.App.Presentation.View
2223 {
@@ -38,6 +39,14 @@ namespace UmaTest.App.Presentation.View
3839 //this.pictureBox1.MouseUp += controller.MouseEvents[(int)MouseEventID.OnMouseUp];
3940 //this.pictureBox1.MouseWheel += controller.MouseEvents[(int)MouseEventID.OnMouseWheel];
4041
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+
4150 //
4251 // Register commands
4352 //
@@ -252,6 +261,27 @@ namespace UmaTest.App.Presentation.View
252261 this.vm = vm;
253262 }
254263
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+
255285 //private void toolStripMenuQuit_Click(object sender, EventArgs e)
256286 //{
257287 // Application.Exit();
--- a/Infra/Domain/Translator/NestedTypeDescriptor.cs
+++ b/Infra/Domain/Translator/NestedTypeDescriptor.cs
@@ -46,7 +46,7 @@ namespace UmaTest.Infra.Domain.Translator
4646 foreach (PropertyDescriptor cpd in children)
4747 {
4848 newCols.Add(new ChildPropertyDescriptor(pd, cpd, propertyName + "." + cpd.Name));
49- Logger.Trace(propertyName + "." + cpd.Name);
49+ //Logger.Trace(propertyName + "." + cpd.Name);
5050 }
5151 }
5252
--- a/Properties/Resources.Designer.cs
+++ b/Properties/Resources.Designer.cs
@@ -62,22 +62,21 @@ namespace UmaTest.Properties {
6262
6363 /// <summary>
6464 /// select
65- /// year as key1
66- /// , kyori as key2
67- /// , gradecd as key3
65+ /// kyori as key1
66+ /// , gradecd as key2
6867 /// , to_char(sum(jyuni1), &apos;FM99&apos;) || &apos;.&apos; || to_char(sum(jyuni2), &apos;FM99&apos;) || &apos;.&apos;
6968 /// || to_char(sum(jyuni3), &apos;FM99&apos;) || &apos;.&apos; || to_char(sum(jyuni4ika), &apos;FM99&apos;) as chakudosuu
7069 /// , sum(ijou) as ijou
7170 ///from (
7271 ///select
73- /// year
74- /// , case
72+ /// case
7573 /// when r.kyori &gt;= &apos;2800&apos; then &apos;5LONG&apos;
7674 /// when r.kyori &gt;= &apos;2200&apos; then &apos;4MIDDLELONG&apos;
7775 /// when r.kyori &gt;= &apos;1800&apos; then &apos;3MIDDLE&apos;
7876 /// when r.kyori &gt;= &apos;1400&apos; then &apos;2MILE&apos;
7977 /// else &apos;1SHORT&apos;
80- /// end as kyor [残りの文字列は切り詰められました]&quot;; に類似しているローカライズされた文字列を検索します。
78+ /// end as kyori
79+ /// , case r.gradecd when &apos; [残りの文字列は切り詰められました]&quot;; に類似しているローカライズされた文字列を検索します。
8180 /// </summary>
8281 internal static string NUmaRaceDao_findRaceSummary {
8382 get {
--- a/Properties/Resources.resx
+++ b/Properties/Resources.resx
@@ -119,6 +119,6 @@
119119 </resheader>
120120 <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
121121 <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>
123123 </data>
124124 </root>
\ No newline at end of file
--- a/Resources/Sql/NUmaRaceDao_findRaceSummary.sql
+++ b/Resources/Sql/NUmaRaceDao_findChakudosuuSummary.sql
@@ -24,7 +24,7 @@ from
2424 inner join n_race r
2525 using (year, jyocd, kaiji, nichiji, racenum)
2626 where
27- ur.bamei = @0
27+ ur.kettonum = @0
2828 /* 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' */
2929 ) v
3030 group by
--- a/ToDo.txt
+++ b/ToDo.txt
@@ -1,3 +1,4 @@
11 Controller→InfraとAppで分割、Abstract化?
22 子画面の開き方→ControllerのプロパティをVMがサブスクライブする、VMのプロパティをViewがサブスクライブする
33 propaertychangedeventhandlerextensionのmixinをinfraに移動(名前空間で対応)
4+requestにrequestScope用のdictionaryを追加、translatorに個別引数で渡す方法から変更
--- a/UmaTest.csproj
+++ b/UmaTest.csproj
@@ -221,7 +221,7 @@
221221 </ItemGroup>
222222 <ItemGroup>
223223 <Content Include="Infra\Adaptor\Command\README.txt" />
224- <EmbeddedResource Include="Resources\Sql\NUmaRaceDao_findRaceSummary.sql" />
224+ <EmbeddedResource Include="Resources\Sql\NUmaRaceDao_findChakudosuuSummary.sql" />
225225 <Content Include="ToDo.txt" />
226226 </ItemGroup>
227227 <ItemGroup>