Advertisement
xXMarcinatorXx

TestingWindow.xaml.cs

Oct 3rd, 2019
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.99 KB | None | 0 0
  1. using MaterialDesignColors.WpfExample.Domain;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Drawing.Imaging;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Runtime.CompilerServices;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows;
  12. using System.Windows.Controls;
  13. using System.Windows.Controls.Primitives;
  14. using System.Windows.Data;
  15. using System.Windows.Documents;
  16. using System.Windows.Input;
  17. using System.Windows.Media;
  18. using System.Windows.Media.Imaging;
  19. using System.Windows.Shapes;
  20. using WpfAnimatedGif;
  21.  
  22. namespace SQLWPF
  23. {
  24.     /// <summary>
  25.     /// Interaction logic for TestingWindow.xaml
  26.     /// </summary>
  27.     public partial class TestingWindow : Window
  28.     {
  29.  
  30.         public TestingWindow()
  31.         {
  32.             InitializeComponent();
  33.  
  34.             //List<User> items = new List<User>
  35.             //{
  36.             //    new User() { Initials = "JD", Name = "John Doe", Age = 42, Mail = "john@doe-family.com" },
  37.             //    new User() { Initials = "JD", Name = "Jane Doe", Age = 39, Mail = "jane@doe-family.com" },
  38.             //    new User() { Initials = "SD", Name = "Sammy Doe", Age = 7, Mail = "sammy.doe@gmail.com" }
  39.             //};
  40.             //lvUsers.ItemsSource = items;
  41.  
  42.             //List<SelectableViewModel> items1 = new List<SelectableViewModel>
  43.             //{
  44.             //    new SelectableViewModel() { Initials = "JD", Name = "John Doe", Age = 42, Mail = "john@doe-family.com" },
  45.             //    new SelectableViewModel() { Initials = "JD", Name = "Jane Doe", Age = 39, Mail = "jane@doe-family.com" },
  46.             //    new SelectableViewModel() { Initials = "SD", Name = "Sammy Doe", Age = 7, Mail = "sammy.doe@gmail.com" }
  47.             //};
  48.  
  49.             //ToggleList.ItemsSource = items1;
  50.  
  51.             dummy();
  52.  
  53.             //lvUsers.
  54.         }
  55.  
  56.         public async Task dummy()
  57.         {
  58.             await InitList();
  59.         }
  60.  
  61.         private Task InitList()
  62.         {
  63.             try
  64.             {
  65.                 using (permissionsDatabaseModel e = new permissionsDatabaseModel())
  66.                 {
  67.                     List<UserSelectableModel> output = new List<UserSelectableModel>();
  68.  
  69.                     foreach (Users item in (from users in e.Users
  70.                                             select users).ToList())
  71.                     {
  72.                         output.Add(new UserSelectableModel(item));
  73.                     }
  74.  
  75.  
  76.                     UserToggleList.ItemsSource = output;
  77.                 }
  78.             }
  79.             catch (Exception)
  80.             {
  81.                 throw;
  82.             }
  83.             return null;
  84.         }
  85.  
  86.         private void ToggleButton_Drop(object sender, DragEventArgs e)
  87.         {
  88.             var data = e.Data.GetData(DataFormats.FileDrop);
  89.  
  90.             if (data != null)
  91.             {
  92.                 var filesnames = data as string[];
  93.                 if (filesnames.Length > 0)
  94.                 {
  95.                     Image imageControl = (Image)sender;
  96.  
  97.                     BitmapImage bitmapImage = new BitmapImage(new Uri(filesnames[0]));
  98.  
  99.                     ImageBehavior.SetAnimatedSource(imageControl, bitmapImage);
  100.                 }
  101.             }
  102.         }
  103.  
  104.         private void ToggleButton_Drop_1(object sender, DragEventArgs e)
  105.         {
  106.             var data = e.Data.GetData(DataFormats.FileDrop);
  107.  
  108.             if (data != null)
  109.             {
  110.                 var filesnames = data as string[];
  111.                 if (filesnames.Length > 0)
  112.                 {
  113.                     try
  114.                     {
  115.                         BitmapImage bitmapImage = new BitmapImage(new Uri(filesnames[0]));
  116.  
  117.                         ToggleButton buttonControl = (ToggleButton)sender;
  118.  
  119.                         Image imageControl = (Image)((Grid)buttonControl.Content).Children[1];
  120.  
  121.                         string userIDString =
  122.                             (
  123.                                 (TextBlock)
  124.                                 (
  125.                                     (Grid)buttonControl.Content
  126.                                 ).Children[2]
  127.                             ).Text;
  128.  
  129.                         int userID = Int32.Parse(userIDString);
  130.  
  131.  
  132.  
  133.  
  134.                         ImageBehavior.SetAnimatedSource(imageControl, bitmapImage);
  135.  
  136.                         byte[] img = null;
  137.                         FileStream fs = new FileStream(filesnames[0], FileMode.Open, FileAccess.Read);
  138.                         BinaryReader br = new BinaryReader(fs);
  139.                         img = br.ReadBytes((int)fs.Length);
  140.  
  141.                         using (permissionsDatabaseModel eDB = new permissionsDatabaseModel())
  142.                         {
  143.                             var query =
  144.                                     from users in eDB.Users
  145.                                     where users.ID == userID
  146.                                     select users;
  147.  
  148.                             // Execute the query, and change the column values
  149.                             // you want to change.
  150.                             foreach (Users user in query)
  151.                             {
  152.                                 user.UserIcon = img;
  153.                                 // Insert any additional changes to column values.
  154.                             }
  155.  
  156.                             // Submit the changes to the database.
  157.                             try
  158.                             {
  159.                                 eDB.SaveChanges();
  160.                             }
  161.                             catch (Exception exception)
  162.                             {
  163.                                 Console.WriteLine(exception);
  164.                                 // Provide for exceptions.
  165.                             }
  166.                         }
  167.                     }
  168.                     catch (Exception)
  169.                     {
  170.                         Button hello = new Button();
  171.  
  172.                         dialog.IsOpen = true;
  173.                     }
  174.  
  175.                 }
  176.             }
  177.         }
  178.  
  179.         public byte[] BitmapToByte(System.Drawing.Image img)
  180.         {
  181.             byte[] byteArray = new byte[0];
  182.             using (MemoryStream stream = new MemoryStream())
  183.             {
  184.                 img.Save(stream, ImageFormat.Gif);
  185.                 stream.Close();
  186.  
  187.                 byteArray = stream.ToArray();
  188.             }
  189.             return byteArray;
  190.         }
  191.  
  192.         private void Button_Click(object sender, RoutedEventArgs e)
  193.         {
  194.             InitList();
  195.         }
  196.  
  197.         public BitmapImage ConvertWriteableBitmapToBitmapImage(WriteableBitmap wbm)
  198.         {
  199.             BitmapImage bmImage = new BitmapImage();
  200.             using (MemoryStream stream = new MemoryStream())
  201.             {
  202.                 PngBitmapEncoder encoder = new PngBitmapEncoder();
  203.                 encoder.Frames.Add(BitmapFrame.Create(wbm));
  204.                 encoder.Save(stream);
  205.                 bmImage.BeginInit();
  206.                 bmImage.CacheOption = BitmapCacheOption.OnLoad;
  207.                 bmImage.StreamSource = stream;
  208.                 bmImage.EndInit();
  209.                 bmImage.Freeze();
  210.             }
  211.             return bmImage;
  212.         }
  213.  
  214.  
  215.         private Dictionary<ToggleButton, BitmapImage> previousIcon = new Dictionary<ToggleButton, BitmapImage>();
  216.         private void Stop_PreviewDragEnter(object sender, DragEventArgs e)
  217.         {
  218.             var data = e.Data.GetData(DataFormats.FileDrop);
  219.  
  220.             if (data != null)
  221.             {
  222.                 var filesnames = data as string[];
  223.                 if (filesnames.Length > 0)
  224.                 {
  225.                     try
  226.                     {
  227.                         BitmapImage bitmapImage = new BitmapImage(new Uri(filesnames[0]));
  228.  
  229.                         ToggleButton buttonControl = (ToggleButton)sender;
  230.  
  231.                         Image imageControl = (Image)((Grid)buttonControl.Content).Children[1];
  232.  
  233.                         if (imageControl.Source.GetType() == typeof(WriteableBitmap))
  234.                             previousIcon.Add(buttonControl, ConvertWriteableBitmapToBitmapImage((WriteableBitmap)imageControl.Source));
  235.                         else if (imageControl.Source.GetType() == typeof(BitmapImage))
  236.                             previousIcon.Add(buttonControl, (BitmapImage)imageControl.Source);
  237.  
  238.                         ImageBehavior.SetAnimatedSource(imageControl, bitmapImage);
  239.                     }
  240.                     catch (Exception) { }
  241.                 }
  242.             }
  243.         }
  244.  
  245.         private void Stop_PreviewDragLeave(object sender, DragEventArgs e)
  246.         {
  247.             if (previousIcon != null)
  248.             {
  249.                 ToggleButton buttonControl = (ToggleButton)sender;
  250.  
  251.                 Image imageControl = (Image)((Grid)buttonControl.Content).Children[1];
  252.  
  253.                 if (previousIcon.ContainsKey(buttonControl))
  254.                     ImageBehavior.SetAnimatedSource(imageControl, previousIcon[buttonControl]);
  255.             }
  256.         }
  257.     }
  258. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement