public void SetMachineStatus(SlotMachineStatus machineStatus)
        {
            IsHandPay = false;
            switch (machineStatus)
            {
            case SlotMachineStatus.EmptyPosition:
                InnerRoundColor = Brushes.Gray;
                OuterRoundColor = Brushes.White;
                // other fixes
                {
                    try
                    {
                        if (!string.IsNullOrEmpty(this.AssetNo))
                        {
                            this.AssetNo = string.Empty;
                        }
                        if (this.IsCollectable)
                        {
                            this.IsCollectable = false;
                        }
                        if (this.IsEventUnCleared)
                        {
                            this.IsEventUnCleared = false;
                        }
                        if (this.IsHandPay)
                        {
                            this.IsHandPay = false;
                        }

                        UnclearedImageEvent.Visibility  = Visibility.Hidden;
                        ClearedImageEvent.Visibility    = Visibility.Hidden;
                        FloatCollectionImage.Visibility = Visibility.Hidden;
                    }
                    catch { }
                }
                break;

            case SlotMachineStatus.NotInPlay:
                InnerRoundColor = FindResource("NotInPlayInnerColor") as Brush;
                OuterRoundColor = FindResource("NotInPlayOuterColor") as Brush;
                break;

            case SlotMachineStatus.NonCardedHandPay:
                InnerRoundColor = FindResource("HandPayColorInnerColor") as Brush;
                OuterRoundColor = FindResource("HandPayColorOuterColor") as Brush;
                IsHandPay       = true;
                break;

            case SlotMachineStatus.CardedHandPay:
                InnerRoundColor = FindResource("HandPayColorInnerColor") as Brush;
                OuterRoundColor = FindResource("CardedPlayOuterColor") as Brush;
                IsHandPay       = true;
                break;

            case SlotMachineStatus.MachineInPlay:
                InnerRoundColor = FindResource("MachineInPlayInnerColor") as Brush;
                OuterRoundColor = FindResource("MachineInPlayOuterColor") as Brush;
                break;

            case SlotMachineStatus.CardedPlay:
                InnerRoundColor = FindResource("CardedPlayInnerColor") as Brush;
                OuterRoundColor = FindResource("CardedPlayOuterColor") as Brush;
                break;

            case SlotMachineStatus.EmpCardedPlay:
                InnerRoundColor = FindResource("EmpCardedPlayInnerColor") as Brush;
                OuterRoundColor = FindResource("EmpCardedPlayOuterColor") as Brush;
                break;

            case SlotMachineStatus.GMUConnectivity:
                InnerRoundColor = FindResource("GMUConnectivityInnerColor") as Brush;
                OuterRoundColor = FindResource("GMUConnectivityOuterColor") as Brush;
                break;

            case SlotMachineStatus.GoldClubCardedPlay:
                InnerRoundColor = FindResource("GoldClubCardedPlayInnerColor") as Brush;
                OuterRoundColor = FindResource("GoldClubCardedPlayOuterColor") as Brush;
                break;

            case SlotMachineStatus.VLTInstallationAAMSPending:
                InnerRoundColor = FindResource("VLTInstallationAAMSPendingInnerColor") as Brush;
                OuterRoundColor = FindResource("VLTInstallationAAMSPendingOuterColor") as Brush;
                break;

            case SlotMachineStatus.GameInstallationAAMSPending:
                InnerRoundColor = FindResource("GameInstallationAAMSPendingInnerColor") as Brush;
                OuterRoundColor = FindResource("GameInstallationAAMSPendingOuterColor") as Brush;
                break;

            case SlotMachineStatus.VLTunderMaintenance:
                InnerRoundColor = FindResource("VLTunderMaintenanceInnerColor") as Brush;
                OuterRoundColor = FindResource("VLTunderMaintenanceOuterColor") as Brush;
                break;

            case SlotMachineStatus.VLTunderUnauthorizedMaintenance:
                InnerRoundColor = FindResource("MachineInPlayOuterColor") as Brush;
                OuterRoundColor = FindResource("VLTunderMaintenanceOuterColor") as Brush;

                break;

            case SlotMachineStatus.FloatCollection:
                InnerRoundColor = FindResource("NotInPlayInnerColor") as Brush;
                OuterRoundColor = Brushes.Black;
                break;

            case SlotMachineStatus.ForceFinalCollection:
                InnerRoundColor = Brushes.Pink;
                OuterRoundColor = Brushes.Black;

                break;

            case SlotMachineStatus.InstallationCompletedNonMetered:
                InnerRoundColor = Brushes.White;
                OuterRoundColor = Brushes.YellowGreen;
                break;

            case SlotMachineStatus.CommsDown:
                InnerRoundColor = FindResource("ComsDownInnerColor") as Brush;
                OuterRoundColor = FindResource("ComsDownOuterColor") as Brush;
                break;

            case SlotMachineStatus.GameDown:
                InnerRoundColor = FindResource("GameDownInnerColor") as Brush;
                OuterRoundColor = FindResource("GameDownOuterColor") as Brush;
                break;

            default:
                break;
            }
        }
 public LegendInfo(SlotMachineStatus status, string resourceName)
 {
     this.Status = status;
     this.Description = Application.Current.FindResource(resourceName).ToString();
 }
        public void SetMachineStatus(SlotMachineStatus machineStatus)
        {
            IsHandPay = false;
            switch (machineStatus)
            {
                case SlotMachineStatus.EmptyPosition:
                    InnerRoundColor = Brushes.Gray;
                    OuterRoundColor = Brushes.White;
                    // other fixes
                    {
                        try
                        {
                            if (!string.IsNullOrEmpty(this.AssetNo))
                                this.AssetNo = string.Empty;
                            if (this.IsCollectable) this.IsCollectable = false;
                            if (this.IsEventUnCleared) this.IsEventUnCleared = false;
                            if (this.IsHandPay) this.IsHandPay = false;

                            UnclearedImageEvent.Visibility = Visibility.Hidden;
                            ClearedImageEvent.Visibility = Visibility.Hidden;
                            FloatCollectionImage.Visibility = Visibility.Hidden;
                        }
                        catch { }
                    }
                    break;
                case SlotMachineStatus.NotInPlay:
                    InnerRoundColor = FindResource("NotInPlayInnerColor") as Brush;
                    OuterRoundColor = FindResource("NotInPlayOuterColor") as Brush;
                    break;
                case SlotMachineStatus.NonCardedHandPay:
                    InnerRoundColor = FindResource("HandPayColorInnerColor") as Brush;
                    OuterRoundColor = FindResource("HandPayColorOuterColor") as Brush;
                    IsHandPay = true;     
                    break;
                case SlotMachineStatus.CardedHandPay:
                    InnerRoundColor = FindResource("HandPayColorInnerColor") as Brush;
                    OuterRoundColor = FindResource("CardedPlayOuterColor") as Brush;
                    IsHandPay = true;
                    break;
                case SlotMachineStatus.MachineInPlay:
                    InnerRoundColor = FindResource("MachineInPlayInnerColor") as Brush;
                    OuterRoundColor = FindResource("MachineInPlayOuterColor") as Brush;
                    break;
                case SlotMachineStatus.CardedPlay:
                    InnerRoundColor = FindResource("CardedPlayInnerColor") as Brush;
                    OuterRoundColor = FindResource("CardedPlayOuterColor") as Brush;
                    break;

                case SlotMachineStatus.EmpCardedPlay:
                    InnerRoundColor = FindResource("EmpCardedPlayInnerColor") as Brush;
                    OuterRoundColor = FindResource("EmpCardedPlayOuterColor") as Brush;
                    break;

                case SlotMachineStatus.GMUConnectivity:
                    InnerRoundColor = FindResource("GMUConnectivityInnerColor") as Brush;
                    OuterRoundColor = FindResource("GMUConnectivityOuterColor") as Brush;
                    break;

                case SlotMachineStatus.GoldClubCardedPlay:
                    InnerRoundColor = FindResource("GoldClubCardedPlayInnerColor") as Brush;
                    OuterRoundColor = FindResource("GoldClubCardedPlayOuterColor") as Brush;
                    break;
                case SlotMachineStatus.VLTInstallationAAMSPending:
                    InnerRoundColor = FindResource("VLTInstallationAAMSPendingInnerColor") as Brush;
                    OuterRoundColor = FindResource("VLTInstallationAAMSPendingOuterColor") as Brush;
                    break;
                case SlotMachineStatus.GameInstallationAAMSPending:
                    InnerRoundColor = FindResource("GameInstallationAAMSPendingInnerColor") as Brush;
                    OuterRoundColor = FindResource("GameInstallationAAMSPendingOuterColor") as Brush;
                    break;
                case SlotMachineStatus.VLTunderMaintenance:
                    InnerRoundColor = FindResource("VLTunderMaintenanceInnerColor") as Brush;
                    OuterRoundColor = FindResource("VLTunderMaintenanceOuterColor") as Brush;
                    break;
                case SlotMachineStatus.VLTunderUnauthorizedMaintenance:
                    InnerRoundColor = FindResource("MachineInPlayOuterColor") as Brush;
                    OuterRoundColor = FindResource("VLTunderMaintenanceOuterColor") as Brush;

                    break;
                case SlotMachineStatus.FloatCollection:
                    InnerRoundColor = FindResource("NotInPlayInnerColor") as Brush;
                    OuterRoundColor = Brushes.Black;
                    break;
                case SlotMachineStatus.ForceFinalCollection:
                    InnerRoundColor = Brushes.Pink;
                    OuterRoundColor = Brushes.Black;

                    break;

                case SlotMachineStatus.InstallationCompletedNonMetered:
                    InnerRoundColor = Brushes.White;
                    OuterRoundColor = Brushes.YellowGreen;
                    break;

                case SlotMachineStatus.CommsDown:
                    InnerRoundColor = FindResource("ComsDownInnerColor") as Brush;
                    OuterRoundColor = FindResource("ComsDownOuterColor") as Brush;
                    break;

                case SlotMachineStatus.GameDown:
                    InnerRoundColor = FindResource("GameDownInnerColor") as Brush;
                    OuterRoundColor = FindResource("GameDownOuterColor") as Brush;
                    break;

                default:
                    break;
            }
        }
        /// <summary>
        /// Common Method to Show Hide Controls based on SlotMachine Status
        /// </summary>
        /// <param name="eStatus"></param>
        private void ShowHideControls(SlotMachineStatus eStatus)
        {


            //Hide All Controls by default and then Toggle Visibility based on the Slot Status
            rbEvents.Visibility = Visibility.Collapsed;
            rbFieldService.Visibility = Visibility.Collapsed;
            rbHandpay.Visibility = Visibility.Collapsed;
            rbMachineMaintenance.Visibility = Visibility.Collapsed;
            rbMachineMeters.Visibility = Visibility.Collapsed;
            rbPlayerClub.Visibility = Visibility.Collapsed;
            rbRemoveMachine.Visibility = Visibility.Collapsed;
            rbReInstateMachine.Visibility = Visibility.Collapsed;
            rbSyncTicketExpire.Visibility = Visibility.Collapsed;
            rbCurrentMeters.Visibility = Visibility.Collapsed;
            if ((Settings.AllowMultipleDrops || Settings.Allow_Machine_Removal) && Settings.IsFinalDropRequiredForRemoval)
            {
                rbRemoveMachine.Visibility = Visibility.Visible;
            }
            if (!Settings.IsFinalDropRequiredForRemoval && (eStatus != SlotMachineStatus.VLTunderMaintenance
                                                                && eStatus != SlotMachineStatus.VLTunderUnauthorizedMaintenance))
            {
                rbRemoveMachine.Visibility = HasAccess(PositionDetailsScreen.RemoveMachine) ? Visibility.Visible : Visibility.Collapsed;
                rbReInstateMachine.Visibility = HasAccess(PositionDetailsScreen.ReinstateMachine) ? Visibility.Visible : Visibility.Collapsed;
                rbSyncTicketExpire.Visibility = Visibility.Collapsed;
                rbCurrentMeters.Visibility = Visibility.Collapsed;
            }

            switch (eStatus)
            {
                case SlotMachineStatus.CardedHandPay:
                case SlotMachineStatus.CardedPlay:
                case SlotMachineStatus.EmpCardedPlay:
                case SlotMachineStatus.NonCardedHandPay:
                case SlotMachineStatus.NonCardedPlay:
                case SlotMachineStatus.MachineInPlay:
                case SlotMachineStatus.NotInPlay:
                case SlotMachineStatus.CommsDown:
                case SlotMachineStatus.GameDown:
                    rbHandpay.Visibility = HasAccess(PositionDetailsScreen.Handpay) ? Visibility.Visible : Visibility.Collapsed;
                    rbPlayerClub.Visibility = HasAccess(PositionDetailsScreen.PlayerClub) ? Visibility.Visible : Visibility.Collapsed;
                    rbEvents.Visibility = HasAccess(PositionDetailsScreen.Events) ? Visibility.Visible : Visibility.Collapsed;
                    rbFieldService.Visibility = HasAccess(PositionDetailsScreen.FieldService) ? Visibility.Visible : Visibility.Collapsed;
                    rbMachineMeters.Visibility = HasAccess(PositionDetailsScreen.MachineMeters) ? Visibility.Visible : Visibility.Collapsed;
                    rbSyncTicketExpire.Visibility = HasAccess(PositionDetailsScreen.SyncTicketExpire) ? Visibility.Visible : Visibility.Collapsed;
                    rbCurrentMeters.Visibility = HasAccess(PositionDetailsScreen.CurrentMeters) ? Visibility.Visible : Visibility.Collapsed;

                    if (!isScreenLoaded)
                    {
                        if (rbHandpay.IsVisible)
                        {
                            rbHandpay.IsChecked = true;
                            LoadScreen(PositionDetailsScreen.Handpay);
                        }
                        else if (rbPlayerClub.IsVisible)
                        {
                            rbPlayerClub.IsChecked = true;
                            LoadScreen(PositionDetailsScreen.PlayerClub);
                        }
                        else if (rbEvents.IsVisible)
                        {
                            rbEvents.IsChecked = true;
                            LoadScreen(PositionDetailsScreen.Events);
                        }
                        else if (rbFieldService.IsVisible)
                        {
                            rbFieldService.IsChecked = true;
                            LoadScreen(PositionDetailsScreen.FieldService);
                        }
                        else if (rbMachineMeters.IsVisible)
                        {
                            rbMachineMeters.IsChecked = true;
                            LoadScreen(PositionDetailsScreen.MachineMeters);
                        }
                        else if (rbCurrentMeters.IsVisible)
                        {
                            rbCurrentMeters.IsChecked = true;
                            LoadScreen(PositionDetailsScreen.CurrentMeters);
                        }
                        else if (rbMachineMaintenance.IsVisible)
                        {
                            rbMachineMaintenance.IsChecked = true;
                            LoadScreen(PositionDetailsScreen.MachineMaintenance);
                        }
                    }
                    else
                    {
                        if (rbHandpay.IsChecked.SafeValue())
                        {
                            LoadScreen(PositionDetailsScreen.Handpay, true);
                        }
                    }

                    break;

                case SlotMachineStatus.FloatCollection:
                    CollectionHelper CollectionHelper = new CollectionHelper();
                    pnlContent.Children.Clear();
                    if (!CollectionHelper.HasUndeclaredCollecion(_SlotMachine.InstallationNo))
                    {
                        

                        rbRemoveMachine.Visibility = HasAccess(PositionDetailsScreen.RemoveMachine) ? Visibility.Visible : Visibility.Collapsed;

                        var installationDataContext =
                            new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
                        IList<FloorStatusData> barPositions;
                        barPositions = installationDataContext.GetSlotStatus("", _SlotMachine.InstallationNo);
                        if (barPositions.Count > 0)
                        {
                            var position = barPositions[0];
                            if (position.FinalCollectionStatus == 1)
                            {
                                rbReInstateMachine.Visibility = Visibility.Collapsed;
                            }
                            else
                            {
                                rbReInstateMachine.Visibility = HasAccess(PositionDetailsScreen.ReinstateMachine) ? Visibility.Visible : Visibility.Collapsed;
                            }

                        }
                    }
                    break;

                case SlotMachineStatus.EmptyPosition:
                //case SlotMachineStatus.GameInstallationAAMSPending:
                //case SlotMachineStatus.VLTInstallationAAMSPending:
                case SlotMachineStatus.InstallationCompletedNonMetered:
                    if (Exit != null)
                    {
                        Exit.Invoke(this, new CancelEventArgs());
                    }
                    break;

                case SlotMachineStatus.GoldClubCardedPlay:
                    break;

                //case SlotMachineStatus.VLTunderMaintenance:
                //case SlotMachineStatus.VLTunderUnauthorizedMaintenance:
                //    rbMachineMaintenance.Visibility = HasAccess(PositionDetailsScreen.MachineMaintenance) ? Visibility.Visible : Visibility.Collapsed;
                //    rbMachineMaintenance.IsChecked = rbMachineMaintenance.IsVisible;
                //    isScreenLoaded = true;
                //    if (!isScreenLoaded || isFirstTime)
                //    {
                //        LoadScreen(PositionDetailsScreen.MachineMaintenance);
                //        isFirstTime = false;
                //    }
                //    break;

                default:
                    break;
            }



        }