Skip to content

Commit

Permalink
Add Bettor und Season handling.
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanDeveloper committed Jun 20, 2017
1 parent 4d77909 commit ff4f156
Show file tree
Hide file tree
Showing 30 changed files with 468 additions and 71 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,10 @@ public Bettor ShowBettor()
_viewModel = new AddBettorWindowViewModel
{
OkCommand = new RelayCommand(ExecuteOkCommand),
CancelCommand = new RelayCommand(ExecuteCancelCommand)
CancelCommand = new RelayCommand(ExecuteCancelCommand),
Bettor = Bettor
};
_view.DataContext = _viewModel;
#endregion

return _view.ShowDialog() == true ? _viewModel.Bettor : null;
Expand Down
44 changes: 44 additions & 0 deletions LigaManagerAdminClient/Controllers/AddSeasonWindowController.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
using LigaManagerAdminClient.AdminClientService;
using LigaManagerAdminClient.ViewModels;
using LigaManagerAdminClient.Views;
using LigaManagerBettorClient.Frameworks;
using LigaManagerServer.Models;

namespace LigaManagerAdminClient.Controllers
{
public class AddSeasonWindowController
{
private AddSeasonWindow _view;
private AddSeasonWindowViewModel _viewModel;

public Season Season { get; set; }

public Season ShowSeason()
{
#region View And ViewModel
_view = new AddSeasonWindow();
_viewModel = new AddSeasonWindowViewModel
{
Season = Season,
OkCommand = new RelayCommand(ExecuteOkCommand),
CancelCommand = new RelayCommand(ExecuteCancelCommand),
};
_view.DataContext = _viewModel;
#endregion

return _view.ShowDialog() == true ? _viewModel.Season : null;
}

public void ExecuteOkCommand(object obj)
{
_view.DialogResult = true;
_view.Close();
}

public void ExecuteCancelCommand(object obj)
{
_view.DialogResult = false;
_view.Close();
}
}
}
44 changes: 44 additions & 0 deletions LigaManagerAdminClient/Controllers/AddTeamWindowController.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
using System.Collections.Generic;
using LigaManagerAdminClient.ViewModels;
using LigaManagerAdminClient.Views;
using LigaManagerBettorClient.Frameworks;
using LigaManagerServer.Models;

namespace LigaManagerAdminClient.Controllers
{
public class AddTeamWindowController
{
private AddTeamWindow _view;
private AddTeamWindowViewModel _viewModel;

public Team Team { get; set; }
public List<Season> Seasons { get; set; }

public Team ShowTeam()
{
#region View and ViewModel
_view = new AddTeamWindow();
_viewModel = new AddTeamWindowViewModel()
{
OkCommand = new RelayCommand(ExecuteOkCommand),
CancelCommand = new RelayCommand(ExecuteCancelCommand),
};
_view.DataContext = _viewModel;
#endregion

return _view.ShowDialog() == true ? _viewModel.Team : null;
}

public void ExecuteOkCommand(object obj)
{
_view.DialogResult = true;
_view.Close();
}

public void ExecuteCancelCommand(object obj)
{
_view.DialogResult = false;
_view.Close();
}
}
}
53 changes: 36 additions & 17 deletions LigaManagerAdminClient/Controllers/BettorWindowController.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
using System;
using System.Linq;
using System.Linq;
using System.Windows;
using LigaManagerAdminClient.AdminClientService;
using LigaManagerAdminClient.Framework;
using LigaManagerAdminClient.ViewModels;
using LigaManagerAdminClient.Views;
using LigaManagerBettorClient.Frameworks;
using Bettor = LigaManagerServer.Models.Bettor;
using LigaManagerServer.Models;

