Exemplo n.º 1
0
        void UpdateFloorStatus()
        {
            LogManager.WriteLog("FloorStatus : Floor status updation initiated...", LogManager.enumLogLevel.Info);

            while (!mre_isStoped.WaitOne(iInterval))
            {
                try
                {
                    LogManager.WriteLog("FloorStatus : Updating floor status...", LogManager.enumLogLevel.Info);

                    if (_oServer.CheckClientCounts())
                    {
                        LogManager.WriteLog("Inside UpdateFloorStatus()", LogManager.enumLogLevel.Info);
                        InstallationDataContext InstallationDataContext =
                            new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());

                        List <FloorStatusData> actualRetResults =
                            InstallationDataContext.GetSlotStatus("", -1);

                        _oServer.SendToClients(actualRetResults);
                    }
                    else
                    {
                        LogManager.WriteLog("No Clients", LogManager.enumLogLevel.Info);
                    }
                }
                catch (Exception ex)
                {
                    ExceptionManager.Publish(ex);
                }
            }
        }
Exemplo n.º 2
0
        private void lstInstallationDetails_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                if (e.AddedItems.Count > 0)
                {
                    lstPaytable.DataContext = null;
                    var k = (e.AddedItems[0] as GetInstallationDetailsForCDOResult);
                    Pos = k.Bar_Pos_Name;
                    InstallationDataContext           InstallationDC        = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
                    List <GetGameDetailsForPosResult> _lstInstallationGames = new List <GetGameDetailsForPosResult>();
                    _lstInstallationGames            = InstallationDC.GetGameDetailsForPos(Pos).ToList();
                    lstInstallationGames.DataContext = _lstInstallationGames;

                    if (_lstInstallationGames.Count > 0)
                    {
                        lstInstallationGames.SelectedIndex = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteLog("Exception in InstallationDetails, lstInstallationDetails_SelectionChanged() : " + ex.Message, LogManager.enumLogLevel.Error);
            }
        }
Exemplo n.º 3
0
        void UpdateFloorStatus()
        {
            LogManager.WriteLog("FloorStatus : Floor status updation initiated...", LogManager.enumLogLevel.Info);

            while (!mre_isStoped.WaitOne(iInterval))
            {
                try
                {
                    LogManager.WriteLog("FloorStatus : Updating floor status...", LogManager.enumLogLevel.Info);

                    if (_oServer.CheckClientCounts())
                    {
                        LogManager.WriteLog("Inside UpdateFloorStatus()", LogManager.enumLogLevel.Info);
                    InstallationDataContext InstallationDataContext =
                        new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());

                    List<FloorStatusData> actualRetResults =
                        InstallationDataContext.GetSlotStatus("", -1);

                    _oServer.SendToClients(actualRetResults);
                    }
                    else
                    {
                        LogManager.WriteLog("No Clients", LogManager.enumLogLevel.Info);
                    }
                }
                catch (Exception ex)
                {
                    ExceptionManager.Publish(ex);
                }
            }
        }
Exemplo n.º 4
0
 private List <CollectionReports> GetCollectionReports()
 {
     try
     {
         var oDataContext = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
         List <CollectionReports> _collectionReports = new List <CollectionReports>();
         if (Settings.Client.ToUpper() == "SGVI" && Settings.SGVI_Enabled == true)
         {
             foreach (var machine in oDataContext.GetCollectionReports())
             {
                 _collectionReports.Add(machine);
             }
         }
         else
         {
             _collectionReports.Add(new CollectionReports {
                 Description = "Exception Summary Report", ID = "1"
             });
         }
         return(_collectionReports);
     }
     catch (Exception ex)
     {
         ExceptionManager.Publish(ex);
         return(new List <CollectionReports>());
     }
 }
        private void lstInstallationDetails_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                if (e.AddedItems.Count > 0)
                {
                    lstPaytable.DataContext = null;
                    var k = (e.AddedItems[0] as GetInstallationDetailsForCDOResult);
                    Pos = k.Bar_Pos_Name;
                    InstallationDataContext InstallationDC = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
                    List<GetGameDetailsForPosResult> _lstInstallationGames = new List<GetGameDetailsForPosResult>();
                    _lstInstallationGames =  InstallationDC.GetGameDetailsForPos(Pos).ToList();
                    lstInstallationGames.DataContext = _lstInstallationGames;

                    if (_lstInstallationGames.Count > 0)
                    {
                        lstInstallationGames.SelectedIndex = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteLog("Exception in InstallationDetails, lstInstallationDetails_SelectionChanged() : " + ex.Message, LogManager.enumLogLevel.Error);
            }
        }
 private List<ActiveMachine> ActiveInstallations()
 {
     var oDataContext = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
     List<ActiveMachine> _activeMachine = new List<ActiveMachine>();
     foreach (var machine in oDataContext.GetActiveInstallations())
     {
         _activeMachine.Add(machine);
     }
     return _activeMachine;
 }
        private List <ActiveMachine> ActiveInstallations()
        {
            var oDataContext = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
            List <ActiveMachine> _activeMachine = new List <ActiveMachine>();

            foreach (var machine in oDataContext.GetActiveInstallations())
            {
                _activeMachine.Add(machine);
            }
            return(_activeMachine);
        }
 protected override BMCIPC.FloorStatusDataResponse GetSlotStatus()
 {
     List<FloorStatusData> actualRetResults = null;
     using (InstallationDataContext InstallationDataContext =
                 new InstallationDataContext(_commonUtilities.GetConnectionString()))
     {
         actualRetResults = InstallationDataContext.GetSlotStatus("", -1);
     }
     return new FloorStatusDataResponse()
     {
         Response = actualRetResults
     };
 }
        private List <CollectionReports> GetCollectionReports()
        {
            try
            {
                var oDataContext = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
                foreach (var ReportsInfo in oDataContext.GetCollectionDetailReports())
                {
                    _collectionReports.Add(ReportsInfo);
                }

                if (_ChkWeek == true)
                {
                    cboReports.Items.Add(_collectionReports[2]); //Adding Weekly Win Loss Report.
                    cboReports.Items.Add(_collectionReports[3]); //Weekly Exception Summary Report.
                    cboReports.SelectedIndex = 0;
                }
                else
                {
                    if ((Settings.SGVI_Enabled) || ((Settings.LiquidationType.ToUpper().Equals("COLLECTION") || Settings.LiquidationType.ToUpper().Equals("READ")) && Settings.LiquidationProfitShare))
                    {
                        cboReports.Items.Add(_collectionReports[0]);//Adding Liquidation Summary Report.
                    }
                    if (Settings.ShowCollectionReport)
                    {
                        cboReports.Items.Add(_collectionReports[5]);
                    }

                    if (Settings.ShowBatchWinLossOnDeclaration)
                    {
                        cboReports.Items.Add(_collectionReports[1]); //Adding Machine Drop Report.
                    }
                    if (Settings.ShowVarianceReport)
                    {
                        cboReports.Items.Add(_collectionReports[6]);
                    }

                    if (!_Undeclared) //If Declaration is completed Adding Exception Summary Report.
                    {
                        cboReports.Items.Add(_collectionReports[4]);
                    }
                    cboReports.SelectedIndex = 0;
                }
            }

            catch (Exception ex)
            {
                ExceptionManager.Publish(ex);
            }

            return(_collectionReports);
        }
        public EnrollmentWnd(string PositionName)
        {
            InitializeComponent();

            LogManager.WriteLog("Inside Constructor", LogManager.enumLogLevel.Info);

            objPosDetails = new PositionDetails()
            {
                Position = PositionName
            };
            lblPosition.Content     = PositionName;
            lblStatus.Visibility    = Visibility.Hidden;
            progressBar1.Visibility = Visibility.Hidden;
            if (Settings.RegulatoryEnabled && Settings.RegulatoryType == "AAMS")
            {
                chkInTransitAsset.Visibility = Visibility.Visible;
            }
            //txtBaseDenom.Text = "1";

            //if (BMC.Common.ConfigurationManagement.ConfigManager.Read("EnableDenomChange").ToUpper() == "FALSE")
            //    txtBaseDenom.IsEnabled = false;

            lblCoinType.Text = lblCoinType.Text + "(" + ExtensionMethods.GetCurrencyCoinSymbol() + "):";

            using (InstallationDataContext objCoinType = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString()))
            {
                var vCoinType = (from CoinType in objCoinType.GetCoinType(ExtensionMethods.CurrentSiteCulture)
                                 select CoinType);

                cmbCoinType.DisplayMemberPath = "CoinType";
                cmbCoinType.SelectedValuePath = "CoinType";
                cmbCoinType.ItemsSource       = vCoinType;

                if (cmbCoinType.Items.Count > 0)
                {
                    cmbCoinType.SelectedIndex = 0;
                }
            }

            bw.WorkerReportsProgress      = true;
            bw.WorkerSupportsCancellation = true;
            bw.DoWork             += new DoWorkEventHandler(bw_DoWork);
            bw.ProgressChanged    += new ProgressChangedEventHandler(bw_ProgressChanged);
            bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);

            bwGetAssetDetails.DoWork             += new DoWorkEventHandler(bwGetAssetDetails_DoWork);
            bwGetAssetDetails.ProgressChanged    += new ProgressChangedEventHandler(bwGetAssetDetails_ProgressChanged);
            bwGetAssetDetails.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwGetAssetDetails_RunWorkerCompleted);

            txtAsset.Focus();
        }
        protected override BMCIPC.FloorStatusDataResponse GetSlotStatus()
        {
            List <FloorStatusData> actualRetResults = null;

            using (InstallationDataContext InstallationDataContext =
                       new InstallationDataContext(_commonUtilities.GetConnectionString()))
            {
                actualRetResults = InstallationDataContext.GetSlotStatus("", -1);
            }
            return(new FloorStatusDataResponse()
            {
                Response = actualRetResults
            });
        }
        private bool isPositionLocked(string sPosition)
        {
            var oDataContext =
                new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());

            LogManager.WriteLog(objPosDetails.Position, LogManager.enumLogLevel.Info);

            foreach (var Result in oDataContext.isPositionLocked(sPosition))
            {
                if (Result.Result == "LOCKED")
                {
                    return(true);
                }
            }

            return(false);
        }
