Wireup window with access methods + refaktor structure

This commit is contained in:
2020-03-22 21:52:02 +01:00
parent b1e62e829e
commit 88bd9b894a
16 changed files with 230 additions and 39 deletions

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Text;
using TrackerLibrary.Models;
namespace TrackerLibrary.DataAccess
{
public interface IDataConnection
{
PrizeModel CreatePrize(PrizeModel model);
}
}

View File

@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace TrackerLibrary.DataAccess
{
public class SqlConnector : IDataConnection
{
// TODO - Make the CreatePrize method actually save to the database
/// <summary>
/// Saves a prize to the database
/// </summary>
/// <param name="model">The prize information.</param>
/// <returns>The prize information, including the unique identifier.</returns>
public Models.PrizeModel CreatePrize(Models.PrizeModel model)
{
model.Id = 1;
return model;
}
}
}

View File

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Text;
using TrackerLibrary.Models;
namespace TrackerLibrary.DataAccess
{
public class TextConnector : IDataConnection
{
// TODO - Wire up the createPrize for textFiles
public PrizeModel CreatePrize(PrizeModel model)
{
model.Id = 1;
return model;
}
}
}

View File

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Text;
using TrackerLibrary.DataAccess;
namespace TrackerLibrary
{
public static class GlobalConfig
{
public static List<IDataConnection> Connections { get; private set; } = new List<IDataConnection>();
public static void InitializeConnections(bool database, bool textFiles)
{
if (database)
{
// TODO - Set up the sql connector properly !
SqlConnector sql = new SqlConnector();
Connections.Add(sql);
}
if (textFiles)
{
// TODO - Create the text Connection
TextConnector text = new TextConnector();
Connections.Add(text);
}
}
}
}

View File

