| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522 |
- using ivf_tl_Entity.Entity.balance;
- using ivf_tl_Entity.Enums;
- using ivf_tl_Entity.Pic;
- using ivf_tl_Manage.Converts;
- using ivf_tl_Manage.UserControls;
- using ivf_tl_Service.HttpProvider;
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- 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.Shapes;
- namespace ivf_tl_Manage.Win
- {
- /// <summary>
- /// ImageSourceNewWindow.xaml 的交互逻辑
- /// </summary>
- public partial class ImageSourceNewWindow : Window
- {
- PicProvider picProvider = null;
- int houseSn;
- int pictureLayer;
- long embryoId;
- string tlSn;
- Dish dish;
- List<int> FocalList = new List<int>();
- List<PhotoBoxSetting1> PhotoBoxSettings = new List<PhotoBoxSetting1>();
- public ImageSourceNewWindow(Embryo embryo, int houseSn, int pictureLayer, string tlSn, Dish dish, int max, int min, List<PhotoBoxSetting1> photoBoxSetting1s)
- {
- try
- {
- InitializeComponent();
- this.Owner = AppData.Instance.MainWindow;
- PhotoBoxSettings = photoBoxSetting1s;
- this.houseSn = houseSn;
- this.pictureLayer = pictureLayer;
- this.tlSn = tlSn;
- picProvider = AppData.Instance.GetPicProvider();
- GetMaxAndMinFocal(picProvider.GetSourcePicturesTotalLayerApi(tlSn, houseSn, dish.embryoList.First().id));
- this.dish = dish;
- PicPageSize = 42;
- for (int i = MinFocal; i <= MaxFocal; i++)
- {
- FocalList.Add(i);
- }
- this.ComBox_Focal.ItemsSource = FocalList;
- this.ComBox_Focal.SelectedItem = pictureLayer;
- this.ComBox_Well.ItemsSource = this.dish.embryoList;
- if (embryo == null)
- {
- this.ComBox_Well.SelectedIndex = 0;
- }
- else
- {
- this.ComBox_Well.SelectedItem = embryo;
- }
- Loaded += (s, e) =>
- {
- if (!this.dish.embryoList.Any()) return;
- long embryoIdC = this.dish.embryoList.First().id;
- if (embryo != null) embryoIdC = embryo.id;
- this.embryoId = embryoIdC;
- var aa = picProvider.GetImageSourcePageApi(embryoIdC, houseSn, pictureLayer, tlSn, 1, PicPageSize, PhotoBoxSettings);
- PicDataCount = aa.total;
- return;
- };
- this.Closed += (a, b) => AppData.Instance.MainWindow.Activate();
- Unloaded += (s, e) =>
- {
- _root_Canvas.Children.Clear();
- };
- }
- catch (Exception ex)
- {
- ExLog(ex, "ImageSourceWindow");
- }
- }
- int MaxFocal, MinFocal;
- public void GetMaxAndMinFocal(int MaxTotalLayer)
- {
- if (MaxTotalLayer <= 0)
- {
- MaxFocal = 0;
- MinFocal = 0;
- return;
- }
- MaxFocal = (MaxTotalLayer - 1) / 2;
- MinFocal = -MaxFocal;
- }
- public int PicPageSize
- {
- get { return (int)GetValue(PicPageSizeProperty); }
- set { SetValue(PicPageSizeProperty, value); }
- }
- // Using a DependencyProperty as the backing store for PicPageSize. This enables animation, styling, binding, etc...
- public static readonly DependencyProperty PicPageSizeProperty =
- DependencyProperty.Register("PicPageSize", typeof(int), typeof(ImageSourceNewWindow), new PropertyMetadata(-1));
- public int PicDataCount
- {
- get { return (int)GetValue(PicDataCountProperty); }
- set { SetValue(PicDataCountProperty, value); }
- }
- // Using a DependencyProperty as the backing store for PicDataCount. This enables animation, styling, binding, etc...
- public static readonly DependencyProperty PicDataCountProperty =
- DependencyProperty.Register("PicDataCount", typeof(int), typeof(ImageSourceNewWindow), new PropertyMetadata(-1));
- public int CurrentPage
- {
- get { return (int)GetValue(CurrentPageProperty); }
- set { SetValue(CurrentPageProperty, value); }
- }
- // Using a DependencyProperty as the backing store for CurrentPage. This enables animation, styling, binding, etc...
- public static readonly DependencyProperty CurrentPageProperty =
- DependencyProperty.Register("CurrentPage", typeof(int), typeof(ImageSourceNewWindow), new PropertyMetadata(1));
- private int CheckBoxImageNum = 1;
- private void init(long embryoId, int houseSn, int pictureLayer, string tlSn)
- {
- return;
- var list = picProvider.GetImageSourceApi(embryoId, houseSn, pictureLayer, tlSn);
- Task.Run(() =>
- {
- Dispatcher.Invoke(() =>
- {
- foreach (var item in list)
- {
- if (string.IsNullOrEmpty(item.sourceImageUrl)) continue;
- PicSourceUserControl checkBoxImage = new PicSourceUserControl()
- {
- ImageSourceUrl = AppData.Instance.StringToBitmapImage($"{AppData.Instance.BaseUrl}{item.sourceImageUrl.Replace(AppData.Instance.PicSuf, $"_180x180{AppData.Instance.PicSuf}")}?token={AppData.Instance.HttpServiceCall.GetToken()}"),
- ImageInfoString = $"{item.imageTime.ToString("MM-dd HH:mm")}",
- };
- if (checkBoxImage.ImageSourceUrl == null) continue;
- if (CheckBoxImageNum > 7)
- {
- if ((CheckBoxImageNum - 1) % 7 == 0) checkBoxImage.Margin = new Thickness(0, 10, 0, 0);
- else checkBoxImage.Margin = new Thickness(10, 10, 0, 0);
- }
- else
- {
- if (CheckBoxImageNum == 1) checkBoxImage.Margin = new Thickness(0);
- else checkBoxImage.Margin = new Thickness(10, 0, 0, 0);
- }
- CheckBoxImageNum++;
- WrapPanel_Image.Children.Add(checkBoxImage);
- }
- });
- });
- }
- private void ExLog(Exception ex, string name)
- {
- AppData.Instance.LogService.ExceptionLog(ex, $"ImageSourceNewWindow.{name}", LogEnum.RunException);
- }
- private void ErrorLog(string message, LogEnum logType)
- {
- AppData.Instance.LogService.TLLog($"ImageSourceNewWindow.{message}", logType);
- }
- private void Cancel_Click(object sender, RoutedEventArgs e)
- {
- this.DialogResult = false;
- return;
- }
- private void ScrollViewer_ManipulationBoundaryFeedback(object sender, ManipulationBoundaryFeedbackEventArgs e)
- {
- e.Handled = true;
- }
- private void PaginationUserControl_PageChangedEvent(PaginationUserControl arg1, int arg2)
- {
- if (!arg1.IsLoaded) return;
- if (!this.IsLoaded) return;
- WrapPanel_Image.Children.Clear();
- var a = picProvider.GetImageSourcePageApi(embryoId, houseSn, pictureLayer, tlSn, arg2, PicPageSize, PhotoBoxSettings);
- Task.Run(() =>
- {
- Dispatcher.Invoke(() =>
- {
- //this.Canvas_Big.Visibility = Visibility.Collapsed;
- PicSourceUserControl aa = null;
- int newK = 0;
- int ImageIndex = 1;
- CurrentPage = arg2;
- ListPic.Clear();
- foreach (var item in a.records)
- {
- if (string.IsNullOrEmpty(item.sourceImageUrl)) continue;
- PicSourceUserControl checkBoxImage = new PicSourceUserControl()
- {
- ImageSourceUrl = AppData.Instance.StringToBitmapImage($"{AppData.Instance.BaseUrl}{item.sourceImageUrl.Replace(AppData.Instance.PicSuf, $"_180x180{AppData.Instance.PicSuf}")}?token={AppData.Instance.HttpServiceCall.GetToken()}"),
- ImageInfoString = $"{item.imageTime.ToString("MM-dd HH:mm")}-{item.shootingPosition}",
- ImageUrl = item.sourceImageUrl,
- ImageId = item.id,
- developTime = item.developTime,
- };
- if (checkBoxImage.ImageSourceUrl == null) continue;
- if (CheckBoxImageNum > 7)
- {
- if ((CheckBoxImageNum - 1) % 7 == 0) checkBoxImage.Margin = new Thickness(0, 10, 0, 0);
- else checkBoxImage.Margin = new Thickness(10, 10, 0, 0);
- }
- else
- {
- if (CheckBoxImageNum == 1) checkBoxImage.Margin = new Thickness(0);
- else checkBoxImage.Margin = new Thickness(10, 0, 0, 0);
- }
- var k = ImageIndex;
- checkBoxImage.MouseDown += (s, e) =>
- {
- this.Text_Big.Text = checkBoxImage.ImageInfoString;
- CurrentImageId = checkBoxImage.ImageId;
- CurrentDevelopTime = checkBoxImage.developTime;
- this.Image_Big.Source = AppData.Instance.StringToBitmapImage($"{AppData.Instance.BaseUrl}{checkBoxImage.ImageUrl}?token={AppData.Instance.HttpServiceCall.GetToken()}");
- this.Canvas_Big.Visibility = Visibility.Visible;
- this.Image_Big.Tag = k;
- if (k < ListPic.Last().Key)
- {
- this._nextPic_Button.Visibility = Visibility.Visible;
- }
- else
- {
- this._nextPic_Button.Visibility = Visibility.Hidden;
- }
- if (k > 1)
- {
- this._prePic_Button.Visibility = Visibility.Visible;
- }
- else
- {
- this._prePic_Button.Visibility = Visibility.Hidden;
- }
- };
- ListPic.Add(k, checkBoxImage);
- ImageIndex++;
- CheckBoxImageNum++;
- WrapPanel_Image.Children.Add(checkBoxImage);
- if (this.Canvas_Big.Visibility == Visibility.Visible && CurrentDevelopTime != -1)
- {
- if (aa == null && item.developTime >= CurrentDevelopTime)
- {
- aa = checkBoxImage;
- newK = k;
- }
- }
- }
- if (this.Canvas_Big.Visibility == Visibility.Visible)
- {
- if (CurrentDevelopTime != -1 && aa != null)
- {
- this.Text_Big.Text = aa.ImageInfoString;
- CurrentImageId = aa.ImageId;
- CurrentDevelopTime = aa.developTime;
- this.Image_Big.Source = AppData.Instance.StringToBitmapImage($"{AppData.Instance.BaseUrl}{aa.ImageUrl}?token={AppData.Instance.HttpServiceCall.GetToken()}");
- this.Canvas_Big.Visibility = Visibility.Visible;
- this.Image_Big.Tag = newK;
- if (newK < ListPic.Last().Key)
- {
- this._nextPic_Button.Visibility = Visibility.Visible;
- }
- else
- {
- this._nextPic_Button.Visibility = Visibility.Hidden;
- }
- if (newK > 1)
- {
- this._prePic_Button.Visibility = Visibility.Visible;
- }
- else
- {
- this._prePic_Button.Visibility = Visibility.Hidden;
- }
- }
- else
- {
- this.Canvas_Big.Visibility = Visibility.Collapsed;
- }
- }
- });
- });
- return;
- }
- private void ComBox_Well_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- if (!this.ComBox_Well.IsLoaded) return;
- if (this.ComBox_Well.SelectedItem != null && this.ComBox_Well.SelectedItem is Embryo currentEmbryo)
- {
- CurrentPage = 1;
- this.embryoId = currentEmbryo.id;
- var aa = picProvider.GetImageSourcePageApi(embryoId, houseSn, pictureLayer, tlSn, 1, PicPageSize, PhotoBoxSettings);
- PicDataCount = -1;
- PicDataCount = aa.total;
- this.Canvas_Big.Visibility = Visibility.Collapsed;
- CurrentDevelopTime = -1;
- }
- }
- private void ComBox_Focal_SelectionChanged(object sender, SelectionChangedEventArgs e)
- {
- if (!this.ComBox_Focal.IsLoaded) return;
- if (this.ComBox_Focal.SelectedItem != null && this.ComBox_Focal.SelectedItem is int currentFocal)
- {
- pictureLayer = currentFocal;
- var aa = picProvider.GetImageSourcePageApi(embryoId, houseSn, pictureLayer, tlSn, 1, PicPageSize, PhotoBoxSettings);
- PicDataCount = -1;
- PicDataCount = aa.total;
- }
- }
- Dictionary<int, PicSourceUserControl> ListPic = new Dictionary<int, PicSourceUserControl>();
- private void Close_Click(object sender, RoutedEventArgs e)
- {
- this.Canvas_Big.Visibility = Visibility.Collapsed;
- }
- private void PreButton_Click(object sender, RoutedEventArgs e)
- {
- if (!int.TryParse(this.Image_Big.Tag.ToString(), out int newValue))
- {
- return;
- }
- newValue--;
- if (!ListPic.ContainsKey(newValue)) return;
- var checkBoxImage = ListPic[newValue];
- this.Text_Big.Text = checkBoxImage.ImageInfoString;
- this.Image_Big.Source = AppData.Instance.StringToBitmapImage($"{AppData.Instance.BaseUrl}{checkBoxImage.ImageUrl}?token={AppData.Instance.HttpServiceCall.GetToken()}");
- this.Canvas_Big.Visibility = Visibility.Visible;
- this.Image_Big.Tag = newValue;
- CurrentImageId = checkBoxImage.ImageId;
- CurrentDevelopTime = checkBoxImage.developTime;
- if (newValue > 1)
- {
- this._prePic_Button.Visibility = Visibility.Visible;
- }
- else
- {
- this._prePic_Button.Visibility = Visibility.Hidden;
- }
- if (newValue < ListPic.Last().Key)
- {
- this._nextPic_Button.Visibility = Visibility.Visible;
- }
- else
- {
- this._nextPic_Button.Visibility = Visibility.Hidden;
- }
- }
- private void NextButton_Click(object sender, RoutedEventArgs e)
- {
- if (!int.TryParse(this.Image_Big.Tag.ToString(), out int newValue))
- {
- return;
- }
- newValue++;
- if (!ListPic.ContainsKey(newValue)) return;
- var checkBoxImage = ListPic[newValue];
- this.Text_Big.Text = checkBoxImage.ImageInfoString;
- this.Image_Big.Source = AppData.Instance.StringToBitmapImage($"{AppData.Instance.BaseUrl}{checkBoxImage.ImageUrl}?token={AppData.Instance.HttpServiceCall.GetToken()}");
- this.Canvas_Big.Visibility = Visibility.Visible;
- this.Image_Big.Tag = newValue;
- CurrentImageId = checkBoxImage.ImageId;
- CurrentDevelopTime = checkBoxImage.developTime;
- if (newValue < ListPic.Last().Key)
- {
- this._nextPic_Button.Visibility = Visibility.Visible;
- }
- else
- {
- this._nextPic_Button.Visibility = Visibility.Hidden;
- }
- if (newValue > 1)
- {
- this._prePic_Button.Visibility = Visibility.Visible;
- }
- else
- {
- this._prePic_Button.Visibility = Visibility.Hidden;
- }
- }
- private void ExportCurrentWellPic_Click(object sender, RoutedEventArgs e)
- {
- try
- {
- string name = $"{dish.wife}_{DateTime.Now.ToString("yy-MM-dd-HH-mm-ss")}.zip";
- string fileName = SaveFileName(name);
- if (string.IsNullOrEmpty(fileName)) return;
- string body = null;
- if (PhotoBoxSettings.Any())
- {
- body = JsonConvert.SerializeObject(new { houseSn = dish.houseSn, ids = new List<long> { embryoId }, pictureLayer = pictureLayer, tlSn = tlSn, searchButtons = PhotoBoxSettings });
- }
- else
- {
- body = JsonConvert.SerializeObject(new { houseSn = dish.houseSn, ids = new List<long> { embryoId }, pictureLayer = pictureLayer, tlSn = tlSn });
- }
- AppData.Instance.MainWindowViewModel.DownLoadStart(new ivf_tl_Entity.Entity.DownLoad.DownLoadEntity
- {
- DownLoadUrl = $"/api/businessManage/pc/resource/downloadSourcePictures",
- NewFileFullName = fileName,
- FileName = name,
- Body = body,
- });
- //ToastMessage("开始下载");
- ToastMessage(KeyToStringConvert.GetLanguageStringByKey("0299"));
- }
- catch (Exception ex)
- {
- ExLog(ex, "ExportCurrentWellPic_Click");
- }
- }
- private void ExportAllWellPic_Click(object sender, RoutedEventArgs e)
- {
- try
- {
- string name = $"{dish.wife}_{DateTime.Now.ToString("yy-MM-dd-HH-mm-ss")}.zip";
- string fileName = SaveFileName(name);
- if (string.IsNullOrEmpty(fileName)) return;
- string body = null;
- if (PhotoBoxSettings.Any())
- {
- body = JsonConvert.SerializeObject(new { houseSn = dish.houseSn, ids = dish.embryoList.Select(x => x.id).ToList(), pictureLayer = pictureLayer, tlSn = tlSn, searchButtons = PhotoBoxSettings });
- }
- else
- {
- body = JsonConvert.SerializeObject(new { houseSn = dish.houseSn, ids = dish.embryoList.Select(x => x.id).ToList(), pictureLayer = pictureLayer, tlSn = tlSn });
- }
- AppData.Instance.MainWindowViewModel.DownLoadStart(new ivf_tl_Entity.Entity.DownLoad.DownLoadEntity
- {
- DownLoadUrl = $"/api/businessManage/pc/resource/downloadSourcePictures",
- NewFileFullName = fileName,
- FileName = name,
- Body = body,
- });
- //ToastMessage("开始下载");
- ToastMessage(KeyToStringConvert.GetLanguageStringByKey("0299"));
- }
- catch (Exception ex)
- {
- ExLog(ex, "ExportAllWellPic_Click");
- }
- }
- public string SaveFileName(string fileName)
- {
- var dialog = new Microsoft.Win32.SaveFileDialog();
- dialog.FileName = fileName;
- dialog.DefaultExt = ".zip";
- dialog.Filter = "zip|*.zip";
- if (dialog.ShowDialog() != true)
- {
- return null;
- }
- return dialog.FileName;
- }
- private void ToastMessage(string mess)
- {
- new ToastMessageWindow(this, mess).Show();
- }
- private void ExportPic_Click(object sender, RoutedEventArgs e)
- {
- try
- {
- string url = $"/api/businessManage/pc/resource/downloadSourcePicture?tlSn={tlSn}&houseSn={houseSn}&ids={CurrentImageId}";
- string oldName = AppData.Instance.HttpServiceCall.GetDownLoadFileName(url);
- string fileName = SaveFileName(oldName);
- if (string.IsNullOrEmpty(fileName)) return;
- AppData.Instance.MainWindowViewModel.DownLoadStart(new ivf_tl_Entity.Entity.DownLoad.DownLoadEntity
- {
- DownLoadUrl = url,
- NewFileFullName = fileName,
- FileName = System.IO.Path.GetFileName(fileName),
- });
- }
- catch (Exception ex)
- {
- ExLog(ex, "ExportPic_Click");
- }
- }
- public long CurrentImageId { get; set; }
- public int CurrentDevelopTime { get; set; } = -1;
- private void PaginationUserControl_ClickPageEvent()
- {
- this.Canvas_Big.Visibility = Visibility.Collapsed;
- }
- }
- }
|