using Sessioa.BaseModel;
using Sessioa.Classes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
namespace Sessioa.Pages
{
///
/// Логика взаимодействия для OrderCard.xaml
///
public partial class OrderCard : Page
{
List products = (List)Application.Current.Properties["ListOrderUser"];
Dictionary keyValuePairs = (Dictionary)(Application.Current.Properties["ListOrderCountUser"]);
//{
// {"djkdkla", 19 }
//};
User user = null;
public OrderCard(User userSign)
{
InitializeComponent();
user = userSign;
LB_ProductsOrder.ItemsSource = products;
if (keyValuePairs.Count == 0)
{
foreach (Product product in products)
{
keyValuePairs.Add($"{product.ProductArticleNumber}", 1);
}
}
else
{
foreach (Product product in products)
{
try
{
keyValuePairs.Add($"{product.ProductArticleNumber}", 1);
}
catch { }
}
}
ItogoSkidka();
//keyValuePairs.Add("dawlk", 2718);
//foreach(KeyValuePair pair in keyValuePairs)
//{
// pair.Key; //1
// pair.Value; //2
//}
}
private void countPr_Loaded(object sender, RoutedEventArgs e)
{
TextBlock textBlock = (TextBlock)sender;
Product product = BaseClass.C_Base.Product.FirstOrDefault(x => x.ProductArticleNumber == textBlock.Uid);
if (product.ProductDiscountAmount != null)
textBlock.TextDecorations = TextDecorations.Strikethrough;
}
private void countDPr_Loaded(object sender, RoutedEventArgs e)
{
TextBlock textBlock = (TextBlock)sender;
Product product = BaseClass.C_Base.Product.FirstOrDefault(x => x.ProductArticleNumber == textBlock.Uid);
if (product.ProductDiscountAmount != null)
{
textBlock.Visibility = Visibility.Visible;
textBlock.Text = $" {(double)(product.ProductCost - product.ProductCost * product.ProductDiscountAmount / 100)} ₽";
}
}
private void Discount_Loaded(object sender, RoutedEventArgs e)
{
TextBlock textBlock = (TextBlock)sender;
Product product = BaseClass.C_Base.Product.FirstOrDefault(x => x.ProductArticleNumber == textBlock.Uid);
if (product.ProductDiscountAmount != null)
{
textBlock.Visibility = Visibility.Visible;
textBlock.Text = $"Скидка {product.ProductDiscountAmount}%";
}
}
private void B_Back_Click(object sender, RoutedEventArgs e)
{
Application.Current.Properties["ListOrderCountUser"] = keyValuePairs;
FrameClass.C_Frame.Navigate(new ProductsPage(user));
}
private void B_Save_Click(object sender, RoutedEventArgs e)
{
Application.Current.Properties["ListOrderUser"] = new List();
Application.Current.Properties["ListOrderCountUser"] = new Dictionary();
MessageBoxResult mbr = MessageBox.Show("Заказ оформлен.", "Уведомление", MessageBoxButton.OK, MessageBoxImage.Information);
if (mbr == MessageBoxResult.OK)
FrameClass.C_Frame.Navigate(new ProductsPage(user));
}
private void Back_B_Click(object sender, RoutedEventArgs e)
{
Button bBack = (Button)sender;
Grid grid = (Grid)bBack.Parent;
TextBlock textBlock = (TextBlock)grid.FindName("CountProduct");
Product pr = BaseClass.C_Base.Product.FirstOrDefault(x => x.ProductArticleNumber == bBack.Uid);
if (pr != null)
{
foreach (KeyValuePair pair in keyValuePairs)
{
if (pair.Key == bBack.Uid)
{
if (pair.Value > 1)
{
keyValuePairs[pair.Key]--;
textBlock.Text = keyValuePairs[pair.Key].ToString();
break;
}
}
}
}
ItogoSkidka();
}
private void Next_B_Click(object sender, RoutedEventArgs e)
{
Button bNext = (Button)sender;
Grid grid = (Grid)bNext.Parent;
TextBlock textBlock = (TextBlock)grid.FindName("CountProduct");
Product pr = BaseClass.C_Base.Product.FirstOrDefault(x => x.ProductArticleNumber == bNext.Uid);
if (pr != null)
{
foreach (KeyValuePair pair in keyValuePairs)
{
if (pair.Key == bNext.Uid)
{
keyValuePairs[pair.Key]++;
textBlock.Text = keyValuePairs[pair.Key].ToString();
break;
}
}
}
ItogoSkidka();
}
private void CountProduct_Loaded(object sender, RoutedEventArgs e)
{
TextBlock tb = (TextBlock)sender;
if (keyValuePairs.Count > 0)
{
foreach (KeyValuePair pair in keyValuePairs)
{
if (pair.Key == tb.Uid)
{
tb.Text = keyValuePairs[pair.Key].ToString();
break;
}
}
}
}
public void ItogoSkidka()
{
decimal itogoBezSkidki = 0;
foreach(Product item in products)
{
foreach(KeyValuePair pair in keyValuePairs)
{
if(pair.Key == item.ProductArticleNumber)
{
itogoBezSkidki += item.ProductCost * pair.Value;
}
}
}
decimal itogoSoSkidkoy = 0;
foreach (Product item in products)
{
foreach (KeyValuePair pair in keyValuePairs)
{
if (pair.Key == item.ProductArticleNumber)
{
if(item.ProductDiscountAmount != null)
{
itogoSoSkidkoy += (item.ProductCost - (item.ProductCost * ((decimal)item.ProductDiscountAmount / 100))) * pair.Value;
}
else
itogoSoSkidkoy += item.ProductCost * pair.Value;
}
}
}
decimal ITOGO = Math.Round((1 - (itogoSoSkidkoy / itogoBezSkidki)) * 100, 2);
TB_ItogoSkidka.Text = $"Скидка {ITOGO}%";
TB_Itogo.Text = $"{(double)itogoSoSkidkoy} ₽";
}
}
}