/// <summary>
        /// Обновление listview с букетами. Для каждого букета ставится в соответствие список его кмпонентов. Подсчитывается стоимость букета с учётом скидок Специальных Предложений
        /// </summary>
        /// <returns></returns>
        private async Task Update_ListView_Bouquets()
        {
            List <Bouquet_Content> lBouquet_Content = new List <Bouquet_Content>();

            List <Bouquets> lBouquets = await oBouquetsRepository.Select_All_Bouquets_Async();

            foreach (var b in lBouquets)
            {
                Bouquet_Content bouquet_content = new Bouquet_Content();

                bouquet_content.bouquet  = b;
                bouquet_content.lContent = await oContentsRepository.Select_Contents_Async("select * from contents where bouquets_id = " + b.bouquets_id);

                bouquet_content.cost = 0;

                foreach (var c in bouquet_content.lContent)
                {
                    if (c.accessories_id != -1)
                    {
                        bouquet_content.cost += (double)c.count * conn.GetAsync <Accessories>(c.accessories_id).Result.price;
                    }
                    else
                    {
                        bouquet_content.cost += (double)c.count * conn.GetAsync <Flowers>(c.flowers_id).Result.price;
                    }
                }

                bouquet_content.cost += bouquet_content.bouquet.price_extra;

                // Обработка скидок по спец. предложениям
                try
                {
                    SpecialDeals oSpecialDeals = (await oSpecialDealsRepository.Select_SpecialDeals_Async("select * from specialdeals where bouquets_id = " + b.bouquets_id))[0];

                    if (oSpecialDeals != null && oSpecialDeals.datetime >= DateTime.Now)
                    {
                        bouquet_content.cost = bouquet_content.cost * (1 - oSpecialDeals.discount / 100);
                    }
                }
                catch
                {
                }

                lBouquet_Content.Add(bouquet_content);
            }

            listview_Bouquets.ItemsSource = lBouquet_Content;
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void button_SpecialDeal_Create_Click(object sender, RoutedEventArgs e)
        {
            SpecialDeals query = null;

            try
            {
                query = (await oSpecialDealsRepository.Select_SpecialDeals_Async("select * from specialdeals where bouquets_id = " + oBouquet.bouquets_id))[0];
            }
            catch
            {
            }

            if (query == null)
            {
                await oSpecialDealsRepository.Insert_SpecialDeals_Async(new SpecialDeals(oBouquet.bouquets_id, (double)numericUD_SpecialDeal_Percent.Value, DateTime.Parse(datepicker.Text)));

                await Update_ListView_SpecialDeals();

                Special_Deal_Window oSpecial_Deal_Window = new Special_Deal_Window();
                oSpecial_Deal_Window.ShowDialog();
                this.Close();
            }
            else
            {
                MessageBox.Show("Спец. предложения для данного букета уже существует.");
            }
        }