• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

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

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


Commit MetaInfo

Revisionf9d45d51c5764c098d0edb6b6698fd4db722bb3c (tree)
Time2021-05-31 20:23:21
Authoryoshy <yoshy@user...>
Commiteryoshy

Log Message

temp_20210531_2023

Change Summary

Incremental Difference

--- a/App/Adaptor/Controller/WindowController.cs
+++ b/App/Adaptor/Controller/WindowController.cs
@@ -16,6 +16,8 @@ namespace UmaTest.App.Adaptor.Controller
1616 {
1717 public class WindowController : IWindowController
1818 {
19+ public static readonly string EVENT_UMA_SUMMARY_EVENT_CHANGING = "UmaSummaryListChangingEvent";
20+
1921 private IUseCaseRouter router;
2022 private IAsyncUseCaseRouter asyncRouter;
2123 private IUserDialogProxy dialog;
@@ -28,16 +30,12 @@ namespace UmaTest.App.Adaptor.Controller
2830 this.dialog = dialog;
2931 this.statusBar = statusBar;
3032
31- Events = new Dictionary<String, EventHandler>()
32- {
33- //{
34- // "ON_SIZE_CHANGED",
35- // new EventHandler(OnSizeChanged)
36- //}
37- };
38-
39- MouseEvents = new Dictionary<String, MouseEventHandler>()
33+ Events = new Dictionary<String, EventObserver>()
4034 {
35+ {
36+ EVENT_UMA_SUMMARY_EVENT_CHANGING,
37+ new EventObserver()
38+ }
4139 };
4240
4341 Commands = new Dictionary<String, ICommand>()
@@ -45,19 +43,10 @@ namespace UmaTest.App.Adaptor.Controller
4543 };
4644 }
4745
48- public Dictionary<String, EventHandler> Events { get; private set; }
49-
50- public Dictionary<String, MouseEventHandler> MouseEvents { get; private set; }
46+ public Dictionary<String, EventObserver> Events { get; private set; }
5147
5248 public Dictionary<String, ICommand> Commands { get; private set; }
5349
54- //private void OnSizeChanged(object sender, EventArgs e)
55- //{
56- // vm.ChangeOuterRectSize(((Control)sender).Size);
57-
58- // // Handle(vm.CreateEkiMapRefreshRequest());
59- //}
60-
6150 public UseCaseResponse Execute(UseCaseRequest req)
6251 {
6352 UseCaseResponse res = router.Handle(req);
--- a/App/Adaptor/Gateway/ViewModel/Dto/UmaRaceRowDto.cs
+++ b/App/Adaptor/Gateway/ViewModel/Dto/UmaRaceRowDto.cs
@@ -24,5 +24,7 @@ namespace UmaTest.App.Adaptor.Gateway.ViewModel.Dto
2424 public string RaceName => CodeHelper.GetInstance().GetRaceName(Race, "不明");
2525
2626 public string GradeName => CodeHelper.GetInstance().GetName(CodeHelper.GRADE_CODE, Race.Gradecd, "-");
27+
28+ public string Kimete => CodeHelper.GetInstance().GetName(CodeHelper.KYAKUSITU_KUBUN, Kyakusitukubun, "不明");
2729 }
2830 }
--- a/App/Adaptor/Gateway/ViewModel/Dto/UmaSummaryRowDto.cs
+++ b/App/Adaptor/Gateway/ViewModel/Dto/UmaSummaryRowDto.cs
@@ -42,6 +42,29 @@ namespace UmaTest.App.Adaptor.Gateway.ViewModel.Dto
4242
4343 public string HahaChichiBamei { get => Konso?.HahaChichi.Bamei; }
4444
45+ public string BataijyuFormatted {
46+ get
47+ {
48+ return !String.IsNullOrEmpty(Konso?.Bataijyu) ? $"{Konso?.Bataijyu} ({Konso?.Zogenfugo + int.Parse(Konso?.Zogensa).ToString()})" : "";
49+ }
50+ }
51+
52+ public string KonsoNinki { get => Konso?.OddsTanpku?.Tanninki; }
53+
54+ public float KonsoTanOdds {
55+ get
56+ {
57+ string odds = Konso?.OddsTanpku?.Tanodds;
58+ if(String.IsNullOrEmpty(odds))
59+ {
60+ return 0; // String.Empty;
61+ }
62+
63+ //return int.Parse(odds.Substring(0, 3)).ToString() + "." + odds.Substring(3, 1);
64+ return int.Parse(odds) / 10.0f;
65+ }
66+ }
67+
4568 public UmaRaceRowDto Konso { get; set; }
4669
4770 public UmaRaceRowDto Zenso { get; set; }
--- a/App/Adaptor/Gateway/ViewModel/IMainWindowViewModel.cs
+++ b/App/Adaptor/Gateway/ViewModel/IMainWindowViewModel.cs
@@ -4,6 +4,7 @@ using System.ComponentModel;
44 using UmaTest.App.Adaptor.Gateway.UI;
55 using UmaTest.App.Adaptor.Gateway.ViewModel.Dto;
66 using UmaTest.Infra.Adaptor.Command;
7+using UmaTest.Infra.Adaptor.Controller;
78
89 namespace UmaTest.App.Adaptor.Gateway.ViewModel
910 {
@@ -15,12 +16,14 @@ namespace UmaTest.App.Adaptor.Gateway.ViewModel
1516 EventHandler EventSelectedHorseChanged { get; }
1617 IManualHorseListProxy ManualHorseListProxy { get; }
1718 BindingList<UmaRaceRowDto> RaceList { get; set; }
18- ITokuRaceListProxy TokuRaceListProxy { get; }
1919 ISearchRaceViewProxy SearchRaceViewProxy { get; }
20+ ITokuRaceListProxy TokuRaceListProxy { get; }
2021 BindingList<UmaSummaryRowDto> UmaSummaryList { get; set; }
2122
2223 event PropertyChangedEventHandler PropertyChanged;
2324
25+ EventObserver UmaSummaryListChangingEvent { get; set; }
26+
2427 void RefreshModel(List<UmaSummaryRowDto> umaSummaryList, Dictionary<string, List<UmaRaceRowDto>> umaRaceMap);
2528 }
2629 }
\ No newline at end of file
--- a/App/Adaptor/Gateway/ViewModel/MainWindowViewModel.cs
+++ b/App/Adaptor/Gateway/ViewModel/MainWindowViewModel.cs
@@ -37,6 +37,12 @@ namespace UmaTest.App.Adaptor.Gateway.ViewModel
3737
3838 public ISearchRaceViewProxy SearchRaceViewProxy { get; private set; }
3939
40+ public EventObserver UmaSummaryListChangingEvent
41+ {
42+ get => wc?.Events[WindowController.EVENT_UMA_SUMMARY_EVENT_CHANGING];
43+ set => wc.Events[WindowController.EVENT_UMA_SUMMARY_EVENT_CHANGING] = value;
44+ }
45+
4046 private IWindowController wc;
4147
4248 private Dictionary<string, List<UmaRaceRowDto>> _umaRaceMap = null;
--- a/App/Adaptor/Gateway/ViewModel/ManualHorseListViewModel.cs
+++ b/App/Adaptor/Gateway/ViewModel/ManualHorseListViewModel.cs
@@ -31,7 +31,7 @@ namespace UmaTest.App.Adaptor.Gateway.ViewModel
3131 "Read", () => !String.IsNullOrEmpty(HorseList), OnExecuteReadManualHorseList);
3232 //"Read", () => true, OnExecuteReadManualHorseList);
3333
34- this.HorseList = "アドマイヤハダル\r\nエフフォーリア\r\nグラティアス\r\nグレートマジシャン\r\nサトノレイナス\r\nシャフリヤール\r\nステラヴェローチェ\r\nタイトルホルダー\r\nタイムトゥヘヴン\r\nダノンザキッド\r\nディープモンスター\r\nバジオウ\r\nバスラットレオン\r\nヨーホーレイク\r\nラーゴム\r\nレッドジェネシス\r\nワンダフルタウン\r\nヴィクティファルス\r\n";
34+ this.HorseList = "インディチャンプ\r\nカテドラル\r\nカデナ\r\nカラテ\r\nギベオン\r\nグランアレグリア\r\nケイデンスコール\r\nサリオス\r\nシュネルマイスター\r\nダイワキャグニー\r\nダノンキングリー\r\nダノンプレミアム\r\nトーラスジェミニ\r\nビッククインバイオ\r\nラウダシオン\r\n";
3535 }
3636
3737 private async void OnExecuteReadManualHorseList()
--- a/App/Adaptor/Gateway/ViewModel/SearchRaceViewModel.cs
+++ b/App/Adaptor/Gateway/ViewModel/SearchRaceViewModel.cs
@@ -59,6 +59,8 @@ namespace UmaTest.App.Adaptor.Gateway.ViewModel
5959 return;
6060 }
6161
62+ wc.Events[WindowController.EVENT_UMA_SUMMARY_EVENT_CHANGING].Raise(this, new EventArgs());
63+
6264 AsyncLoadSelectedRaceUmaListRequest req = new AsyncLoadSelectedRaceUmaListRequest(SearchResultRaceList[SelectedIndex]);
6365 Logger.Debug($"OnSelectRace: {SelectedIndex}");
6466 await wc.ExecuteAsync(req);
--- a/App/Adaptor/Presenter/AsyncLoadSelectedRaceUmaListPresenter.cs
+++ b/App/Adaptor/Presenter/AsyncLoadSelectedRaceUmaListPresenter.cs
@@ -153,6 +153,8 @@ namespace UmaTest.App.Gateway.Presenter
153153 }),
154154 task =>
155155 {
156+ statusBar.SetStatusText("ビューモデルを更新中です...");
157+
156158 vm.RefreshModel(umaSummaryList, umaRaceMap);
157159 });
158160 }
--- a/App/Domain/Model/Repository/Database/Dao/NUmaRaceDao.cs
+++ b/App/Domain/Model/Repository/Database/Dao/NUmaRaceDao.cs
@@ -68,22 +68,23 @@ namespace UmaTest.App.Domain.Model.Repository.Database.Dao
6868 // res.Add(kettoNum, races.ToList());
6969 //}
7070
71- string sql = "SELECT ur.*, r.*, k.*, c.*, h1.*, h5.* "
71+ string sql = "SELECT ur.*, r.*, k.*, c.*, ot.*, h1.*, h5.* "
7272 + "FROM n_uma_race ur "
7373 + "INNER JOIN n_uma u USING(kettonum) "
7474 + "INNER JOIN n_race r USING(year, jyocd, kaiji, nichiji, racenum) "
7575 + "LEFT JOIN n_kisyu k USING(kisyucode) "
7676 + "LEFT JOIN n_chokyo c ON ur.chokyosicode = c.chokyosicode "
77+ + "LEFT JOIN n_odds_tanpuku ot USING(year, jyocd, kaiji, nichiji, racenum, umaban) "
7778 + "LEFT JOIN n_hansyoku h1 ON u.ketto3infohansyokunum1 = h1.hansyokunum "
7879 + "LEFT JOIN n_hansyoku h5 ON u.ketto3infohansyokunum5 = h5.hansyokunum "
7980 + "WHERE ur.kettonum in (@KettoNums) "
8081 + "ORDER BY ur.kettonum, ur.year desc, ur.monthday desc";
8182
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);
83+ Func<NUmaRace, NRace, NKisyu, NChokyo, NOddsTanpuku, NHansyoku, NHansyoku, NUmaRaceInfo> mapper =
84+ (ur, r, k, c, o, h1, h5) => new NUmaRaceInfo(ur, r, k, c, o, h1, h5);
8485
8586 Type[] mapTypes = new Type[] { typeof(NUmaRace), typeof(NRace), typeof(NKisyu),
86- typeof(NChokyo), typeof(NHansyoku), typeof(NHansyoku) };
87+ typeof(NChokyo), typeof(NOddsTanpuku), typeof(NHansyoku), typeof(NHansyoku) };
8788
8889 IEnumerable<NUmaRaceInfo> races = db.Query<NUmaRaceInfo>(
8990 mapTypes, mapper, sql, new { KettoNums = kettoNumList.ToArray() });
--- a/App/Domain/Model/Repository/Database/Dto/NUmaRaceInfo.cs
+++ b/App/Domain/Model/Repository/Database/Dto/NUmaRaceInfo.cs
@@ -15,12 +15,13 @@ namespace UmaTest.App.Domain.Model.Repository.Database.Dto
1515 {
1616 }
1717
18- public NUmaRaceInfo(NUmaRace ur, NRace r, NKisyu kisyu, NChokyo chokyo, NHansyoku chichi, NHansyoku hahachichi)
18+ public NUmaRaceInfo(NUmaRace ur, NRace r, NKisyu kisyu, NChokyo chokyo, NOddsTanpuku oddsTanpuku, NHansyoku chichi, NHansyoku hahachichi)
1919 {
2020 BeanHelper.Copy(this, ur);
2121 Race = r;
2222 Kisyu = kisyu;
2323 Chokyo = chokyo;
24+ OddsTanpku = oddsTanpuku;
2425 Chichi = chichi;
2526 HahaChichi = hahachichi;
2627 }
@@ -35,6 +36,9 @@ namespace UmaTest.App.Domain.Model.Repository.Database.Dto
3536 public NChokyo Chokyo { get; set; }
3637
3738 [Ignore]
39+ public NOddsTanpuku OddsTanpku { get; set; }
40+
41+ [Ignore]
3842 public NHansyoku Chichi { get; set; }
3943
4044 [Ignore]
--- a/App/Presentation/View/MainWindow.Designer.cs
+++ b/App/Presentation/View/MainWindow.Designer.cs
@@ -29,10 +29,16 @@ namespace UmaTest.App.Presentation.View
2929 /// </summary>
3030 private void InitializeComponent()
3131 {
32+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
33+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
34+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
35+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
36+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
3237 this.menuStrip1 = new System.Windows.Forms.MenuStrip();
3338 this.toolStripMenuFile = new System.Windows.Forms.ToolStripMenuItem();
3439 this.toolStripMenuOpenHorseList = new System.Windows.Forms.ToolStripMenuItem();
3540 this.toolStripMenuOpenTokuRaceList = new System.Windows.Forms.ToolStripMenuItem();
41+ this.toolStripMenuSearchRace = new System.Windows.Forms.ToolStripMenuItem();
3642 this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
3743 this.toolStripMenuQuit = new System.Windows.Forms.ToolStripMenuItem();
3844 this.splitContainer1 = new System.Windows.Forms.SplitContainer();
@@ -42,7 +48,6 @@ namespace UmaTest.App.Presentation.View
4248 this.dataGridView2 = new System.Windows.Forms.DataGridView();
4349 this.statusStrip1 = new System.Windows.Forms.StatusStrip();
4450 this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
45- this.toolStripMenuSearchRace = new System.Windows.Forms.ToolStripMenuItem();
4651 this.menuStrip1.SuspendLayout();
4752 ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
4853 this.splitContainer1.Panel1.SuspendLayout();
@@ -92,6 +97,12 @@ namespace UmaTest.App.Presentation.View
9297 this.toolStripMenuOpenTokuRaceList.Size = new System.Drawing.Size(171, 22);
9398 this.toolStripMenuOpenTokuRaceList.Text = "OpenTokuRaceList";
9499 //
100+ // toolStripMenuSearchRace
101+ //
102+ this.toolStripMenuSearchRace.Name = "toolStripMenuSearchRace";
103+ this.toolStripMenuSearchRace.Size = new System.Drawing.Size(171, 22);
104+ this.toolStripMenuSearchRace.Text = "SearchRace";
105+ //
95106 // toolStripSeparator1
96107 //
97108 this.toolStripSeparator1.Name = "toolStripSeparator1";
@@ -106,6 +117,7 @@ namespace UmaTest.App.Presentation.View
106117 // splitContainer1
107118 //
108119 this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
120+ this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
109121 this.splitContainer1.Location = new System.Drawing.Point(0, 24);
110122 this.splitContainer1.Name = "splitContainer1";
111123 //
@@ -115,6 +127,7 @@ namespace UmaTest.App.Presentation.View
115127 //
116128 // splitContainer1.Panel2
117129 //
130+ this.splitContainer1.Panel2.BackColor = System.Drawing.SystemColors.AppWorkspace;
118131 this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
119132 this.splitContainer1.Size = new System.Drawing.Size(862, 471);
120133 this.splitContainer1.SplitterDistance = 92;
@@ -131,6 +144,8 @@ namespace UmaTest.App.Presentation.View
131144 // splitContainer2
132145 //
133146 this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
147+ this.splitContainer2.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
148+ this.splitContainer2.ForeColor = System.Drawing.SystemColors.ControlText;
134149 this.splitContainer2.Location = new System.Drawing.Point(0, 0);
135150 this.splitContainer2.Name = "splitContainer2";
136151 this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal;
@@ -143,7 +158,7 @@ namespace UmaTest.App.Presentation.View
143158 //
144159 this.splitContainer2.Panel2.Controls.Add(this.dataGridView2);
145160 this.splitContainer2.Size = new System.Drawing.Size(766, 471);
146- this.splitContainer2.SplitterDistance = 289;
161+ this.splitContainer2.SplitterDistance = 350;
147162 this.splitContainer2.TabIndex = 0;
148163 //
149164 // dataGridView1
@@ -152,15 +167,27 @@ namespace UmaTest.App.Presentation.View
152167 this.dataGridView1.AllowUserToDeleteRows = false;
153168 this.dataGridView1.AllowUserToResizeRows = false;
154169 this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.ColumnHeader;
170+ dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
171+ dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
172+ dataGridViewCellStyle1.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
173+ dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
174+ dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
175+ dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
176+ dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
177+ this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
155178 this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
156179 this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
157180 this.dataGridView1.Location = new System.Drawing.Point(0, 0);
158181 this.dataGridView1.MultiSelect = false;
159182 this.dataGridView1.Name = "dataGridView1";
160183 this.dataGridView1.ReadOnly = true;
184+ this.dataGridView1.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
185+ dataGridViewCellStyle2.Font = new System.Drawing.Font("Meiryo UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
186+ this.dataGridView1.RowsDefaultCellStyle = dataGridViewCellStyle2;
161187 this.dataGridView1.RowTemplate.Height = 21;
188+ this.dataGridView1.RowTemplate.ReadOnly = true;
162189 this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
163- this.dataGridView1.Size = new System.Drawing.Size(766, 289);
190+ this.dataGridView1.Size = new System.Drawing.Size(766, 350);
164191 this.dataGridView1.TabIndex = 0;
165192 //
166193 // dataGridView2
@@ -169,15 +196,35 @@ namespace UmaTest.App.Presentation.View
169196 this.dataGridView2.AllowUserToDeleteRows = false;
170197 this.dataGridView2.AllowUserToResizeRows = false;
171198 this.dataGridView2.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.ColumnHeader;
199+ dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
200+ dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Control;
201+ dataGridViewCellStyle3.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
202+ dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.WindowText;
203+ dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight;
204+ dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
205+ dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
206+ this.dataGridView2.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle3;
172207 this.dataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
173208 this.dataGridView2.Dock = System.Windows.Forms.DockStyle.Fill;
174209 this.dataGridView2.Location = new System.Drawing.Point(0, 0);
175210 this.dataGridView2.MultiSelect = false;
176211 this.dataGridView2.Name = "dataGridView2";
177212 this.dataGridView2.ReadOnly = true;
213+ dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
214+ dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
215+ dataGridViewCellStyle4.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
216+ dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
217+ dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
218+ dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
219+ dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
220+ this.dataGridView2.RowHeadersDefaultCellStyle = dataGridViewCellStyle4;
221+ this.dataGridView2.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
222+ dataGridViewCellStyle5.Font = new System.Drawing.Font("Meiryo UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
223+ this.dataGridView2.RowsDefaultCellStyle = dataGridViewCellStyle5;
178224 this.dataGridView2.RowTemplate.Height = 21;
225+ this.dataGridView2.RowTemplate.ReadOnly = true;
179226 this.dataGridView2.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
180- this.dataGridView2.Size = new System.Drawing.Size(766, 178);
227+ this.dataGridView2.Size = new System.Drawing.Size(766, 117);
181228 this.dataGridView2.TabIndex = 0;
182229 //
183230 // statusStrip1
@@ -196,16 +243,11 @@ namespace UmaTest.App.Presentation.View
196243 this.toolStripStatusLabel1.Size = new System.Drawing.Size(41, 17);
197244 this.toolStripStatusLabel1.Text = "Ready.";
198245 //
199- // toolStripMenuSearchRace
200- //
201- this.toolStripMenuSearchRace.Name = "toolStripMenuSearchRace";
202- this.toolStripMenuSearchRace.Size = new System.Drawing.Size(171, 22);
203- this.toolStripMenuSearchRace.Text = "SearchRace";
204- //
205246 // MainWindow
206247 //
207248 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
208249 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
250+ this.BackColor = System.Drawing.SystemColors.Window;
209251 this.ClientSize = new System.Drawing.Size(862, 517);
210252 this.Controls.Add(this.splitContainer1);
211253 this.Controls.Add(this.statusStrip1);
--- a/App/Presentation/View/MainWindow.cs
+++ b/App/Presentation/View/MainWindow.cs
@@ -24,7 +24,7 @@ namespace UmaTest.App.Presentation.View
2424 {
2525 public partial class MainWindow : Form
2626 {
27- private IMainWindowViewModel vm;
27+ private readonly IMainWindowViewModel vm;
2828
2929 private BindingSource bindingSource1 = new BindingSource();
3030 private BindingSource bindingSource2 = new BindingSource();
@@ -33,17 +33,31 @@ namespace UmaTest.App.Presentation.View
3333 {
3434 InitializeComponent();
3535
36- // Subscribe VM PropertyChanged event
37-
38- vm.PropertyChanged += new PropertyChangedEventHandler(OnViewModelChanged);
39-
4036 // Initialize Child Window Onwer
4137
4238 vm.ManualHorseListProxy.Owner = this;
4339 vm.TokuRaceListProxy.Owner = this;
4440 vm.SearchRaceViewProxy.Owner = this;
4541
46- // Register UI EventHandler
42+ // Subscribe VM events
43+
44+ vm.PropertyChanged += new PropertyChangedEventHandler(OnViewModelChanged);
45+ vm.UmaSummaryListChangingEvent += new EventHandler(OnUmaSummaryListChanging);
46+
47+ // Bind VM
48+
49+ Bind(vm, vmStatusBar, cm);
50+
51+ // Initialize DataGridView
52+
53+ InitializeDataGridView(vm);
54+
55+ this.vm = vm;
56+ }
57+
58+ private void Bind(IMainWindowViewModel vm, IStatusBarViewModel vmStatusBar, ICommandManager cm)
59+ {
60+ // Bind UI EventHandler
4761
4862 this.dataGridView1.SelectionChanged += vm.EventSelectedHorseChanged;
4963
@@ -59,7 +73,10 @@ namespace UmaTest.App.Presentation.View
5973 // Bind UI Text
6074 //
6175 DataContextHelper.BindText(this.toolStripStatusLabel1, vmStatusBar, "StatusText");
76+ }
6277
78+ private void InitializeDataGridView(IMainWindowViewModel vm)
79+ {
6380 //
6481 // Initialize DataGridView1
6582 //
@@ -119,6 +136,21 @@ namespace UmaTest.App.Presentation.View
119136 },
120137 new DataGridViewTextBoxColumn
121138 {
139+ DataPropertyName = "BataijyuFormatted",
140+ Name = "馬体重",
141+ },
142+ new DataGridViewTextBoxColumn
143+ {
144+ DataPropertyName = "KonsoTanOdds",
145+ Name = "オッズ",
146+ },
147+ new DataGridViewTextBoxColumn
148+ {
149+ DataPropertyName = "KonsoNinki",
150+ Name = "人気",
151+ },
152+ new DataGridViewTextBoxColumn
153+ {
122154 DataPropertyName = "Short.G1",
123155 Name = "短G1",
124156 },
@@ -295,6 +327,11 @@ namespace UmaTest.App.Presentation.View
295327 DataPropertyName = "Time",
296328 Name = "タイム",
297329 },
330+ new DataGridViewTextBoxColumn
331+ {
332+ DataPropertyName = "Kimete",
333+ Name = "決手",
334+ },
298335 };
299336
300337 grid2Cols.Do(col => col.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter);
@@ -322,21 +359,30 @@ namespace UmaTest.App.Presentation.View
322359 // Enable Double Buffering for too slow repaint problem on data grid view
323360 //
324361
325- typeof(DataGridView).InvokeMember(
326- "DoubleBuffered",
327- BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty,
328- null,
329- dataGridView1,
330- new object[] { true });
362+ EnableDoubleBuffering(dataGridView1);
363+ EnableDoubleBuffering(dataGridView2);
364+ }
331365
366+ private static void EnableDoubleBuffering(DataGridView dataGridView)
367+ {
332368 typeof(DataGridView).InvokeMember(
333369 "DoubleBuffered",
334370 BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty,
335371 null,
336- dataGridView2,
372+ dataGridView,
337373 new object[] { true });
374+ }
338375
339- this.vm = vm;
376+ private void OnUmaSummaryListChanging(object sender, EventArgs e)
377+ {
378+ DisconnectDataSource(dataGridView1);
379+ DisconnectDataSource(dataGridView2);
380+ }
381+
382+ private static void DisconnectDataSource(DataGridView dataGridView)
383+ {
384+ dataGridView.DataSource = null;
385+ dataGridView.Invalidate();
340386 }
341387
342388 private void OnViewModelChanged(object sender, EventArgs e)
@@ -346,26 +392,61 @@ namespace UmaTest.App.Presentation.View
346392 switch (args.PropertyName)
347393 {
348394 case "UmaSummaryList":
349- dataGridView1.SuspendLayout();
350- dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
351- dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
352- bindingSource1.DataSource = vm.UmaSummaryList;
353- dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
354- dataGridView1.AutoSizeColumnsMode = vm.UmaSummaryList.Count > 0
355- ? DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader
356- : DataGridViewAutoSizeColumnsMode.AllCells;
357- dataGridView1.ResumeLayout();
395+ {
396+ bindingSource1.DataSource = vm.UmaSummaryList;
397+ AdjustDataGridView(dataGridView1, bindingSource1, vm.UmaSummaryList.Count, splitContainer2.Panel1);
398+
399+ splitContainer2.FixedPanel = FixedPanel.None;
400+ int newHeight = dataGridView1.ColumnHeadersHeight
401+ + (dataGridView1.Rows.Count > 0 ? dataGridView1.Rows.Count * dataGridView1.Rows[0].Height : 0)
402+ + SystemInformation.HorizontalScrollBarHeight
403+ + 2;
404+ splitContainer2.SplitterDistance = (newHeight > 100 ? newHeight : 100) + 2;
405+ splitContainer2.FixedPanel = FixedPanel.Panel1;
406+ }
358407 break;
408+
359409 case "RaceList":
360- dataGridView2.SuspendLayout();
361- //dataGridView2.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
362- dataGridView2.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
363- bindingSource2.DataSource = vm.RaceList;
364- //dataGridView2.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
365- dataGridView2.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
366- dataGridView2.ResumeLayout();
410+ {
411+ bindingSource2.DataSource = vm.RaceList;
412+ AdjustDataGridView(dataGridView2, bindingSource2, vm.RaceList.Count, splitContainer2.Panel2);
413+ }
367414 break;
368415 }
369416 }
417+
418+ private void AdjustDataGridView(DataGridView dataGridView, BindingSource bindingSource, int dataSourceCount, Panel panel)
419+ {
420+ Size size = dataGridView.Size;
421+
422+ dataGridView.SuspendLayout();
423+
424+ dataGridView.ScrollBars = ScrollBars.None;
425+ panel.BackColor = SystemColors.ControlText;
426+
427+ size.Height = size.Height - 1;
428+ dataGridView.Size = size;
429+
430+ dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
431+ dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
432+ dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing;
433+ dataGridView.DataSource = bindingSource;
434+
435+ dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
436+ dataGridView.AutoSizeColumnsMode = dataSourceCount > 0
437+ ? DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader
438+ : DataGridViewAutoSizeColumnsMode.AllCells;
439+ dataGridView.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
440+
441+ size.Height = size.Height + 1;
442+ dataGridView.Size = size;
443+
444+ dataGridView.ScrollBars = ScrollBars.Both;
445+ panel.BackColor = SystemColors.AppWorkspace;
446+
447+ dataGridView.ClearSelection();
448+
449+ dataGridView.ResumeLayout();
450+ }
370451 }
371452 }
--- a/App/Presentation/View/ManualHorseListView.Designer.cs
+++ b/App/Presentation/View/ManualHorseListView.Designer.cs
@@ -65,6 +65,7 @@ namespace UmaTest.App.Presentation.View
6565 // txtHorseList
6666 //
6767 this.txtHorseList.Dock = System.Windows.Forms.DockStyle.Fill;
68+ this.txtHorseList.Font = new System.Drawing.Font("Meiryo UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
6869 this.txtHorseList.Location = new System.Drawing.Point(0, 0);
6970 this.txtHorseList.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
7071 this.txtHorseList.Multiline = true;
--- a/App/Presentation/View/SearchRaceView.Designer.cs
+++ b/App/Presentation/View/SearchRaceView.Designer.cs
@@ -29,6 +29,8 @@ namespace UmaTest.App.Presentation.View
2929 /// </summary>
3030 private void InitializeComponent()
3131 {
32+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
33+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
3234 this.splitContainer1 = new System.Windows.Forms.SplitContainer();
3335 this.dataGridView1 = new System.Windows.Forms.DataGridView();
3436 this.btnSearch = new System.Windows.Forms.Button();
@@ -59,8 +61,8 @@ namespace UmaTest.App.Presentation.View
5961 this.splitContainer1.Panel2.Controls.Add(this.btnSearch);
6062 this.splitContainer1.Panel2.Controls.Add(this.btnCancel);
6163 this.splitContainer1.Panel2.Controls.Add(this.btnSelect);
62- this.splitContainer1.Size = new System.Drawing.Size(552, 563);
63- this.splitContainer1.SplitterDistance = 500;
64+ this.splitContainer1.Size = new System.Drawing.Size(695, 584);
65+ this.splitContainer1.SplitterDistance = 521;
6466 this.splitContainer1.TabIndex = 0;
6567 //
6668 // dataGridView1
@@ -68,21 +70,39 @@ namespace UmaTest.App.Presentation.View
6870 this.dataGridView1.AllowUserToAddRows = false;
6971 this.dataGridView1.AllowUserToDeleteRows = false;
7072 this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.ColumnHeader;
73+ dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
74+ dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
75+ dataGridViewCellStyle1.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
76+ dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
77+ dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
78+ dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
79+ dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
80+ this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
7181 this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
82+ dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
83+ dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window;
84+ dataGridViewCellStyle2.Font = new System.Drawing.Font("Meiryo UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
85+ dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText;
86+ dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
87+ dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
88+ dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
89+ this.dataGridView1.DefaultCellStyle = dataGridViewCellStyle2;
7290 this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
7391 this.dataGridView1.Location = new System.Drawing.Point(0, 0);
7492 this.dataGridView1.MultiSelect = false;
7593 this.dataGridView1.Name = "dataGridView1";
94+ this.dataGridView1.ReadOnly = true;
7695 this.dataGridView1.RowTemplate.Height = 21;
96+ this.dataGridView1.RowTemplate.ReadOnly = true;
7797 this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
78- this.dataGridView1.Size = new System.Drawing.Size(552, 500);
98+ this.dataGridView1.Size = new System.Drawing.Size(695, 521);
7999 this.dataGridView1.TabIndex = 0;
80100 //
81101 // btnSearch
82102 //
83103 this.btnSearch.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
84104 this.btnSearch.DialogResult = System.Windows.Forms.DialogResult.Cancel;
85- this.btnSearch.Location = new System.Drawing.Point(474, 3);
105+ this.btnSearch.Location = new System.Drawing.Point(617, 3);
86106 this.btnSearch.Name = "btnSearch";
87107 this.btnSearch.Size = new System.Drawing.Size(75, 24);
88108 this.btnSearch.TabIndex = 2;
@@ -93,7 +113,7 @@ namespace UmaTest.App.Presentation.View
93113 //
94114 this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
95115 this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
96- this.btnCancel.Location = new System.Drawing.Point(394, 32);
116+ this.btnCancel.Location = new System.Drawing.Point(537, 32);
97117 this.btnCancel.Name = "btnCancel";
98118 this.btnCancel.Size = new System.Drawing.Size(74, 25);
99119 this.btnCancel.TabIndex = 1;
@@ -104,7 +124,7 @@ namespace UmaTest.App.Presentation.View
104124 //
105125 this.btnSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
106126 this.btnSelect.DialogResult = System.Windows.Forms.DialogResult.Cancel;
107- this.btnSelect.Location = new System.Drawing.Point(474, 33);
127+ this.btnSelect.Location = new System.Drawing.Point(617, 33);
108128 this.btnSelect.Name = "btnSelect";
109129 this.btnSelect.Size = new System.Drawing.Size(75, 24);
110130 this.btnSelect.TabIndex = 0;
@@ -117,7 +137,7 @@ namespace UmaTest.App.Presentation.View
117137 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
118138 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
119139 this.CancelButton = this.btnCancel;
120- this.ClientSize = new System.Drawing.Size(552, 563);
140+ this.ClientSize = new System.Drawing.Size(695, 584);
121141 this.ControlBox = false;
122142 this.Controls.Add(this.splitContainer1);
123143 this.MaximizeBox = false;
--- a/App/Presentation/View/TokuRaceListView.Designer.cs
+++ b/App/Presentation/View/TokuRaceListView.Designer.cs
@@ -29,6 +29,8 @@ namespace UmaTest.App.Presentation.View
2929 /// </summary>
3030 private void InitializeComponent()
3131 {
32+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
33+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
3234 this.splitContainer1 = new System.Windows.Forms.SplitContainer();
3335 this.dataGridView1 = new System.Windows.Forms.DataGridView();
3436 this.btnCancel = new System.Windows.Forms.Button();
@@ -66,7 +68,23 @@ namespace UmaTest.App.Presentation.View
6668 this.dataGridView1.AllowUserToAddRows = false;
6769 this.dataGridView1.AllowUserToDeleteRows = false;
6870 this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.ColumnHeader;
71+ dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
72+ dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
73+ dataGridViewCellStyle1.Font = new System.Drawing.Font("MS UI Gothic", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
74+ dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
75+ dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
76+ dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
77+ dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
78+ this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
6979 this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
80+ dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
81+ dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window;
82+ dataGridViewCellStyle2.Font = new System.Drawing.Font("Meiryo UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
83+ dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText;
84+ dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
85+ dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
86+ dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
87+ this.dataGridView1.DefaultCellStyle = dataGridViewCellStyle2;
7088 this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
7189 this.dataGridView1.Location = new System.Drawing.Point(0, 0);
7290 this.dataGridView1.MultiSelect = false;
--- /dev/null
+++ b/Infra/Adaptor/Controller/EventObserver.cs
@@ -0,0 +1,29 @@
1+using System;
2+using System.Collections.Generic;
3+
4+namespace UmaTest.Infra.Adaptor.Controller
5+{
6+ public class EventObserver
7+ {
8+ List<EventHandler> delegates = new List<EventHandler>();
9+
10+ public static EventObserver operator +(EventObserver o, EventHandler a)
11+ {
12+ o.delegates.Add(a);
13+
14+ return o;
15+ }
16+
17+ public static EventObserver operator -(EventObserver o, EventHandler a)
18+ {
19+ o.delegates.RemoveAll(e => e == a);
20+
21+ return o;
22+ }
23+
24+ public void Raise(object sender, EventArgs e)
25+ {
26+ delegates.ForEach(a => a.Invoke(sender, e));
27+ }
28+ }
29+}
\ No newline at end of file
--- a/Infra/Adaptor/Controller/IWindowController.cs
+++ b/Infra/Adaptor/Controller/IWindowController.cs
@@ -10,9 +10,7 @@ namespace UmaTest.Infra.Adaptor.Controller
1010 public interface IWindowController
1111 {
1212 Dictionary<string, ICommand> Commands { get; }
13- Dictionary<string, EventHandler> Events { get; }
14- Dictionary<string, MouseEventHandler> MouseEvents { get; }
15-
13+ Dictionary<string, EventObserver> Events { get; }
1614 UseCaseResponse Execute(UseCaseRequest req);
1715
1816 Task<UseCaseResponse> ExecuteAsync(UseCaseRequest req);
--- a/Infra/Helper/CodeHelper.cs
+++ b/Infra/Helper/CodeHelper.cs
@@ -14,8 +14,11 @@ namespace UmaTest.Infra.Helper
1414 public static readonly string JYO_CODE = "2001";
1515 public static readonly string GRADE_CODE = "2003";
1616 public static readonly string JYOKEN_CODE = "2007";
17+
1718 public static readonly string SEX_CODE = "2202";
1819
20+ public static readonly string KYAKUSITU_KUBUN = "9201";
21+
1922 private const string ERROR_VALUE = "#ERROR";
2023
2124 private static CodeHelper me = null;
@@ -136,6 +139,14 @@ namespace UmaTest.Infra.Helper
136139
137140 Logger.Debug($"CodeMaster [code={code}, value={value}, {String.Join(", ", names)}]");
138141 }
142+
143+ var kyakusituKbn = new Dictionary<string, string[]>();
144+ master.Add(KYAKUSITU_KUBUN, kyakusituKbn);
145+ kyakusituKbn.Add("0", new string[] { "-" });
146+ kyakusituKbn.Add("1", new string[] { "逃げ" });
147+ kyakusituKbn.Add("2", new string[] { "先行" });
148+ kyakusituKbn.Add("3", new string[] { "差し" });
149+ kyakusituKbn.Add("4", new string[] { "追込" });
139150 }
140151 }
141152 }
--- a/UmaTest.csproj
+++ b/UmaTest.csproj
@@ -102,6 +102,7 @@
102102 <Reference Include="System.Xml" />
103103 </ItemGroup>
104104 <ItemGroup>
105+ <Compile Include="Infra\Adaptor\Controller\EventObserver.cs" />
105106 <Compile Include="App\Adaptor\Gateway\UI\IManualHorseListProxy.cs" />
106107 <Compile Include="App\Adaptor\Gateway\UI\ISearchRaceViewProxy.cs" />
107108 <Compile Include="App\Adaptor\Gateway\UI\SearchRaceViewProxy.cs" />