private void LoadEmptyCassette(GetUndeclaredVaultDrops vd_select)
        {
            try
            {
                var redcolor = new System.Windows.Media.SolidColorBrush(Colors.DarkRed);
                var blackcolor = new System.Windows.Media.SolidColorBrush(Colors.Black);

                var BoldFont = new System.Windows.FontWeight();
                BoldFont = System.Windows.FontWeights.Bold;

                var NormalFont = new System.Windows.FontWeight();
                NormalFont = System.Windows.FontWeights.Normal;
                List<CassetteDropsResult> lst_emptycassette = new List<CassetteDropsResult>();
                int temp_cassetteid = 1;
                foreach (string strdenom in sCassetteDenom)
                {

                    int idenom = dic_denoms[strdenom];

                    lst_emptycassette.Add(new CassetteDropsResult
                    {
                        Cassette_ID = temp_cassetteid++,
                        CassetteType_ID = (int)CassetteTypes.Cassette,
                        Cassette_Name = "Cassette :" + idenom,
                        DeclaredBalance = 0,
                        Denom = idenom,
                        IsChecked = true,
                        Drop_ID = vd_select.Drop_ID,
                        VaultBalance = 0,
                        EnableControls = true,
                        FontColor = blackcolor,
                        CustomFontWeight = NormalFont,
                        IsBillCounterAmountEditable = Settings.IsBillCounterAmountEditable,
                        IsBillCounterQuantityEditable = !Settings.IsBillCounterAmountEditable
                    });
                }
                if (lst_emptycassette.Count > 0)
                {
                    p_cassette = new CassetteDropsResult
                    {
                        Cassette_ID = 0,
                        CassetteType_ID = (int)CassetteTypes.Cassette,
                        Cassette_Name = "Total Cassettes (" + lst_emptycassette.Count + ")",
                        DeclaredBalance = 0,
                        Denom = 0,
                        Drop_ID = vd_select.Drop_ID,
                        VaultBalance = 0,
                        EnableControls = false,
                        FontColor = redcolor,
                        CustomFontWeight = BoldFont,
                        IsBillCounterAmountEditable = false,
                        IsBillCounterQuantityEditable = false
                    };
                    lst_emptycassette.Add(p_cassette);
                }

                if (sHopperDenom != null && sHopperDenom.Length > 0)
                {
                    foreach (string str in sHopperDenom)
                    {
                        float val = 0f;
                        if (float.TryParse(str, out val))
                        {
                            lst_emptycassette.Add(new CassetteDropsResult
                            {
                                Cassette_ID = temp_cassetteid++,
                                CassetteType_ID = (int)CassetteTypes.Hopper,
                                Cassette_Name = "Hopper :" + val,
                                DeclaredBalance = 0,
                                Denom = val,
                                IsChecked = true,
                                Drop_ID = vd_select.Drop_ID,
                                VaultBalance = 0,
                                EnableControls = true,
                                FontColor = blackcolor,
                                CustomFontWeight = NormalFont,
                                IsBillCounterAmountEditable = Settings.IsBillCounterAmountEditable,
                                IsBillCounterQuantityEditable = !Settings.IsBillCounterAmountEditable
                            });
                        }

                    }
                    if (lst_emptycassette.Count > 0)
                    {
                        p_hopper = new CassetteDropsResult
                        {
                            Cassette_ID = 0,
                            CassetteType_ID = (int)CassetteTypes.Hopper,
                            Cassette_Name = "Total Hoppers (" + sHopperDenom.Length + ")",
                            DeclaredBalance = 0,
                            Denom = 0,
                            Drop_ID = vd_select.Drop_ID,
                            VaultBalance = 0,
                            EnableControls = false,
                            FontColor = redcolor,
                            CustomFontWeight = BoldFont,
                            IsBillCounterAmountEditable = false,
                            IsBillCounterQuantityEditable = false
                        };
                        lst_emptycassette.Add(p_hopper);
                    }
                }
                vd_select.Cassettes = lst_emptycassette;
                lst_cassettes = lst_emptycassette;
                lv_CassetteDetails.ItemsSource = lst_emptycassette;

            }
            catch (Exception Ex)
            {
                ExceptionManager.Publish(Ex);
            }
        }
        private void lv_dropdetails_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {

                if (e.AddedItems.Count > 0)
                {
                    GetUndeclaredVaultDrops vd_select = e.AddedItems[0] as GetUndeclaredVaultDrops;
                    if (vd_select != null)
                    {

                        if (vd_select.Cassettes != null && vd_select.Cassettes.Count > 0)
                        {
                            lst_cassettes = vd_select.Cassettes;
                            if (Settings.AutoFillDeclaredAmount)
                            {
                                foreach (CassetteDropsResult casette in vd_select.Cassettes)
                                {
                                    casette.DeclaredBalance = casette.VaultBalance.Value;
                                    if (casette.EnableControls)
                                    {
                                        casette.Quantity = Convert.ToInt32(Math.Truncate(casette.DeclaredBalance / Convert.ToDecimal(casette.Denom.Value)));
                                    }

                                }
                            }

                            p_cassette = lst_cassettes.Find(obj => obj.CassetteType_ID == (int)CassetteTypes.Cassette && !obj.EnableControls);
                            p_hopper = lst_cassettes.Find(obj => obj.CassetteType_ID == (int)CassetteTypes.Hopper && !obj.EnableControls);

                            if (lst_cassettes.FindAll(obj => obj.CassetteType_ID == (int)CassetteTypes.Cassette).Count == 0)
                            {
                                btnStart.Visibility = Visibility.Hidden;
                            }
                            else
                            {
                                btnStart.Visibility = Visibility.Visible;

                            }

                            lv_CassetteDetails.ItemsSource = lst_cassettes;
                            if (!vd_select.IsEmptyCassette)
                            {
                                vd_select.IsEmptyCassette = false;
                            }
                            vd_select.Declared_Balance = (p_cassette != null ? p_cassette.DeclaredBalance : 0) + (p_hopper != null ? p_hopper.DeclaredBalance : 0);
                        }
                        else
                        {
                            LoadEmptyCassette(vd_select);
                            if (lst_cassettes.FindAll(obj => obj.CassetteType_ID == (int)CassetteTypes.Cassette).Count == 0)
                            {
                                btnStart.Visibility = Visibility.Hidden;
                            }
                            else
                            {
                                btnStart.Visibility = Visibility.Visible;

                            }
                            vd_select.Declared_Balance = 0;
                            vd_select.IsEmptyCassette = true;
                        }
                        if (!vd_select.ToDeclared)
                        {
                            lblcounterWarning.Text = Application.Current.FindResource("Vault_MessageID16") as string;
                        }
                        else
                        {
                            lblcounterWarning.Text = "";
                        }
                        if (e.RemovedItems.Count > 0)
                        {
                            GetUndeclaredVaultDrops vd_removeselect = e.RemovedItems[0] as GetUndeclaredVaultDrops;
                            if (vd_removeselect != null)
                            {
                                if (vd_removeselect.Declared_Balance > 0 && vd_removeselect.ToDeclared)
                                {
                                    if ((Settings.ShowVaultConfirmMessage) && MessageBox.ShowBox("Vault_MessageID15", BMC_Icon.Information, BMC_Button.YesNo) == System.Windows.Forms.DialogResult.Yes)
                                    {
                                        lv_dropdetails.SelectionChanged -= lv_dropdetails_SelectionChanged;
                                        lv_dropdetails.SelectedItem = vd_removeselect;
                                        bool IsValidAmount = false;
                                        SaveVaultDeclaration(ref IsValidAmount);
                                        lv_dropdetails.SelectionChanged += lv_dropdetails_SelectionChanged;

                                        return;
                                    }
                                    else
                                    {
                                        foreach (CassetteDropsResult casette in vd_removeselect.Cassettes)
                                        {
                                            casette.Quantity = 0;
                                            casette.DeclaredBalance = 0;
                                        }
                                    }
                                }
                                else
                                {
                                    foreach (CassetteDropsResult casette in vd_removeselect.Cassettes)
                                    {
                                        casette.Quantity = 0;
                                        casette.DeclaredBalance = 0;
                                    }

                                }

                            }

                            vd_removeselect.Declared_Balance = 0;

                        }

                        vd_select.BillsTotal = 0;
                        vd_select.TotalCoinsValueAsCurrency = 0;

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

        }