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.Text;
namespace TrackerLibrary
namespace TrackerLibrary.Models
{
public class MatchupEntryModel
{

View File

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

View File

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

View File

@ -7,6 +7,8 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using TrackerLibrary;
using TrackerLibrary.Models;
namespace TrackerUI
{
@ -16,5 +18,77 @@ namespace TrackerUI
{
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.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>
<None Include="App.config" />
</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" />
</Project>