namespace LigaManagerAdminClient.Controllers
{
Expand Down Expand Up @@ -59,19 +58,28 @@ private async void ExecuteAddCommand(object obj)
var showBettor = addBettorWindow.ShowBettor();
// it could be possible that the bettor is null
if (showBettor == null) return;
// Check if service is available
if (!await AdminClientHelper.IsAvailable(_adminClient)) return;
// add bettor
var addBettorAsync = await _adminClient.AddBettorAsync(showBettor);

if (addBettorAsync)
{

ReloadBettors();
}
else
{

MessageBox.Show("Tipper konnte nicht hinzugefügt werden, da der Nickname schon vergeben ist!", "Hinzufügen fehlgeschlagen",
MessageBoxButton.OK, MessageBoxImage.Error);
}
}

private async void ReloadBettors()
{
var bettors = await _adminClient.GetBettorsAsync();
_viewModel.Bettors = bettors.ToList();
}

private async void ExecuteChangeCommand(object obj)
{
if (_viewModel.SelectedBettor == null)
Expand All @@ -88,36 +96,47 @@ private async void ExecuteChangeCommand(object obj)
var showBettor = addBettorWindow.ShowBettor();
// it could be possible that the bettor is null
if (showBettor == null) return;
// Check if service is available
if (!await AdminClientHelper.IsAvailable(_adminClient)) return;
// add bettor
var addBettorAsync = await _adminClient.UpdateBettorAsync(showBettor);

if (addBettorAsync)
{

ReloadBettors();
}
else
{

MessageBox.Show("Der Benutzer konnte nicht geändert werden!", "Änderung fehlgeschlagen",
MessageBoxButton.OK, MessageBoxImage.Error);
}
}

private void ExecuteDeleteCommand(object obj)
private async void ExecuteDeleteCommand(object obj)
{
if (_viewModel.SelectedBettor == null)
{
MessageBox.Show("Bitte wählen Sie einen Tipper aus!", "Kein Tipper ausgewählt",
MessageBoxButton.OK, MessageBoxImage.Warning);
return;
}
// Check if the user really want to delete the bettor
var messageBoxResult = MessageBox.Show("Sind Sie sicher, dass der Benutzer gelöscht werden soll!", "Benutzer löschen",
MessageBoxButton.YesNo, MessageBoxImage.Warning);
if (messageBoxResult != MessageBoxResult.Yes) return;

var allBets = _adminClient.GetAllBets();
var findAll = allBets.ToList().FindAll(x => x.DateTime > DateTime.Now && x.Bettor.Equals(_viewModel.SelectedBettor));
// if the user has any current bets, it's not possible to delete him
if (findAll.Count != 0)
// Check if service is available
if (!await AdminClientHelper.IsAvailable(_adminClient)) return;
// delete bettor
var isDeleted = _adminClient.DeleteBettor(_viewModel.SelectedBettor);
if (isDeleted)
{
ReloadBettors();
}
else
{
MessageBox.Show("Der Benutzer konnte nicht gelöscht werden, da noch Tipps vorhanden sind!", "Benutzer löschen",
MessageBox.Show("Tipper konnte nicht gelöscht werden!", "Löschen fehlgeschlagen",
MessageBoxButton.OK, MessageBoxImage.Error);
return;
}
_adminClient.DeleteBettor(_viewModel.SelectedBettor);
}
}
#endregion
}
Expand Down
135 changes: 132 additions & 3 deletions LigaManagerAdminClient/Controllers/SeasonWindowController.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,141 @@
using LigaManagerAdminClient.Views;
using System.Linq;
using System.Windows;
using LigaManagerAdminClient.AdminClientService;
using LigaManagerAdminClient.Framework;
using LigaManagerAdminClient.ViewModels;
using LigaManagerAdminClient.Views;
using LigaManagerBettorClient.Frameworks;
using LigaManagerServer.Models;

