Create Prize and create Team ready

This commit is contained in:
2020-05-17 16:41:53 +02:00
parent effdbe02b4
commit c13e2f3ccb
9 changed files with 406 additions and 2 deletions

View File

@ -0,0 +1,104 @@
using Caliburn.Micro;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TrackerLibrary;
using TrackerLibrary.Models;
namespace TrackerWPFUI.ViewModels
{
public class CreatePrizeViewModel : Screen
{
private int _placeNumber;
private string _placeName;
private decimal _prizeAmount;
private double _prizePercentage;
public int PlaceNumber
{
get { return _placeNumber; }
set {
_placeNumber = value;
NotifyOfPropertyChange(() => PlaceNumber);
}
}
public string PlaceName
{
get { return _placeName; }
set { _placeName = value;
NotifyOfPropertyChange(() => PlaceName);
}
}
public decimal PrizeAmount
{
get { return _prizeAmount; }
set { _prizeAmount = value;
NotifyOfPropertyChange(() => PrizeAmount);
}
}
public double PrizePercentage
{
get { return _prizePercentage; }
set { _prizePercentage = value;
NotifyOfPropertyChange(() => PrizePercentage);
}
}
public bool CanCreatePrize(int placeNumber, string placeName, decimal prizeAmount, double prizePercentage)
{
return ValidateForm(placeNumber, placeName, prizeAmount, prizePercentage);
}
public void CreatePrize(int placeNumber, string placeName, decimal prizeAmount, double prizePercentage)
{
PrizeModel model = new PrizeModel
{
PlaceNumber = placeNumber,
PlaceName = placeName,
PrizeAmount = prizeAmount,
PrizePercentage = prizePercentage
};
GlobalConfig.Connection.CreatePrize(model);
//TODO Close out the form and alert the calling form
}
private bool ValidateForm(int placeNumber, string placeName, decimal prizeAmount, double prizePercentage)
{
bool output = true;
if (placeNumber < 1)
{
output = false;
}
if (placeName.Length == 0)
{
output = false;
}
if (prizeAmount <= 0 && prizePercentage <= 0)
{
output = false;
}
if (prizePercentage < 0 || prizePercentage > 100)
{
output = false;
}
return output;
}
}
}

View File

@ -0,0 +1,145 @@
using Caliburn.Micro;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TrackerLibrary;
using TrackerLibrary.Models;
namespace TrackerWPFUI.ViewModels
{
public class CreateTeamViewModel : Conductor<object>
{
private string _teamName = "";
private BindableCollection<PersonModel> _availableTeamMembers;
private PersonModel _selectedTeamMemberToAdd;
private BindableCollection<PersonModel> _selectedTeamMembers = new BindableCollection<PersonModel>();
private PersonModel _selectedTeamMemberToRemove;
public CreateTeamViewModel()
{
AvailableTeamMembers = new BindableCollection<PersonModel>(GlobalConfig.Connection.GetPerson_All());
}
public string TeamName
{
get { return _teamName; }
set
{
_teamName = value;
NotifyOfPropertyChange(() => TeamName);
NotifyOfPropertyChange(() => CanCreateTeam);
}
}
public BindableCollection<PersonModel> AvailableTeamMembers
{
get { return _availableTeamMembers; }
set { _availableTeamMembers = value; }
}
public BindableCollection<PersonModel> SelectedTeamMembers
{
get { return _selectedTeamMembers; }
set
{
_selectedTeamMembers = value;
NotifyOfPropertyChange(() => CanCreateTeam);
}
}
public PersonModel SelectedTeamMemberToAdd
{
get { return _selectedTeamMemberToAdd; }
set
{
_selectedTeamMemberToAdd = value;
NotifyOfPropertyChange(() => SelectedTeamMemberToAdd);
NotifyOfPropertyChange(() => CanAddMember);
}
}
public bool CanAddMember
{
get
{
return SelectedTeamMemberToAdd != null;
}
}
public void AddMember()
{
SelectedTeamMembers.Add(SelectedTeamMemberToAdd);
AvailableTeamMembers.Remove(SelectedTeamMemberToAdd );
NotifyOfPropertyChange(() => CanCreateTeam);
}
public PersonModel SelectedTeamMemberToRemove
{
get { return _selectedTeamMemberToRemove; }
set
{
_selectedTeamMemberToRemove = value;
NotifyOfPropertyChange(() => SelectedTeamMemberToRemove);
NotifyOfPropertyChange(() => CanRemoveMember);
}
}
public bool CanRemoveMember
{
get
{
return SelectedTeamMemberToRemove != null;
}
}
public void RemoveMember()
{
AvailableTeamMembers.Add(SelectedTeamMemberToRemove);
SelectedTeamMembers.Remove(SelectedTeamMemberToRemove);
NotifyOfPropertyChange(() => CanCreateTeam);
}
public void CreateMember()
{
}
public bool CanCreateTeam
{
get
{
if (SelectedTeamMembers != null)
{
if (TeamName.Length > 0 && SelectedTeamMembers.Count > 0)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
}
public void CreateTeam()
{
TeamModel t = new TeamModel();
t.TeamName = TeamName;
t.TeamMembers = SelectedTeamMembers.ToList();
GlobalConfig.Connection.CreateTeam(t);
//TODO - Pass the team back to the parent and close the form
}
}
}

View File

@ -9,7 +9,7 @@ using TrackerLibrary.Models;
namespace TrackerWPFUI.ViewModels
{
public class ShellViewModel : Conductor<object>
public class ShellViewModel : Conductor<object> //ActiveItem in Itemcontrol tells whats going on
{
public ShellViewModel()
@ -17,6 +17,8 @@ namespace TrackerWPFUI.ViewModels
// Initialize the database connections
GlobalConfig.InitializeConnections(DatabaseType.Sql);
_existingTournaments = new BindableCollection<TournamentModel>(GlobalConfig.Connection.GetTournament_All());
//ActivateItem(new CreatePrizeViewModel());
ActivateItem(new CreateTeamViewModel());
}
public void CreateTournament()
{