@ -2,7 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
namespace TrackerLibrary namespace TrackerLibrary.Models
{ {
public class MatchupEntryModel public class MatchupEntryModel
{ {

View File

@ -2,7 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
namespace TrackerLibrary namespace TrackerLibrary.Models
{ {
/// <summary> /// <summary>
/// Represents one match in the tournament. /// Represents one match in the tournament.

View File

@ -2,7 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
namespace TrackerLibrary namespace TrackerLibrary.Models
{ {
public class PersonModel public class PersonModel
{ {

View File

@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace TrackerLibrary.Models
{
public class PrizeModel
{
/// <summary>
/// The unique identifier for the prize
/// </summary>
public int Id { get; set; }
public int PlaceNumber { get; set; }
public string PlaceName { get; set; }
public decimal PrizeAmount { get; set; }
public double PrizePercentage { get; set; }
public PrizeModel()
{
}
public PrizeModel(string placeName, string placeNumber, string prizeAmount, string prizePercentage)
{
PlaceName = placeName;
int placeNumberValue = 0;
int.TryParse(placeNumber, out placeNumberValue);
PlaceNumber = placeNumberValue;
decimal prizeAmountValue = 0;
decimal.TryParse(prizeAmount, out prizeAmountValue);
PrizeAmount = prizeAmountValue;
double prizePercentageValue = 0;
double.TryParse(prizePercentage, out prizePercentageValue);
PrizePercentage = prizePercentageValue;
}
}
}

View File

@ -2,7 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
namespace TrackerLibrary namespace TrackerLibrary.Models
{ {
public class TeamModel public class TeamModel
{ {

View File

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace TrackerLibrary.Models
{
public class TournamentModel
{
public string TournamentName { get; set; }
public decimal EntryFee { get; set; }
public List<Models.TeamModel> EnteredTeams { get; set; } = new List<Models.TeamModel>();
public List<Models.PrizeModel> Prizes { get; set; } = new List<Models.PrizeModel>();
public List<List<Models.MatchupModel>> MyProperty { get; set; } = new List<List<Models.MatchupModel>>();
}
}

View File

@ -1,15 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace TrackerLibrary
{
public class PrizeModel
{
public int PlaceNumber { get; set; }
public string PlaceName { get; set; }
public decimal PrizeAmount { get; set; }
public double PrizePercentage { get; set; }
}
}

View File

@ -1,15 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace TrackerLibrary
{
public class TournamentModel
{
public string TournamentName { get; set; }
public decimal EntryFee { get; set; }
public List<TeamModel> EnteredTeams { get; set; } = new List<TeamModel>();
public List<PrizeModel> Prizes { get; set; } = new List<PrizeModel>();
public List<List<MatchupModel>> MyProperty { get; set; } = new List<List<MatchupModel>>();
}
}

View File

@ -59,7 +59,7 @@
this.placeNumberValue.Location = new System.Drawing.Point(183, 83); this.placeNumberValue.Location = new System.Drawing.Point(183, 83);
this.placeNumberValue.Name = "placeNumberValue"; this.placeNumberValue.Name = "placeNumberValue";
this.placeNumberValue.Size = new System.Drawing.Size(234, 35); this.placeNumberValue.Size = new System.Drawing.Size(234, 35);
this.placeNumberValue.TabIndex = 14; this.placeNumberValue.TabIndex = 1;
// //
// placeNumberLabel // placeNumberLabel
// //
@ -78,7 +78,8 @@
this.prizePercentageValue.Location = new System.Drawing.Point(183, 296); this.prizePercentageValue.Location = new System.Drawing.Point(183, 296);
this.prizePercentageValue.Name = "prizePercentageValue"; this.prizePercentageValue.Name = "prizePercentageValue";
this.prizePercentageValue.Size = new System.Drawing.Size(234, 35); this.prizePercentageValue.Size = new System.Drawing.Size(234, 35);
this.prizePercentageValue.TabIndex = 16; this.prizePercentageValue.TabIndex = 4;
this.prizePercentageValue.Text = "0";
// //
// prizePercentageLabel // prizePercentageLabel
// //
@ -97,7 +98,8 @@
this.prizeAmountValue.Location = new System.Drawing.Point(183, 185); this.prizeAmountValue.Location = new System.Drawing.Point(183, 185);
this.prizeAmountValue.Name = "prizeAmountValue"; this.prizeAmountValue.Name = "prizeAmountValue";
this.prizeAmountValue.Size = new System.Drawing.Size(234, 35); this.prizeAmountValue.Size = new System.Drawing.Size(234, 35);
this.prizeAmountValue.TabIndex = 18; this.prizeAmountValue.TabIndex = 3;
this.prizeAmountValue.Text = "0";
// //
// prizeAmountLabel // prizeAmountLabel
// //
@ -116,7 +118,7 @@
this.placeNameValue.Location = new System.Drawing.Point(183, 134); this.placeNameValue.Location = new System.Drawing.Point(183, 134);
this.placeNameValue.Name = "placeNameValue"; this.placeNameValue.Name = "placeNameValue";
this.placeNameValue.Size = new System.Drawing.Size(234, 35); this.placeNameValue.Size = new System.Drawing.Size(234, 35);
this.placeNameValue.TabIndex = 20; this.placeNameValue.TabIndex = 2;
// //
// placeNameLabel // placeNameLabel
// //
@ -154,6 +156,7 @@
this.createPrizeButton.TabIndex = 24; this.createPrizeButton.TabIndex = 24;
this.createPrizeButton.Text = "Create Prize"; this.createPrizeButton.Text = "Create Prize";
this.createPrizeButton.UseVisualStyleBackColor = true; this.createPrizeButton.UseVisualStyleBackColor = true;
this.createPrizeButton.Click += new System.EventHandler(this.createPrizeButton_Click);
// //
// CreatePrizeForm // CreatePrizeForm
// //

View File

@ -7,6 +7,8 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using TrackerLibrary;
using TrackerLibrary.Models;
namespace TrackerUI namespace TrackerUI
{ {
@ -16,5 +18,77 @@ namespace TrackerUI
{ {
InitializeComponent(); InitializeComponent();
} }
private void createPrizeButton_Click(object sender, EventArgs e)
{
if (ValidateForm())
{
PrizeModel model = new PrizeModel(
placeNameValue.Text,
placeNumberValue.Text,
prizeAmountValue.Text,
prizePercentageValue.Text);
foreach (var db in GlobalConfig.Connections)
{
db.CreatePrize(model);
}
placeNameValue.Text = "";
placeNumberValue.Text = "";
prizeAmountValue.Text = "0";
prizePercentageValue.Text = "0";
}
else
{
MessageBox.Show("This form has invalid information. Please check it and try again.");
}
}
private bool ValidateForm()
{
bool output = true;
int placeNumber = 0;
bool placeNumberValidator = int.TryParse(placeNumberValue.Text, out placeNumber);
if (!placeNumberValidator)
{
output = false;
}
if (placeNumber < 1)
{
output = false;
}
if (placeNameValue.Text.Length == 0)
{
output = false;
}
decimal prizeAmount = 0;
int prizePercentage = 0;
bool prizeAmountValid = decimal.TryParse(prizeAmountValue.Text, out prizeAmount);
bool prizePercentageValid = int.TryParse(prizeAmountValue.Text, out prizePercentage);
if (prizePercentageValid == false || prizeAmountValid == false)
{
output = false;
}
if (prizeAmount <= 0 && prizePercentage <= 0)
{
output = false;
}
if (prizePercentage < 0 || prizePercentage > 100)
{
output = false;
}
return output;
}
} }
} }

View File

@ -16,7 +16,12 @@ namespace TrackerUI
{ {
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new TournamentViewerForm());
// Initialize the database connections
TrackerLibrary.GlobalConfig.InitializeConnections(true, true);
Application.Run(new CreatePrizeForm());
//Application.Run(new TournamentDashboardForm());
} }
} }
} }

View File

@ -115,5 +115,11 @@
<ItemGroup> <ItemGroup>
<None Include="App.config" /> <None Include="App.config" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\TrackerLibrary\TrackerLibrary.csproj">
<Project>{b4ffd708-5d53-4d58-b5a6-5691020ef6dc}</Project>
<Name>TrackerLibrary</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project> </Project>