//Reference for displaying one picture: http://www.java2s.com/Tutorial/CSharp/0470__Windows-Presentation-Foundation/Loadimageinyourcodeandaddtogrid.htm //Reference to find files inside a folder: https://docs.microsoft.com/en-us/dotnet/api/system.io.directory.getfiles?view=netcore-3.1 public void PageLoaded(object sender, RoutedEventArgs args) { // Get all images from folder //string path = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); //string imageFolderPath = path + @"\ImagesFolder-Scrapbooker"; //string[] fileEntries = Directory.GetFiles(imageFolderPath); // Get all images from DB //***************************************************************************************** // Start the connection with the DB ApplicationDBEntities1 db = new ApplicationDBEntities1(); DataContext = this; cbItems = new ObservableCollection <ComboBoxItem>(); var cbItem = new ComboBoxItem { Content = "<--Select-->" }; SelectedcbItem = cbItem; cbItems.Add(cbItem); var albums = from d in db.Albums select d; foreach (var alb in albums) { //For every "album", display on our combobox cbItems.Add(new ComboBoxItem { Content = alb.albumName, Tag = alb.id }); } }
// responsible to save the img info in our db private void addImageToFileTable(string fileName, string filePath, string fileFormat, long fileSize) { ApplicationDBEntities1 db = new ApplicationDBEntities1(); Scrapbooker_Base.File imageObject = new Scrapbooker_Base.File() { fileName = fileName, filePath = filePath, fileFormat = fileFormat, fileSize = fileSize }; db.Files.Add(imageObject); db.SaveChanges(); }
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { ComboBoxItem typeItem = (ComboBoxItem)listAlbums.SelectedItem; string contentName = typeItem.Content.ToString(); ApplicationDBEntities1 db = new ApplicationDBEntities1(); var selectedItem = from el in db.Albums where el.albumName == contentName select el; if (selectedItem.FirstOrDefault <Album>() != null) { ComboBoxItem albumSelected = (ComboBoxItem)listAlbums.SelectedItem; string albumName = albumSelected.Content.ToString(); listBox.Items.Clear(); //Query the DB var selectedAlbum = from el in db.Albums where el.albumName == albumName join b in db.ImagesInAlbums on el.id equals b.albumID join f in db.Files on b.fileID equals f.id select f; foreach (var singleImage in selectedAlbum) { Image simpleImage = new Image(); simpleImage.Width = 200; simpleImage.Margin = new Thickness(5); //String id = singleImage.id.ToString(); //Holding the ID of the image simpleImage.Tag = singleImage.id; BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.UriSource = new Uri(singleImage.filePath, UriKind.RelativeOrAbsolute); bi.EndInit(); simpleImage.Source = bi; listBox.Items.Add(simpleImage); } } else if (selectedItem.FirstOrDefault <Album>() == null) { listBox.Items.Clear(); var images = from d in db.Files select d; // Iterate over the array let us use the information in each row (singleImage) foreach (var singleImage in images) { Image simpleImage = new Image(); simpleImage.Width = 200; simpleImage.Margin = new Thickness(5); //String id = singleImage.id.ToString(); //Holding the ID of the image simpleImage.Tag = singleImage.id; BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.UriSource = new Uri(singleImage.filePath, UriKind.RelativeOrAbsolute); bi.EndInit(); simpleImage.Source = bi; listBox.Items.Add(simpleImage); } } }