void DataCopy_DataSqlUpdateSucceeded(eUpdateType eut, string sProviderDescription) { SyncHashSet <ITipItemVw> shsToRemove = new SyncHashSet <ITipItemVw>(); var tipitems = new SortableObservableCollection <ITipItemVw>(); foreach (var ticket1 in TicketHandler.TicketsInBasket.ToSyncList()) { foreach (var tipItemVw in ticket1.TipItems.ToSyncList()) { tipitems.Add(tipItemVw); } } LineSr.VerifySelectedOdds(tipitems, shsToRemove); // remove hidden odds (disabled in web admin) and not caught by LineSr.VerifySelectedOdds() foreach (var ticket1 in TicketHandler.TicketsInBasket.ToSyncList()) { foreach (var tipItemVw in ticket1.TipItems.ToSyncList()) { if (tipItemVw.OddView.Visibility == Visibility.Hidden) { shsToRemove.Add(tipItemVw); } } } if (shsToRemove.Count > 0) { foreach (ITipItemVw tipItemVw in shsToRemove) { ShowError(TranslationProvider.Translate(MultistringTags.TERMINAL_REMOVE_FROM_BASKET_MATCH, tipItemVw.BetDomain.Match.MatchView.Name), null, false, 5); PlaceBetMethod(tipItemVw, true); } } var TicketsInBasket = TicketHandler.TicketsInBasket.ToSyncList(); foreach (var ticket1 in TicketsInBasket) { if (ticket1.TipItems.ToSyncList().Count == 0) { var ticket = ticket1; Dispatcher.Invoke(() => { TicketHandler.TicketsInBasket.Remove(ticket); }); } } TicketsInBasket = TicketHandler.TicketsInBasket.ToSyncList(); if (TicketsInBasket.Count() > 0) { TicketHandler.CopyValues(); } TicketHandler.UpdateTicket(); if (ChangeTracker.IsBasketOpen && TicketHandler.Count == 0 && !ChangeTracker.IsLandscapeMode) { Mediator.SendMessage("", MsgTag.ShowFirstViewAndResetFilters); } }