public ManageWatchFolder(Logging.LoggingInterfaces.ITracer logger, LocalDatabaseWrapper context, WrapperDataTable.WrapperTable<WatchFolder> wrapperTable, Game game) { this.logger = logger; this.context = context; this.wrapperTable = wrapperTable; this.wrapperTableCopy = wrapperTable.Clone(); wrapperTableCopy.UserAddedRow += wrapperTableCopy_UserAddedRow; wrapperTableCopy.DeletedRow += wrapperTableCopy_DeletedRow; this.game = game; InitializeComponent(); }
void copyMatchSessionsTable_ItemChanged(object sender, WrapperDataTable.ItemChangedData<MatchSession> args) { var copyItem = args.Items.Copy; var enteredName = copyItem.MyGame.Name; // Try to find the game var game = FSharpInterop.Interop.Database.GetGame(context, enteredName); if (game != null) { copyItem.MyGame.Name = game.Name; args.Items.Original.MyGame = game; // Save here because we only commit on save args.ChangedCopy.Value = true; } }
void playersDataCopy_DeletedRow(object sender, WrapperDataTable.DeletedRowData<MatchSessions_Player> args) { var originalPlayer = playersDataCopy.get_CopyItemToOriginal(args.CopyItem); var count = (from matchmediaCopy in matchmediaDataCopy.CopyLinqData let original = matchmediaDataCopy.get_CopyItemToOriginal(matchmediaCopy) where original.MyMatchSessionsPlayer == originalPlayer select original).Count(); if (count > 0) { MessageBox.Show("Please delete all matchmedias for this player!"); throw new InvalidOperationException("Can't delete row with matchmedia!"); } }
void playerTableCopy_UserAddedRow(object sender, WrapperDataTable.UserAddedRowData<MatchSessions_Player> args) { // can't happen actually. args.OriginalItem.MyMatchSession = session; }
private void playersDataCopy_ItemChanged( object sender, WrapperDataTable.ItemChangedData<MatchSessions_Player> tuple) { var copyItem = tuple.Items.Copy; var changedCopyItem = false; if (copyItem.Player.MyId != 0) { var player = FSharpInterop.Interop.Database.GetPlayerById(context, copyItem.Player.MyId); if (player != null) { if (!copyItem.Player.EslPlayerId.HasValue || copyItem.Player.EslPlayerId.Value != player.EslPlayerId) { copyItem.Player.EslPlayerId = player.EslPlayerId; changedCopyItem = true; } if (ChangeCopyItem(player, copyItem)) { changedCopyItem = true; } } else { copyItem.Player.MyId = 0; changedCopyItem = true; } } if (copyItem.Player.MyId == 0 && copyItem.Player.EslPlayerId.HasValue) { var player = FSharpInterop.Interop.Database.GetPlayerByEslId(context, copyItem.Player.EslPlayerId.Value); if (player != null) { if (copyItem.Player.MyId != player.Id) { copyItem.Player.MyId = player.Id; changedCopyItem = true; } if (ChangeCopyItem(player, copyItem)) { changedCopyItem = true; } } } if (changedCopyItem) { tuple.ChangedCopy.Value = true; } }
private void playersDataCopy_InitRow(object sender, WrapperDataTable.InitRowData<MatchSessions_Player> player) { player.CopyOrTempItem.MyTeam = PlayerTeam.Team1; player.CopyOrTempItem.MySkill = PlayerSkill.Mid; }
void playersDataCopy_UserAddedRow(object sender, WrapperDataTable.UserAddedRowData<MatchSessions_Player> args) { args.OriginalItem.MyMatchSession = session; }
private void value_InitRow(object sender, WrapperDataTable.InitRowData<Matchmedia> media) { media.CopyOrTempItem.Created = DateTime.Now; }
private void value_UserAddedRow(object sender, WrapperDataTable.UserAddedRowData<Matchmedia> media) { media.OriginalItem.PlayerId = primaryPlayer.PlayerId; }
void wrapperTableCopy_UserAddedRow(object sender, WrapperDataTable.UserAddedRowData<WatchFolder> args) { args.OriginalItem.MyGame = game; }
void wrapperTableCopy_DeletedRow(object sender, WrapperDataTable.DeletedRowData<WatchFolder> args) { wrapperTableCopy.get_CopyItemToOriginal(args.CopyItem).Game = null; }