Exemplo n.º 13
0
 private void lstInstallationGames_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     try
     {
         if (e.AddedItems.Count > 0)
         {
             var k           = (e.AddedItems[0] as GetGameDetailsForPosResult);
             int?gameTitleID = k.Game_Title_Id;
             InstallationDataContext InstallationDC = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
             lstPaytable.DataContext = InstallationDC.GetPaytableDetailsForGame(gameTitleID, Pos);
         }
     }
     catch (Exception ex)
     {
         LogManager.WriteLog("Exception in InstallationDetails, lstInstallationGames_SelectionChanged() : " + ex.Message, LogManager.enumLogLevel.Error);
     }
 }
        public EnrollmentWnd(string PositionName)
        {
            InitializeComponent();

            LogManager.WriteLog("Inside Constructor", LogManager.enumLogLevel.Info);

            objPosDetails = new PositionDetails() { Position = PositionName };
            lblPosition.Content = PositionName;
            lblStatus.Visibility = Visibility.Hidden;
            progressBar1.Visibility = Visibility.Hidden;
            if (Settings.RegulatoryEnabled && Settings.RegulatoryType == "AAMS")
            {
                chkInTransitAsset.Visibility = Visibility.Visible;
            }
            //txtBaseDenom.Text = "1";

            //if (BMC.Common.ConfigurationManagement.ConfigManager.Read("EnableDenomChange").ToUpper() == "FALSE")
            //    txtBaseDenom.IsEnabled = false;

            lblCoinType.Text = lblCoinType.Text + "(" + ExtensionMethods.GetCurrencyCoinSymbol() + "):";

            using (InstallationDataContext objCoinType = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString()))
            {
                var vCoinType = (from CoinType in objCoinType.GetCoinType(ExtensionMethods.CurrentSiteCulture)
                                 select CoinType);

                cmbCoinType.DisplayMemberPath = "CoinType";
                cmbCoinType.SelectedValuePath = "CoinType";
                cmbCoinType.ItemsSource = vCoinType;

                if (cmbCoinType.Items.Count > 0)
                    cmbCoinType.SelectedIndex = 0;
            }

            bw.WorkerReportsProgress = true;
            bw.WorkerSupportsCancellation = true;
            bw.DoWork += new DoWorkEventHandler(bw_DoWork);
            bw.ProgressChanged += new ProgressChangedEventHandler(bw_ProgressChanged);
            bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);

            bwGetAssetDetails.DoWork += new DoWorkEventHandler(bwGetAssetDetails_DoWork);
            bwGetAssetDetails.ProgressChanged += new ProgressChangedEventHandler(bwGetAssetDetails_ProgressChanged);
            bwGetAssetDetails.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwGetAssetDetails_RunWorkerCompleted);

            txtAsset.Focus();
        }