namespace LigaManagerAdminClient.Controllers
{
public class SeasonWindowController
{
public void Initialize(MainWindow mainWindow)
private SeasonWindow _view;
private SeasonWindowViewModel _viewModel;
private AdminClientServiceClient _adminClient;
private MainWindow _mainWindow;


public async void Initialize(MainWindow mainWindow)
{
_mainWindow = mainWindow;
_adminClient = new AdminClientServiceClient();

#region View And ViewModel
_view = new SeasonWindow();
var seasons = await _adminClient.GetSeasonsAsync();
_viewModel = new SeasonWindowViewModel
{
BackCommand = new RelayCommand(ExecuteBackCommand),
AddCommand = new RelayCommand(ExecuteAddCommand),
DeleteCommand = new RelayCommand(ExecuteDeleteCommand),
ChangeCommand = new RelayCommand(ExecuteChangeCommand),
Seasons = seasons.ToList(),
SelectedSeason = seasons.ToList().FirstOrDefault()
};
_view.DataContext = _viewModel;
#endregion

_mainWindow.Content = _view;
}

#region ExecuteCommands
private void ExecuteBackCommand(object obj)
{
var menuWindow = new MenuWindowController();
menuWindow.Initialize(_mainWindow);
}

private async void ExecuteAddCommand(object obj)
{
var addSeasonWindow = new AddSeasonWindowController
{
Season = new Season()
};
var showSeason = addSeasonWindow.ShowSeason();
// it could be possible that the bettor is null
if (showSeason == null) return;
// Check if service is available
if (!await AdminClientHelper.IsAvailable(_adminClient)) return;
// add bettor
var addBettorAsync = await _adminClient.AddSeasonAsync(showSeason);

if (addBettorAsync)
{
ReloadSeason();
}
else
{
MessageBox.Show("Saison konnte nicht hinzugefügt werden, da der Name schon vergeben ist!", "Hinzufügen fehlgeschlagen",
MessageBoxButton.OK, MessageBoxImage.Error);
}
}

private async void ReloadSeason()
{
var seasons = await _adminClient.GetSeasonsAsync();
_viewModel.Seasons = seasons.ToList();
}

private async void ExecuteChangeCommand(object obj)
{
if (_viewModel.SelectedSeason == null)
{
MessageBox.Show("Bitte wählen Sie eine Saison aus!", "Keine Saison ausgewählt",
MessageBoxButton.OK, MessageBoxImage.Warning);
return;
}
var addSeasonWindow = new AddSeasonWindowController
{
Season = _viewModel.SelectedSeason
};

var showSeason = addSeasonWindow.ShowSeason();
// it could be possible that the bettor is null
if (showSeason == null) return;
// Check if service is available
if (!await AdminClientHelper.IsAvailable(_adminClient)) return;
// add bettor
var isUpdated = await _adminClient.UpdateSeasonAsync(showSeason);

if (isUpdated)
{
ReloadSeason();
}
else
{
MessageBox.Show("Die Saison konnte nicht geändert werden!", "Änderung fehlgeschlagen",
MessageBoxButton.OK, MessageBoxImage.Error);
}
}

private async void ExecuteDeleteCommand(object obj)
{
throw new System.NotImplementedException();
if (_viewModel.SelectedSeason == null)
{
MessageBox.Show("Bitte wählen Sie eine Saison aus!", "Keine Saison ausgewählt",
MessageBoxButton.OK, MessageBoxImage.Warning);
return;
}
// Check if the user really want to delete the bettor
var messageBoxResult = MessageBox.Show("Sind Sie sicher, dass die Saison gelöscht werden soll!", "Benutzer löschen",
MessageBoxButton.YesNo, MessageBoxImage.Warning);
if (messageBoxResult != MessageBoxResult.Yes) return;
// Check if service is available
if (!await AdminClientHelper.IsAvailable(_adminClient)) return;
// delete bettor
var isDeleted = await _adminClient.DeleteSeasonAsync(_viewModel.SelectedSeason);
if (isDeleted)
{
ReloadSeason();
}
else
{
MessageBox.Show("Saison konnte nicht gelöscht werden!", "Löschen fehlgeschlagen",
MessageBoxButton.OK, MessageBoxImage.Error);
}
}
#endregion
}
}
Loading

0 comments on commit ff4f156

Please sign in to comment.