Create team form is ready (nearly)
This commit is contained in:
@ -9,6 +9,7 @@ namespace TrackerLibrary.DataAccess
|
|||||||
{
|
{
|
||||||
PrizeModel CreatePrize(PrizeModel model);
|
PrizeModel CreatePrize(PrizeModel model);
|
||||||
PersonModel CreatePerson(PersonModel model);
|
PersonModel CreatePerson(PersonModel model);
|
||||||
|
TeamModel CreateTeam(TeamModel model);
|
||||||
List<PersonModel> GetPerson_All();
|
List<PersonModel> GetPerson_All();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,7 +20,8 @@ namespace TrackerLibrary.DataAccess
|
|||||||
private const string db = "Tournaments";
|
private const string db = "Tournaments";
|
||||||
public PersonModel CreatePerson(PersonModel model)
|
public PersonModel CreatePerson(PersonModel model)
|
||||||
{
|
{
|
||||||
using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(GlobalConfig.CnnString(db))) {
|
using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(GlobalConfig.CnnString(db)))
|
||||||
|
{
|
||||||
var p = new DynamicParameters();
|
var p = new DynamicParameters();
|
||||||
p.Add("@FirstName", model.FirstName);
|
p.Add("@FirstName", model.FirstName);
|
||||||
p.Add("@LastName", model.LastName);
|
p.Add("@LastName", model.LastName);
|
||||||
@ -61,6 +62,33 @@ namespace TrackerLibrary.DataAccess
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TeamModel CreateTeam(TeamModel model)
|
||||||
|
{
|
||||||
|
using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(GlobalConfig.CnnString(db)))
|
||||||
|
{
|
||||||
|
var p = new DynamicParameters();
|
||||||
|
p.Add("@TeamName", model.TeamName);
|
||||||
|
p.Add("@Id", 0, dbType: DbType.Int32, direction: ParameterDirection.Output);
|
||||||
|
|
||||||
|
connection.Execute("dbo.spTeams_Insert", p, commandType: CommandType.StoredProcedure);
|
||||||
|
|
||||||
|
model.Id = p.Get<int>("@Id");
|
||||||
|
|
||||||
|
foreach(PersonModel tm in model.TeamMembers)
|
||||||
|
{
|
||||||
|
p = new DynamicParameters();
|
||||||
|
p.Add("@TeamId", model.Id);
|
||||||
|
p.Add("@PersonId", tm.Id);
|
||||||
|
|
||||||
|
connection.Execute("dbo.spTeamMembers_Insert", p, commandType: CommandType.StoredProcedure);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public List<PersonModel> GetPerson_All()
|
public List<PersonModel> GetPerson_All()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@ -11,6 +11,7 @@ namespace TrackerLibrary.DataAccess
|
|||||||
{
|
{
|
||||||
private const string PrizesFile = "PrizeModels.csv";
|
private const string PrizesFile = "PrizeModels.csv";
|
||||||
private const string PeopleFile = "PersonModels.csv";
|
private const string PeopleFile = "PersonModels.csv";
|
||||||
|
private const string TeamFile = "TeamModels.csv";
|
||||||
|
|
||||||
public PersonModel CreatePerson(PersonModel model)
|
public PersonModel CreatePerson(PersonModel model)
|
||||||
{
|
{
|
||||||
@ -59,6 +60,35 @@ namespace TrackerLibrary.DataAccess
|
|||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TeamModel CreateTeam(TeamModel model)
|
||||||
|
{
|
||||||
|
// Load the text file
|
||||||
|
// Convert the text to a List>PrizeModel>
|
||||||
|
List<TeamModel> teams = TeamFile.FullFilePath().LoadFile().ConvertToTeamModels(PeopleFile);
|
||||||
|
|
||||||
|
// Find the max Id
|
||||||
|
|
||||||
|
int currentId = 1;
|
||||||
|
|
||||||
|
if (teams.Count > 0)
|
||||||
|
{
|
||||||
|
currentId = teams.OrderByDescending(x => x.Id).First().Id + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
model.Id = currentId;
|
||||||
|
|
||||||
|
// Add the new record with the new ID (max +1)
|
||||||
|
teams.Add(model);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Convert the prizes to a List<string>
|
||||||
|
// Save the list<String> to the text file
|
||||||
|
teams.SaveToTeamFile(TeamFile);
|
||||||
|
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
|
||||||
public List<PersonModel> GetPerson_All()
|
public List<PersonModel> GetPerson_All()
|
||||||
{
|
{
|
||||||
return PeopleFile.FullFilePath().LoadFile().ConvertToPersonModels();
|
return PeopleFile.FullFilePath().LoadFile().ConvertToPersonModels();
|
||||||
|
|||||||
@ -61,7 +61,38 @@ namespace TrackerLibrary.DataAccess.TextHelpers
|
|||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SaveToPrizeFile(this List<PrizeModel> models, string fileName)
|
public static List<TeamModel> ConvertToTeamModels(this List<string> lines, string peopleFileName)
|
||||||
|
{
|
||||||
|
// id, team name,list of ids separated by pipe
|
||||||
|
// 3,Start Team, 1|4
|
||||||
|
List<TeamModel> output = new List<TeamModel>();
|
||||||
|
List<PersonModel> people = peopleFileName.FullFilePath().LoadFile().ConvertToPersonModels();
|
||||||
|
|
||||||
|
foreach (string line in lines)
|
||||||
|
{
|
||||||
|
string[] cols = line.Split(',');
|
||||||
|
|
||||||
|
TeamModel t = new TeamModel();
|
||||||
|
t.Id = int.Parse(cols[0]);
|
||||||
|
t.TeamName = cols[1];
|
||||||
|
|
||||||
|
string[] personIds = cols[2].Split('|');
|
||||||
|
|
||||||
|
foreach(string id in personIds)
|
||||||
|
{
|
||||||
|
t.TeamMembers.Add(people.Where(x => x.Id == int.Parse(id)).First());
|
||||||
|
}
|
||||||
|
|
||||||
|
output.Add(t);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static void SaveToPrizeFile(this List<PrizeModel> models, string fileName)
|
||||||
{
|
{
|
||||||
List<string> lines = new List<string>();
|
List<string> lines = new List<string>();
|
||||||
|
|
||||||
@ -83,5 +114,32 @@ namespace TrackerLibrary.DataAccess.TextHelpers
|
|||||||
File.WriteAllLines(fileName.FullFilePath(), lines);
|
File.WriteAllLines(fileName.FullFilePath(), lines);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void SaveToTeamFile(this List<TeamModel> models, string fileName)
|
||||||
|
{
|
||||||
|
List<string> lines = new List<string>();
|
||||||
|
foreach(TeamModel t in models)
|
||||||
|
{
|
||||||
|
lines.Add($"{t.Id},{t.TeamName},{ConvertPeopleListToString(t.TeamMembers)}");
|
||||||
|
}
|
||||||
|
|
||||||
|
File.WriteAllLines(fileName.FullFilePath(), lines);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string ConvertPeopleListToString(List<PersonModel> people)
|
||||||
|
{
|
||||||
|
string output = "";
|
||||||
|
if (people.Count==0)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
foreach(PersonModel p in people)
|
||||||
|
{
|
||||||
|
output += $"{p.Id}|";
|
||||||
|
}
|
||||||
|
|
||||||
|
output = output.Substring(0, output.Length - 1);
|
||||||
|
return output;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ namespace TrackerLibrary.Models
|
|||||||
{
|
{
|
||||||
public class TeamModel
|
public class TeamModel
|
||||||
{
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
public List<PersonModel> TeamMembers { get; set; } = new List<PersonModel>();
|
public List<PersonModel> TeamMembers { get; set; } = new List<PersonModel>();
|
||||||
public string TeamName { get; set; }
|
public string TeamName { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
1
TrackerUI/CreateTeamForm.Designer.cs
generated
1
TrackerUI/CreateTeamForm.Designer.cs
generated
@ -265,6 +265,7 @@
|
|||||||
this.createTeamButton.TabIndex = 23;
|
this.createTeamButton.TabIndex = 23;
|
||||||
this.createTeamButton.Text = "Create Team";
|
this.createTeamButton.Text = "Create Team";
|
||||||
this.createTeamButton.UseVisualStyleBackColor = true;
|
this.createTeamButton.UseVisualStyleBackColor = true;
|
||||||
|
this.createTeamButton.Click += new System.EventHandler(this.createTeamButton_Click);
|
||||||
//
|
//
|
||||||
// CreateTeamForm
|
// CreateTeamForm
|
||||||
//
|
//
|
||||||
|
|||||||
@ -121,5 +121,16 @@ namespace TrackerUI
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createTeamButton_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
TeamModel t = new TeamModel();
|
||||||
|
t.TeamName = createdTeamNameValue.Text;
|
||||||
|
t.TeamMembers = selectedTeamMembers;
|
||||||
|
|
||||||
|
t = GlobalConfig.Connection.CreateTeam(t);
|
||||||
|
|
||||||
|
// TODO - if we arent closing the form after insertion , reset the form
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user