Exemplo n.º 15
0
        private void DisplayAll()
        {
            try
            {
                InstallationDataContext InstallationDC = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
                List <GetInstallationDetailsForCDOResult> _lstInstallationDetails = InstallationDC.GetInstallationDetailsForCDO().ToList();
                lstInstallationDetails.DataContext = _lstInstallationDetails;

                if (_lstInstallationDetails.Count > 0)
                {
                    lstInstallationDetails.SelectedIndex = 0;
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteLog("Exception in InstallationDetails, DisplayAll() : " + ex.Message, LogManager.enumLogLevel.Error);
            }
        }
        private void DisplayAll()
        {
            try
            {
                InstallationDataContext InstallationDC = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
                List<GetInstallationDetailsForCDOResult> _lstInstallationDetails = InstallationDC.GetInstallationDetailsForCDO().ToList();
                lstInstallationDetails.DataContext = _lstInstallationDetails;

                if (_lstInstallationDetails.Count > 0)
                {
                    lstInstallationDetails.SelectedIndex = 0;
                }
            }
            catch (Exception ex)
            {
                LogManager.WriteLog("Exception in InstallationDetails, DisplayAll() : " + ex.Message, LogManager.enumLogLevel.Error);
            }
        }
        private void RemoveMachine_Click(object sender, RoutedEventArgs e)
        {
            LogManager.WriteLog("RemoveMachine_Click", LogManager.enumLogLevel.Info);

            int machineStatusFlag = 0;
            string siteCode = string.Empty;
            bool ShowRemoveConfirmation = true;
            bool canProcess = false;

            try
            {
                Cursor = System.Windows.Input.Cursors.Wait;

                // For Transit Machine - Italy Requirement
                if (Settings.RegulatoryEnabled && Settings.RegulatoryType == "AAMS" && ucSlotMachine.Status != SlotMachineStatus.GameInstallationAAMSPending && ucSlotMachine.Status != SlotMachineStatus.VLTInstallationAAMSPending)
                {
                    if (MessageBox.ShowBox("MessageID344", BMC_Icon.Question, BMC_Button.YesNo) == System.Windows.Forms.DialogResult.Yes)
                    {
                        while (!canProcess)
                        {
                            ActiveSites objActiveSites = new ActiveSites();

                            try
                            {
                                objActiveSites.ShowDialogEx(this);

                                if (objActiveSites.DialogResult == true)
                                {
                                    siteCode = objActiveSites.TransiteSiteCode;
                                    machineStatusFlag = INTRANSITEASSET;
                                    ShowRemoveConfirmation = false;

                                    if (siteCode == string.Empty | siteCode == "Select")
                                    {
                                        MessageBox.ShowBox("MessageID340", BMC_Icon.Information);
                                    }
                                    else
                                    {
                                        canProcess = true;
                                    }
                                }
                                else
                                {
                                    return;
                                }
                            }
                            catch (Exception ex)
                            {
                                ExceptionManager.Publish(ex);
                                return;
                            }
                            finally
                            {
                                if (objActiveSites != null)
                                    objActiveSites = null;
                            }
                        }
                    }
                    else
                    {
                        ShowRemoveConfirmation = true;
                    }
                }

                //Confirmation
                if (ShowRemoveConfirmation)
                {
                    if (MessageBox.ShowBox("MessageID4", BMC_Icon.Question, BMC_Button.YesNo) == System.Windows.Forms.DialogResult.No)
                        return;
                }
                int InstallationNo = _SlotMachine.InstallationNo;
                CollectionHelper CollectionHelper = new CollectionHelper();

                #region Machine Removal

                InstallationDataContext objRemoveContext =
                                        new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
                int nDisMachine = 0;

                //When FinalCollection Status is set machine must be already disabled.
                if (_SlotMachine.FinalCollectionStatus == 0)
                    foreach (var IP in objRemoveContext.GetDisableMachine(InstallationNo))
                    {
                        nDisMachine = IP.DisMachine;
                    }


                EnrollmentErrorCodes ErrorCode = EnrollmentBusinessObject.CreateInstance().RemoveMachine(InstallationNo, machineStatusFlag, siteCode, nDisMachine);
                switch (ErrorCode)
                {
                    case EnrollmentErrorCodes.DatabaseError:
                        {
                            MessageBox.ShowBox("MessageID206");
                            Audit_Error("Database Error");
                            break;
                        }
                    case EnrollmentErrorCodes.EnterpriseWebServiceCommunicationFailure:
                        {
                            MessageBox.ShowBox("MessageID207");
                            Audit_Error("Enterprise WebService Communication Failure");
                            break;
                        }
                    case EnrollmentErrorCodes.RemoveFromPollingListFailure:
                        {
                            MessageBox.ShowBox("MessageID208");
                            Audit_Error("Unable to remove from Polling list");
                            break;
                        }
                    case EnrollmentErrorCodes.ExchangeHostServiceNotRunning:
                        {
                            Audit_Error("Unable to remove from Polling list: Timeout occured");
                            if (MessageBox.ShowBox("MessageID359", BMC_Icon.Question, BMC_Button.YesNo) == System.Windows.Forms.DialogResult.No)
                                return;
                            //Calling Remove Machine with Disable Machine command as false, Since first attempt to Disable Failed.
                            ErrorCode = EnrollmentBusinessObject.CreateInstance().RemoveMachine(InstallationNo, machineStatusFlag, siteCode, 0);

                            switch (ErrorCode)
                            {
                                case EnrollmentErrorCodes.DatabaseError:
                                    {
                                        MessageBox.ShowBox("MessageID206");
                                        Audit_Error("Database Error");
                                        break;
                                    }
                                case EnrollmentErrorCodes.EnterpriseWebServiceCommunicationFailure:
                                    {
                                        MessageBox.ShowBox("MessageID207");
                                        Audit_Error("Enterprise WebService Communication Failure");
                                        break;
                                    }
                                case EnrollmentErrorCodes.RemoveFromPollingListFailure:
                                    {
                                        MessageBox.ShowBox("MessageID208");
                                        Audit_Error("Unable to remove from Polling list");
                                        break;
                                    }
                                case EnrollmentErrorCodes.ExchangeHostServiceNotRunning:
                                    {
                                        Audit_Error("Unable to remove from Polling list: Timeout occured");
                                        MessageBox.ShowBox("MessageID360", BMC_Icon.Error);
                                        break;
                                    }
                                case EnrollmentErrorCodes.Success:
                                    MessageBox.ShowBox("MessageID209");

                                    AuditViewerBusiness.InsertAuditData(new Audit.Transport.Audit_History
                                    {

                                        AuditModuleName = ModuleName.RemoveMachine,
                                        Audit_Screen_Name = "Position Details|Remove Machine",
                                        Audit_Desc = "Machine Removed from Position: "
                                                     + Convert.ToInt32(sBarPosName).ToString(),
                                        AuditOperationType = OperationType.MODIFY,
                                        Audit_Slot = lblAsset.Text,
                                        Audit_Field = "Position",
                                        Audit_Old_Vl = Convert.ToInt32(sBarPosName).ToString()
                                    });
                                    break;


                            }
                            return;

                            break;
                        }
                    case EnrollmentErrorCodes.Success:
                        MessageBox.ShowBox("MessageID209");

                        if (machineStatusFlag != 18)
                        {
                            AuditViewerBusiness.InsertAuditData(new Audit.Transport.Audit_History
                            {

                                AuditModuleName = ModuleName.RemoveMachine,
                                Audit_Screen_Name = "Position Details|Remove Machine",
                                Audit_Desc = "Machine Removed from Position: "
                                             + Convert.ToInt32(sBarPosName).ToString(),
                                AuditOperationType = OperationType.MODIFY,
                                Audit_Slot = _SlotMachine.AssetNumber,
                                Audit_Field = "Position",
                                Audit_Old_Vl = Convert.ToInt32(sBarPosName).ToString()
                            });
                        }
                        else
                        {
                            AuditViewerBusiness.InsertAuditData(new Audit.Transport.Audit_History
                            {

                                AuditModuleName = ModuleName.TransitMachine,
                                Audit_Screen_Name = "Position Details|Transit Machine",
                                Audit_Desc = string.Format("{0} - {1}", "Machine is in Transit for Site", siteCode),
                                AuditOperationType = OperationType.MODIFY,
                                Audit_Slot = _SlotMachine.AssetNumber,
                                Audit_Field = "Asset",
                                Audit_Old_Vl = string.Format("{0}|{1}", Settings.SiteCode, Convert.ToInt32(sBarPosName).ToString())
                            });
                        }

                        if (Exit != null)
                        {
                            Timer.Stop();
                            Exit.Invoke(this, new CancelEventArgs());
                        }
                        break;
                }
                #endregion
            }
            finally
            {
                Cursor = System.Windows.Input.Cursors.Arrow;
            }
        }
 private bool Clearhandpay(int InstallationNo)
 {
     try
     {
         if (!Settings.ClearHandpayTilt)
         {
             LogManager.WriteLog("Clearhandpay Skipping as [Settings.ClearHandpayTilt=False]", LogManager.enumLogLevel.Debug);
             return true;
         }
         LogManager.WriteLog("Clearhandpay Entered", LogManager.enumLogLevel.Debug);
         int iResult;
         var installationDataContext = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
         List<FloorStatusData> barPositions = new List<FloorStatusData>();
         barPositions = installationDataContext.GetSlotStatus("", InstallationNo);
         foreach (var barPostion in barPositions)
         {
             if ((SlotMachineStatus)Enum.Parse(typeof(SlotMachineStatus), barPostion.Slot_Status) == SlotMachineStatus.ForceFinalCollection)
             {
                 LogManager.WriteLog("Clearhandpay: ForceFinalCollection", LogManager.enumLogLevel.Debug);
                 return true;
             }
         }
         IHandpay objCashDeskOperator = HandpayBusinessObject.CreateInstance();
         iResult = objCashDeskOperator.Clearhandpay(InstallationNo);
         LogManager.WriteLog("Clearhandpay InstallationNo: " + InstallationNo.ToString() + " Result:" + iResult.ToString(), LogManager.enumLogLevel.Debug);
         if (iResult != 0)
         {
             if (MessageBox.ShowBox("MessageID384", BMC_Icon.Question, BMC_Button.YesNo) == System.Windows.Forms.DialogResult.No)
             {
                 LogManager.WriteLog("Clearhandpay: Handpay Clear Failure.Process Cancelled.", LogManager.enumLogLevel.Debug);
                 return false;
             }
             else
             {
                 LogManager.WriteLog("Clearhandpay: Ignore Handpay Clear Failure.", LogManager.enumLogLevel.Debug);
                 return true;
             }
         }
     }
     catch (Exception ex)
     {
         ExceptionManager.Publish(ex);
         LogManager.WriteLog("Clearhandpay Exception", LogManager.enumLogLevel.Debug);
         return false;
     }
     return true;
 }
        private void rbReInstateMachine_Click(object sender, RoutedEventArgs e)
        {
            LogManager.WriteLog("rbReInstateMachine_Click", LogManager.enumLogLevel.Info);

            MachineManagerLazyInitializer manager = null;
            int nResult;
            try
            {

                var oDataContext =
                           new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
                //MachineManagerInterface machineManagerInterface = new MachineManagerInterface();
                manager = new MachineManagerLazyInitializer();

                if (!(Settings.NoWaitForDisableMachine))
                {
                    int nSuccess = manager.GetMachineManager().EnableMachineFromUI(_SlotMachine.InstallationNo);
                    if (nSuccess != 0)
                    {
                        MessageBox.ShowBox("MessageID362", BMC_Icon.Warning, _SlotMachine.AssetNo);
                        return;
                    }
                }

                //
                nResult = oDataContext.InsertReinstateMachine
                     (_SlotMachine.InstallationNo,
                         SecurityHelper.CurrentUser.SecurityUserID,
                         Convert.ToDouble("0"),
                         "Float Issued",
                         "FLOAT",
                         0,
                         0,
                         "SITE",
                         Settings.CD_Not_Use_Hoppers);

                if (nResult == 0)
                {
                    MessageBox.ShowBox("MessageID319", BMC_Icon.Information, BMC_Button.OK);
                    AuditViewerBusiness.InsertAuditData(new Audit.Transport.Audit_History
                    {
                        AuditModuleName = ModuleName.ReinstateMachine,
                        Audit_Screen_Name = "Position Details|Reinstate Machine",
                        Audit_Desc = "Machine Reinstated.",
                        AuditOperationType = OperationType.MODIFY,
                        Audit_Slot = _SlotMachine.AssetNumber
                    });

                }
                else
                {
                    MessageBox.ShowBox("MessageID320", BMC_Icon.Information, BMC_Button.OK);
                    AuditViewerBusiness.InsertAuditData(new Audit.Transport.Audit_History
                    {
                        AuditModuleName = ModuleName.ReinstateMachine,
                        Audit_Screen_Name = "Position Details|Reinstate Machine",
                        Audit_Desc = "Unable to Reinstate Machine.",
                        AuditOperationType = OperationType.MODIFY,
                        Audit_Slot = _SlotMachine.AssetNumber
                    });
                }

                if (Exit != null)
                {
                    Timer.Stop();
                    Exit.Invoke(this, new CancelEventArgs());
                }
            }
            catch (Exception ex)
            {
                ExceptionManager.Publish(ex);
            }

            finally
            {
                if (manager != null)
                {
                    manager.ReleaseMachineManager();
                    manager = null;
                }
            }

        }
        private void btnReinstate_Click(object sender, RoutedEventArgs e)
        {
            int nResult;

            try
            {
                btnReinstate.IsEnabled = false;
                if (string.IsNullOrEmpty(txtFloatValue.Text) || Regex.IsMatch(txtFloatValue.Text, "[^0-9.,]+"))
                {
                    //"Please enter a valid refloat value"
                    MessageBox.ShowBox("MessageID318", BMC_Icon.Warning, BMC_Button.OK);
                    return;
                }


                int nReturn = CollectionHelper.GetHandPayPlayCreditStatus(_PositionDetail.InstallationNo);
                switch (nReturn)
                {
                    case 1:

                        MessageBox.ShowBox("MessageID313", BMC_Icon.Warning);
                        return;
                    case 2:

                        MessageBox.ShowBox("MessageID316", BMC_Icon.Warning);
                        return;
                    case 3:

                        MessageBox.ShowBox("MessageID317", BMC_Icon.Warning);
                        return;

                }



                if (CollectionHelper.IsEventsUnCleared(_PositionDetail.InstallationNo))
                {

                    if (MessageBox.ShowBox("MessageID315", BMC_Icon.Question, BMC_Button.YesNo) == System.Windows.Forms.DialogResult.Yes)
                    {
                        IEventDetails objCDO = EventsBusinessObject.CreateInstance();

                        objCDO.UpdateEventDetails("MACHINE", string.Empty, 0, _PositionDetail.InstallationNo);
                        return;

                    }

                }
                else
                {
                    var oDataContext =
                        new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());

                    nResult = oDataContext.InsertReinstateMachine
                         (_PositionDetail.InstallationNo,
                             SecurityHelper.CurrentUser.SecurityUserID,
                             Convert.ToDouble(txtFloatValue.Text),
                             "Float Issued",
                             "FLOAT",
                             0,
                             0,
                             "SITE",
                             Settings.CD_Not_Use_Hoppers);

                    if (nResult == 0)
                    {
                        MessageBox.ShowBox("MessageID319", BMC_Icon.Information, BMC_Button.OK);
                        this.DialogResult = true;
                        this.Close();

                    }
                    else
                        MessageBox.ShowBox("MessageID320", BMC_Icon.Information, BMC_Button.OK);
                }

            }
            catch (Exception ex)
            {
                ExceptionManager.Publish(ex);
            }
            finally
            {
                btnReinstate.IsEnabled = true;
            }
        }
        private bool isPositionLocked(string sPosition)
        {
            var oDataContext =
                        new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
            LogManager.WriteLog(objPosDetails.Position, LogManager.enumLogLevel.Info);

            foreach (var Result in oDataContext.isPositionLocked(sPosition))
            {
                if (Result.Result == "LOCKED")
                    return true;
            }

            return false;
        }
        /// <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;
            }



        }
 private List<CollectionReports> GetCollectionReports()
 {
     try
     {
         var oDataContext = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
         List<CollectionReports> _collectionReports = new List<CollectionReports>();
         if (Settings.Client.ToUpper() == "SGVI" && Settings.SGVI_Enabled == true)
         {
             foreach (var machine in oDataContext.GetCollectionReports())
             {
                 _collectionReports.Add(machine);
             }
         }
         else
         {
             _collectionReports.Add(new CollectionReports { Description = "Exception Summary Report", ID = "1" });
         }
         return _collectionReports;
     }
     catch (Exception ex)
     {
         ExceptionManager.Publish(ex);
         return new List<CollectionReports>();
     }
 }
        private void btnReinstate_Click(object sender, RoutedEventArgs e)
        {
            int nResult;

            try
            {
                btnReinstate.IsEnabled = false;
                if (string.IsNullOrEmpty(txtFloatValue.Text) || Regex.IsMatch(txtFloatValue.Text, "[^0-9.,]+"))
                {
                    //"Please enter a valid refloat value"
                    MessageBox.ShowBox("MessageID318", BMC_Icon.Warning, BMC_Button.OK);
                    return;
                }


                int nReturn = CollectionHelper.GetHandPayPlayCreditStatus(_PositionDetail.InstallationNo);
                switch (nReturn)
                {
                case 1:

                    MessageBox.ShowBox("MessageID313", BMC_Icon.Warning);
                    return;

                case 2:

                    MessageBox.ShowBox("MessageID316", BMC_Icon.Warning);
                    return;

                case 3:

                    MessageBox.ShowBox("MessageID317", BMC_Icon.Warning);
                    return;
                }



                if (CollectionHelper.IsEventsUnCleared(_PositionDetail.InstallationNo))
                {
                    if (MessageBox.ShowBox("MessageID315", BMC_Icon.Question, BMC_Button.YesNo) == System.Windows.Forms.DialogResult.Yes)
                    {
                        IEventDetails objCDO = EventsBusinessObject.CreateInstance();

                        objCDO.UpdateEventDetails("MACHINE", string.Empty, 0, _PositionDetail.InstallationNo);
                        return;
                    }
                }
                else
                {
                    var oDataContext =
                        new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());

                    nResult = oDataContext.InsertReinstateMachine
                                  (_PositionDetail.InstallationNo,
                                  SecurityHelper.CurrentUser.SecurityUserID,
                                  Convert.ToDouble(txtFloatValue.Text),
                                  "Float Issued",
                                  "FLOAT",
                                  0,
                                  0,
                                  "SITE",
                                  Settings.CD_Not_Use_Hoppers);

                    if (nResult == 0)
                    {
                        MessageBox.ShowBox("MessageID319", BMC_Icon.Information, BMC_Button.OK);
                        this.DialogResult = true;
                        this.Close();
                    }
                    else
                    {
                        MessageBox.ShowBox("MessageID320", BMC_Icon.Information, BMC_Button.OK);
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionManager.Publish(ex);
            }
            finally
            {
                btnReinstate.IsEnabled = true;
            }
        }
        //
        private void DoFinalDrop(bool bManualDrop)
        {
            MachineManagerLazyInitializer manager = null;

            try
            {

                if (rdoFinalCount.IsChecked == true)
                {
                    //if ((!Settings.AutoDropEnabled) || bManualDrop)

                    InstallationDataContext installationDataContext =
                                    new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());


                    foreach (CreditStatus credits in _collectionHelper.GetHandPayPlayCreditStatus(SELECTED_MACHINES))
                    {
                        if (_mEvent.WaitOne(10))
                        {
                            break;
                        }


                        _InstallationnumberMR = Convert.ToInt32(credits.Installation_No);

                        if (credits.IsHandPayUnProcessed != 0 || credits.isCardedPlay != 0 || credits.inplay != 0)
                        {

                            MarkMachineDropStatus(false, false, NOTSET, Convert.ToInt32(credits.Installation_No), NOTSET, NOTSET.ToString(), NOTSET, NOTSET);
                            string strMsg = (credits.IsHandPayUnProcessed != 0) ? System.Windows.Application.Current.FindResource("MessageID313").ToString() :
                                (credits.inplay != 0) ? System.Windows.Application.Current.FindResource("MessageID316").ToString() : System.Windows.Application.Current.FindResource("MessageID317").ToString();
                            strMsg += " (" + GetStockNo(credits.Installation_No.Value) + ")";
                            MessageBox.ShowBox(strMsg, BMC_Icon.Warning, true);

                        }
                        else if (credits.isGMUUPdate != 0)
                        {
                            MarkMachineDropStatus(false, false, NOTSET, Convert.ToInt32(credits.Installation_No), NOTSET, NOTSET.ToString(), NOTSET, NOTSET);
                            string strMsg = System.Windows.Application.Current.FindResource("MessageID316a").ToString().Replace("@@@@@@",GetStockNo(credits.Installation_No.Value));                           
                            MessageBox.ShowBox(strMsg, BMC_Icon.Warning, true);
                        }
                        else
                        {
                            try
                            {
                                manager = new MachineManagerLazyInitializer();
                                int nSuccess = 0;
                                if (Settings.Disable_Machine_On_Drop)
                                    nSuccess = manager.GetMachineManager().DisableMachineFromUI(Convert.ToInt32(credits.Installation_No));
                                else
                                    LogManager.WriteLog("CPerformDrop->DoFinalDrop: Skip Disable Machine as Disable_Machine_On_Drop is false", LogManager.enumLogLevel.Info);


                                if (nSuccess != 0)
                                {
                                    if (!(Settings.NoWaitForDisableMachine))
                                    {
                                        MarkMachineDropStatus(false, false, NOTSET, Convert.ToInt32(credits.Installation_No), NOTSET, NOTSET.ToString(), NOTSET, NOTSET);
                                        MessageBox.ShowBox("MessageID361", BMC_Icon.Warning, GetStockNo(Convert.ToInt32(credits.Installation_No)));
                                    }
                                }

                                //Allow Machine Removal in CDO when CentralizedDeclaration declaration is Enabled 
                                //Allow Machine Removal in CDO when multiple drops is Enabled 
                                if (Settings.IsFinalDropRequiredForRemoval&&(Settings.AllowMultipleDrops || Settings.Allow_Machine_Removal) && rdoFinalCount.IsChecked == true)
                                {
                                    installationDataContext = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
                                    installationDataContext.updateInstallationFloatStatus(_InstallationnumberMR);
                                }
                                //Allow Machine Removal in CDO when CentralizedDeclaration declaration is Enabled 

                            }
                            finally
                            {
                                if (manager != null)
                                {
                                    manager.ReleaseMachineManager();
                                    manager = null;
                                }
                            }

                        }

                        //}
                    }
                }
            }
            catch (Exception ex) { LogError("DoFinalDrop", ex); }
        }
        private void pnlContent_Loaded(object sender, RoutedEventArgs e)
        {
            LogManager.WriteLog("PositionDetails pnlContent_Loaded", LogManager.enumLogLevel.Info);
            var installationDataContext =
                    new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
            IList<GetBarPositionDetailsForCashDeskoperatorResult> InstallationDetailsResult;
            InstallationDetailsResult = installationDataContext.GetBarPositionDetailsForCashDeskoperator("", _SlotMachine.InstallationNo).ToList();

            foreach (var InstallationDetails in InstallationDetailsResult)
            {
                lblAsset.Text = InstallationDetails.Asset_No;
                lblGame.Text = InstallationDetails.Game_Name;
                lblBaseDenom.Text = (Convert.ToDecimal(InstallationDetails.Installation_Price_Of_Play) / 100).GetUniversalCurrencyFormatWithSymbol();
                lblPercentagePayout.Text = Math.Round(InstallationDetails.Anticipated_Percentage_Payout, 2).ToString();
                lblMaxBet.Text = InstallationDetails.Installation_MaxBet.ToString();
                lblSerialNo.Text = InstallationDetails.ActSerialNo;
                lblActAsset.Text = InstallationDetails.ActAssetNo;
                lblGMU.Text = InstallationDetails.GMUNo;

                if (InstallationDetails.Manufacturer != null)
                {
                    lblManufacturer.Text = ((InstallationDetails.Manufacturer).Length > 20) ? (InstallationDetails.Manufacturer).Substring(0, 20) : InstallationDetails.Manufacturer;
                    lblManufacturer.ToolTip = InstallationDetails.Manufacturer;
                }
                // lblManufacturer.Text = InstallationDetails.Manufacturer;
                if ((InstallationDetails.Zone_Name) != null)
                {
                    lblZoneName.Text = ((InstallationDetails.Zone_Name).Length > 20) ? (InstallationDetails.Zone_Name).Substring(0, 20) : InstallationDetails.Zone_Name;
                    lblZoneName.ToolTip = InstallationDetails.Zone_Name;
                }


                //lblZoneName.Text = InstallationDetails.Zone_Name;
                lblCreditValue.Text = (Convert.ToDecimal(InstallationDetails.Installation_Token_Value) / 100).GetUniversalCurrencyFormatWithSymbol();
                IsEventUncleared = (bool)InstallationDetails.UnClearedEvent;

                sBarPosName = InstallationDetails.Bar_Pos_Name;
                dtInstallationStartDate = (DateTime)InstallationDetails.InstallationStartDate;
                dtInstallationStartDateforCM = (DateTime)InstallationDetails.Start_Date;
                nInstallationFloatStatus = InstallationDetails.Installation_Float_Status;
                //txtRoute.Text = InstallationDetails.Route;
            }

            //if (Security.SecurityHelper.CurrentUser.UserName.ToUpper() == "BALLY" || Security.SecurityHelper.CurrentUser.UserName.ToUpper() == "CASH")
            //{
            //    rbHandpay.IsChecked = true;
            //    LoadScreen(PositionDetailsScreen.Handpay);
            //    return;
            //} //commented for CR 107,130

            RefreshSlot();
            //if (_SlotMachine.Status == SlotMachineStatus.GMUConnectivity)
            //{
            //    MessageBox.ShowBox("MessageID438");
            //}
            //else if ((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) && (_SlotMachine.Status != SlotMachineStatus.FloatCollection))
            //{
            //    MessageBox.ShowBox("MessageID437");
            //    if (Exit != null)
            //    {
            //        Exit.Invoke(this, new CancelEventArgs());
            //    }
            //    return;
            //}

            if ((_SlotMachine.Status == SlotMachineStatus.CardedHandPay) || (_SlotMachine.Status == SlotMachineStatus.EmpCardedPlay) ||
                (_SlotMachine.Status == SlotMachineStatus.NonCardedHandPay) || (_SlotMachine.Status == SlotMachineStatus.CommsDown) ||
                (_SlotMachine.Status == SlotMachineStatus.GameDown))
            {
                if (Security.SecurityHelper.HasAccess("CashdeskOperator.FloorView.cs.Handpay"))
                {
                    rbHandpay.IsChecked = true;
                    LoadScreen(PositionDetailsScreen.Handpay);
                    isScreenLoaded = true;
                }
                else if (Security.SecurityHelper.HasAccess("CashdeskOperator.FloorView.cs.Events"))
                {
                    rbEvents.IsChecked = true;
                    LoadScreen(PositionDetailsScreen.Events);
                    isScreenLoaded = true;
                }
                return;
            }
            else if (IsEventUncleared && rbEvents.Visibility == Visibility.Visible)
            {
                rbEvents.IsChecked = true;
                LoadScreen(PositionDetailsScreen.Events);
                isScreenLoaded = true;
                return;
            }
            
            isFirstTime = false;
        }
        /*  Author  :   A.Vinod Kumar
         *  Date    :   12/12/2011
         *  Purpose :   To solve the performance related problems.
         */

        void clientObj_FloorClientReceived(object oLst)
        {
            const string PROC = "[clientObj_FloorClientReceived]";

            try
            {
                _slotRefreshTime = DateTime.Now;
                if (!_teFloorActive.IsSignalled) return;

                if (oLst == null)
                {
                    using (InstallationDataContext installationDataContext2 =
                        new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString()))
                    {
                        oLst = installationDataContext2.GetSlotStatus("", -1);
                    }
                }

                this.OnRefreshFloorView(oLst as List<FloorStatusData>);
            }
            catch (ThreadAbortException)
            {
                LogManager.WriteLog(PROC + " => Thread was instructed to close.", LogManager.enumLogLevel.Error);
            }
            catch (Exception ex)
            {
                LogManager.WriteLog(PROC + " => Exception occured in function.", LogManager.enumLogLevel.Error);
                ExceptionManager.Publish(ex);
            }
        }
        private void SlotMouseUpEvent(object sender, MouseButtonEventArgs e)
        {
            int machineStatusFlag = 0;
            string siteCode = string.Empty;
            bool needRefresh = false;

            try
            {
                SlotMachine _slotMachine = (SlotMachine)sender;

                try
                {
                    LogManager.WriteLog("Inside SlotMouseUpEvent for : " + _slotMachine.SlotNumberString, LogManager.enumLogLevel.Info);
                }
                catch { }

                if (pnlFloor.IsElementBeingDragged)
                {
                    bool isSaved = false;
                    chkSortPos.IsChecked = false;
                    chkSortAsset.IsChecked = false;
                    SaveFloorPosition(_slotMachine, false, ref isSaved);
                    if (isSaved) CDOSettings.Current.Save();
                    return;
                }

                if (!SecurityHelper.HasAccess("BMC.Presentation.PosDetails"))
                {
                    MessageBox.ShowBox("MessageID324", BMC_Icon.Warning, BMC_Button.OK);
                    return;
                }

                if (_slotMachine.Status == SlotMachineStatus.InstallationCompletedNonMetered
                        || _slotMachine.Status == SlotMachineStatus.GameInstallationAAMSPending
                        || _slotMachine.Status == SlotMachineStatus.ForceFinalCollection)
                {
                    if (!Security.SecurityHelper.HasAccess("CashdeskOperator.FloorView.cs.RemoveMachine"))
                    {
                        MessageBox.ShowBox("MessageID328", BMC_Icon.Information, BMC_Button.OK);
                        return;
                    }

                    if (_slotMachine.Status == SlotMachineStatus.ForceFinalCollection)
                    {
                        if (MessageBox.ShowBox("MessageID379", BMC_Icon.Information, BMC_Button.OKCancel)
                            == System.Windows.Forms.DialogResult.OK)
                        {
                            HandpayBusinessObject.CreateInstance().ProcessHandPayOnDenomChange(_slotMachine.SlotNumberString,
                                Security.SecurityHelper.CurrentUser.User_No);
                            Exit.Invoke(this, new CancelEventArgs());
                        }
                        return;
                    }

                    if (_slotMachine.Status == SlotMachineStatus.InstallationCompletedNonMetered)
                    {
                        if (MessageBox.ShowBox("MessageID323", BMC_Icon.Information, BMC_Button.OKCancel)
                            == System.Windows.Forms.DialogResult.Cancel)
                            return;
                    }

                    Cursor = System.Windows.Input.Cursors.Wait;

                    InstallationDataContext objRemoveContext =
                                            new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
                    int nDisMachine = 0;

                    foreach (var IP in objRemoveContext.GetDisableMachine(_slotMachine.InstallationNo))
                    {
                        nDisMachine = IP.DisMachine;
                    }

                    EnrollmentErrorCodes ErrorCode = EnrollmentBusinessObject.CreateInstance().RemoveMachine(
                                            _slotMachine.InstallationNo, machineStatusFlag, siteCode, nDisMachine);
                    needRefresh = true;
                    Cursor = System.Windows.Input.Cursors.Arrow;

                    switch (ErrorCode)
                    {
                        case EnrollmentErrorCodes.DatabaseError:
                            {
                                MessageBox.ShowBox("MessageID206");
                                Audit_Error("Database Error", _slotMachine.AssetNumber);
                                break;
                            }
                        case EnrollmentErrorCodes.EnterpriseWebServiceCommunicationFailure:
                            {
                                MessageBox.ShowBox("MessageID207");
                                Audit_Error("Enterprise WebService Communication Failure", _slotMachine.AssetNumber);
                                break;
                            }
                        case EnrollmentErrorCodes.RemoveFromPollingListFailure:
                            {
                                MessageBox.ShowBox("MessageID208");
                                Audit_Error("Unable to remove from Polling list", _slotMachine.AssetNumber);
                                break;
                            }
                        case EnrollmentErrorCodes.ExchangeHostServiceNotRunning:
                            {
                                Audit_Error("Unable to remove from Polling list: Timeout occured", _slotMachine.AssetNumber);
                                if (MessageBox.ShowBox("MessageID359", BMC_Icon.Question, BMC_Button.YesNo)
                                    == System.Windows.Forms.DialogResult.No)
                                    return;
                                //Calling Remove Machine with Disable Machine command as false, Since first attempt to Disable Failed.
                                ErrorCode = EnrollmentBusinessObject.CreateInstance().RemoveMachine(
                                    _slotMachine.InstallationNo, machineStatusFlag, siteCode, 0);

                                switch (ErrorCode)
                                {
                                    case EnrollmentErrorCodes.DatabaseError:
                                        {
                                            MessageBox.ShowBox("MessageID206");
                                            Audit_Error("Database Error", _slotMachine.AssetNumber);
                                            break;
                                        }
                                    case EnrollmentErrorCodes.EnterpriseWebServiceCommunicationFailure:
                                        {
                                            MessageBox.ShowBox("MessageID207");
                                            Audit_Error("Enterprise WebService Communication Failure", _slotMachine.AssetNumber);
                                            break;
                                        }
                                    case EnrollmentErrorCodes.RemoveFromPollingListFailure:
                                        {
                                            MessageBox.ShowBox("MessageID208");
                                            Audit_Error("Unable to remove from Polling list", _slotMachine.AssetNumber);
                                            break;
                                        }
                                    case EnrollmentErrorCodes.ExchangeHostServiceNotRunning:
                                        {
                                            Audit_Error("Unable to remove from Polling list: Timeout occured", _slotMachine.AssetNumber);
                                            MessageBox.ShowBox("MessageID360", BMC_Icon.Error);
                                            break;
                                        }
                                    case EnrollmentErrorCodes.Success:
                                        MessageBox.ShowBox("MessageID209");

                                        AuditViewerBusiness.InsertAuditData(new Audit.Transport.Audit_History
                                        {

                                            AuditModuleName = ModuleName.RemoveMachine,
                                            Audit_Screen_Name = "Position Details|Remove Machine",
                                            Audit_Desc = "Machine Removed from Position: "
                                                         + Convert.ToInt32(_slotMachine.SlotNumber).ToString(),
                                            AuditOperationType = OperationType.MODIFY,
                                            Audit_Slot = ((SlotMachine)sender).AssetNumber,
                                            Audit_Field = "Position",
                                            Audit_Old_Vl = Convert.ToInt32(_slotMachine.SlotNumber).ToString()
                                        });
                                        break;


                                }
                                return;

                                break;
                            }
                        case EnrollmentErrorCodes.Success:
                            MessageBox.ShowBox("MessageID209");

                            AuditViewerBusiness.InsertAuditData(new Audit.Transport.Audit_History
                            {

                                AuditModuleName = ModuleName.RemoveMachine,
                                Audit_Screen_Name = "Position Details|Remove Machine",
                                Audit_Desc = "Machine Removed from Position: "
                                             + Convert.ToInt32(_slotMachine.SlotNumber).ToString(),
                                AuditOperationType = OperationType.MODIFY,
                                Audit_Slot = ((SlotMachine)sender).AssetNumber,
                                Audit_Field = "Position",
                                Audit_Old_Vl = Convert.ToInt32(_slotMachine.SlotNumber).ToString()
                            });
                            break;


                    }
                    return;
                }
                if (_slotMachine.InstallationNo > 0)
                {
                    this.CloseLegendPanel();
                    var pos = new PosDetails(_slotMachine);
                    pos.Exit += ObjPosDetailsExitClicked;
                    this.ChildWindow = pos;
                    pos.Margin = new Thickness(0);
                    LayoutRoot.Children.Add(pos);
                }
                else if (string.IsNullOrWhiteSpace(_slotMachine.AssetNumber) &&
                         SecurityHelper.HasAccess("CashdeskOperator.FloorView.cs.InstallMachine"))
                {
                    this.CloseLegendPanel();
                    var enrollment = new EnrollmentWnd(_slotMachine.SlotNumberString);
                    enrollment.Exit += ObjPosDetailsExitClicked;
                    this.ChildWindow = enrollment;
                    enrollment.Margin = new Thickness(0);
                    LayoutRoot.Children.Add(enrollment);
                }
                else
                {
                    MessageBox.ShowBox("MessageID437");
                }
                return;

            }
            catch (Exception ex)
            {
                ExceptionManager.Publish(ex);
            }
            finally
            {
                if (needRefresh)
                {
                    SlotMachineCollectionFactory.ClearMachines(this);
                    clientObj_FloorClientReceived(null);
                }
            }
        }
        private bool AbandonCreditonAutoDrop()
        {
            bool retval = false;
            try
            {
                List<FloorStatusData> actualResults = new List<FloorStatusData>();
                using (InstallationDataContext installationDataContext2 =
                       new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString()))
                {
                    actualResults = installationDataContext2.GetSlotStatus("", -1);
                }
                if (actualResults != null && actualResults.Count > 0)
                {

                    var InPlayStatus = from a in actualResults
                                       where (((SlotMachineStatus)Enum.Parse(typeof(SlotMachineStatus), a.Slot_Status) == SlotMachineStatus.MachineInPlay)
                                       && _selectedInstallationNos.Any(o => o.ToString() == a.Install_No.ToString()))
                                       select a;
                    if (InPlayStatus.Count() > 0)
                    {
                        StringBuilder str_InPlayStatus = new StringBuilder();
                        foreach (var obj in InPlayStatus)
                        {
                            str_InPlayStatus.AppendLine("Machine Number: " + obj.Asset_No + " Bar Position: " + obj.Bar_Pos_Name);
                        }
                        ScrollableMessageBox s_box = new ScrollableMessageBox(System.Windows.Application.Current.FindResource("MessageID523").ToString(), str_InPlayStatus.ToString());
                        s_box.Owner = MessageBox.parentOwner;
                        s_box.ShowDialogEx(this);
                        retval = s_box._isOk;

                    }
                }

            }
            catch (Exception ex)
            {
                ExceptionManager.Publish(ex);
            }
            return retval;
        }
        public void GetSlotMachineStatus()
        {
            try
            {
                rbEvents.IsEnabled = true;
                rbFieldService.IsEnabled = true;
                rbHandpay.IsEnabled = true;
                rbMachineMeters.IsEnabled = true;
                rbPlayerClub.IsEnabled = true;
                rbRemoveMachine.IsEnabled = true;
                rbMachineMaintenance.IsEnabled = true;
                rbReInstateMachine.IsEnabled = true;
                rbSyncTicketExpire.IsEnabled = true;
                rbCurrentMeters.IsEnabled = true;

                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.Install_No != 0)
                    {
                        ucSlotMachine.FinalCollectionStatus = position.FinalCollectionStatus.HasValue ? position.FinalCollectionStatus.Value : 0;
                        ucSlotMachine.Status = (SlotMachineStatus)Enum.Parse(typeof(SlotMachineStatus), position.Slot_Status);
                        ucSlotMachine.StackerEventReceived = position.StackerEventReceived.HasValue ? position.StackerEventReceived.Value : false;
                        IsEventUncleared = (bool)position.UnClearedEvent;
                        ucSlotMachine.IsCollectable = position.IsCollectable < 1;
                    }
                    else
                        ucSlotMachine.Status = SlotMachineStatus.EmptyPosition;
                }
            }
            catch (Exception exception)
            {
                ExceptionManager.Publish(exception);
            }
            if (ucSlotMachine.StackerEventReceived)
            {
                ucSlotMachine.OuterRoundColor = Brushes.Goldenrod;
                ucSlotMachine.InnerRoundColor = Brushes.IndianRed;
            }
            else
            {
                ucSlotMachine.SetMachineStatus(ucSlotMachine.Status);
            }
        }
        private void lstInstallationGames_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                if (e.AddedItems.Count > 0)
                {
                    var k = (e.AddedItems[0] as GetGameDetailsForPosResult);
                    int? gameTitleID = k.Game_Title_Id;
                    InstallationDataContext InstallationDC = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
                    lstPaytable.DataContext = InstallationDC.GetPaytableDetailsForGame(gameTitleID, Pos);

                }
            }
            catch (Exception ex)
            {
                LogManager.WriteLog("Exception in InstallationDetails, lstInstallationGames_SelectionChanged() : " + ex.Message, LogManager.enumLogLevel.Error);
            }
        }
        private List<CollectionReports> GetCollectionReports()
        {

            try
            {
                var oDataContext = new InstallationDataContext(oCommonUtilities.CreateInstance().GetConnectionString());
                foreach (var ReportsInfo in oDataContext.GetCollectionDetailReports())
                {
                    _collectionReports.Add(ReportsInfo);
                }

                if (_ChkWeek == true)
                {
                    cboReports.Items.Add(_collectionReports[2]);//Adding Weekly Win Loss Report.
                    cboReports.Items.Add(_collectionReports[3]);//Weekly Exception Summary Report.
                    cboReports.SelectedIndex = 0;

                }
                else
                {
                    if ((Settings.SGVI_Enabled) ||((Settings.LiquidationType.ToUpper().Equals("COLLECTION") || Settings.LiquidationType.ToUpper().Equals("READ")) && Settings.LiquidationProfitShare))
                        cboReports.Items.Add(_collectionReports[0]);//Adding Liquidation Summary Report.

					if(Settings.ShowCollectionReport)
                        cboReports.Items.Add(_collectionReports[5]);
					
					if(Settings.ShowBatchWinLossOnDeclaration)
                    	cboReports.Items.Add(_collectionReports[1]); //Adding Machine Drop Report. 

					if (Settings.ShowVarianceReport)
                        cboReports.Items.Add(_collectionReports[6]);

                    if (!_Undeclared) //If Declaration is completed Adding Exception Summary Report.
                     cboReports.Items.Add(_collectionReports[4]);   
                    cboReports.SelectedIndex = 0;
                }
            }

            catch (Exception ex)
            {
                ExceptionManager.Publish(ex);
            }

            return _collectionReports;
        }