using Microsoft.Win32;
using NBAManagement.Models;
using NBAManagment.Entities;
using NBAManagment.Filter;
using System;
using System.Collections.Generic;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace NBAManagment
{
///
/// Логика взаимодействия для PhotosPage.xaml//
///
public partial class PhotosPage : Window
{
private const int PAGE_ELEMENT_COUNT = 12;
public PagedEnumerable PagedImage { get; private set; }
public int PageNum
{
get => PagedImage.CurrentPageNum;
set
{
PagedImage.CurrentPageNum = value;
UpdateBindings();
}
}
public PhotosPage()
{
InitializeComponent();
using (var context = new PracticeNBAEntities()) // Создание экземпляра контекста
{
var images = context.Image
.OrderByDescending(p => p.CreateTime)
.ToList();
// Преобразование List в List
var pagedImages = images.Select(img => new NBAManagement.Models.Image
{
Id = img.IdImage,
CreateTime = img.CreateTime ?? DateTime.MinValue, // Замените на подходящее значение по умолчанию
// Другие свойства...
}).ToList();
PagedImage = new PagedEnumerable(pagedImages, PAGE_ELEMENT_COUNT);
DataContext = this;
}
}
public void UpdateBindings()
{
var dataContext = DataContext;
DataContext = null;
DataContext = dataContext;
}
private void FirstPage(object sender, RoutedEventArgs e)
{
PageNum = 1;
}
private void PriveusPage(object sender, RoutedEventArgs e)
{
PageNum--;
}
private void NextPage(object sender, RoutedEventArgs e)
{
PageNum++;
}
private void LastPage(object sender, RoutedEventArgs e)
{
PageNum = PagedImage.PageCount;
}
private NBAManagement.Models.Image pictureToDownload;
private void DownloadImage(object sender, RoutedEventArgs e)
{
var saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Png | *.png";
downloadPoput.IsOpen = false;
if (saveFileDialog.ShowDialog() != true)
return;
if (!saveFileDialog.CheckPathExists)
{
MessageBox.Show("Путь несуществует", "Ошибка",
MessageBoxButton.OK, MessageBoxImage.Error);
}
pictureToDownload.SaveAsFile(saveFileDialog.FileName, ImageFormat.Png);
}
private void DownloadPageImages(object sender, RoutedEventArgs e)
{
var folderDialog = new System.Windows.Forms.FolderBrowserDialog();
if (folderDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK)
return;
int i = 0;
foreach (var item in PagedImage)
{
item.SaveAsFile($@"{folderDialog.SelectedPath}/picture{++i}.png", ImageFormat.Png);
}
MessageBox.Show("Файлы успешно записаны на диск");
}
private void ShowDownloadPoput(object sender, MouseButtonEventArgs e)
{
pictureToDownload = (NBAManagement.Models.Image)((Button)sender).DataContext;
downloadPoput.IsOpen = true;
}
}
}