using ivf_tl_Entity.DebugEntitys;
using ivf_tl_Operate.Converts;
using ivf_tl_Operate.ViewModel;
using ivf_tl_Operate.Windows;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
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 ivf_tl_Operate.View
{
///
/// AutoFocusSettingView.xaml 的交互逻辑
///
public partial class AutoFocusSettingView : UserControl
{
private AutoFocusSettingViewModel vm = null;
public AutoFocusSettingView(AutoFocusSettingViewModel _vm)
{
InitializeComponent();
vm = _vm;
this.DataContext = vm;
}
private void Return_Click(object sender, RoutedEventArgs e)
{
SettingPageView settingPageView = new SettingPageView();
AppData.Instance.MainWindow.LoadPage(settingPageView);
}
private void SettCheck_Click(object sender, RoutedEventArgs e)
{
string newValueString = this._newValue_TextBox.Text.Trim();
if (string.IsNullOrEmpty(newValueString))
{
//new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, "请输入数字");
new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, KeyToStringConvert.GetLanguageStringByKey("C0259"));
return;
}
if (int.TryParse(newValueString, out int newValue))
{
foreach (var item in vm.HouseInfoList)
{
if (this._newAutoFocus_CheckBox.IsChecked == true) item.NewAutoFocusNumber = newValue;
if (this._updateFocusNumber_CheckBox.IsChecked == true)
item.NewUpdateFocusNumber = newValue;
if (this._updateClearestNumber_CheckBox.IsChecked == true)
item.NewUpdateClearestNumber = newValue;
}
if (this._newAutoFocus_CheckBox.IsChecked == true)
this._newAutoFocus_CheckBox.IsChecked = false;
if (this._updateFocusNumber_CheckBox.IsChecked == true)
this._updateFocusNumber_CheckBox.IsChecked = false;
if (this._updateClearestNumber_CheckBox.IsChecked == true)
this._updateClearestNumber_CheckBox.IsChecked = false;
}
else
{
//new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, "请输入正确的数字");
new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, KeyToStringConvert.GetLanguageStringByKey("C0259"));
return;
}
}
private void SaveHouse_Click(object sender, RoutedEventArgs e)
{
bool isUp = false;
bool isUpHouse = false;
List upList = new List();
foreach (var item in vm.HouseInfoList)
{
isUpHouse = false;
if(item.autoFocus != item.autoFocusNew)
{
item.autoFocus = item.autoFocusNew;
isUpHouse = true;
}
if (item.NewPhotographPictureNumber.HasValue && item.NewPhotographPictureNumber >=0 && item.NewPhotographPictureNumber != item.photographPictureNumber)
{
item.photographPictureNumber = item.NewPhotographPictureNumber.Value;
item.autoFocus = 1;
isUpHouse = true;
}
if (item.NewAutoFocusNumber.HasValue && item.NewAutoFocusNumber >= 0 && item.NewAutoFocusNumber != item.autoFocusNumber)
{
item.autoFocusNumber = item.NewAutoFocusNumber.Value;
item.autoFocus = 1;
isUpHouse = true;
}
if (item.NewUpdateFocusNumber.HasValue && item.NewUpdateFocusNumber >= 0 && item.NewUpdateFocusNumber != item.updateFocusNumber)
{
item.updateFocusNumber = item.NewUpdateFocusNumber.Value;
item.autoFocus = 1;
isUpHouse = true;
}
if (item.NewUpdateClearestNumber.HasValue && item.NewUpdateClearestNumber >= 0 && item.NewUpdateClearestNumber != item.updateClearestNumber)
{
item.updateClearestNumber = item.NewUpdateClearestNumber.Value;
item.autoFocus = 1;
isUpHouse = true;
}
if (item.updateFocusNumber > item.autoFocusNumber)
{
MessageBox.Show($"{item.houseSn}号舱室抠图成功数-更新对焦起点不能大于对焦次数");
return;
}
if (item.updateClearestNumber > item.autoFocusNumber)
{
MessageBox.Show($"{item.houseSn}号舱室抠图成功数-更新拍照位置不能大于对焦次数");
return;
}
AutoFocusHouseInfoRequest autoFocusHouseInfoRequest = null;
if (isUpHouse)
{
autoFocusHouseInfoRequest = new AutoFocusHouseInfoRequest
{
photographPictureNumber = item.photographPictureNumber,
autoFocusNumber = item.autoFocusNumber,
updateFocusNumber = item.updateFocusNumber,
updateClearestNumber = item.updateClearestNumber,
autoFocus = item.autoFocus,
tlSn=item.tlSn,
houseSn=item.houseSn,
};
upList.Add(autoFocusHouseInfoRequest);
}
if(item.wellFocusSetting != null && item.wellFocusSetting.Any())
{
List wellList = new List();
foreach (var itemWell in item.wellFocusSetting)
{
isUp = false;
if (itemWell.NewFocusStartingPoint.HasValue && itemWell.NewFocusStartingPoint >= 0 && itemWell.NewFocusStartingPoint != itemWell.focusStartingPoint)
{
itemWell.focusStartingPoint = itemWell.NewFocusStartingPoint.Value;
isUp = true;
}
if (itemWell.NewMoveDownLayer.HasValue && itemWell.NewMoveDownLayer >= 0 && itemWell.NewMoveDownLayer != itemWell.moveDownLayer)
{
itemWell.moveDownLayer = itemWell.NewMoveDownLayer.Value;
isUp = true;
}
if (itemWell.NewLeftOffset.HasValue && itemWell.NewLeftOffset >= 0 && itemWell.NewLeftOffset != itemWell.leftOffset)
{
itemWell.leftOffset = itemWell.NewLeftOffset.Value;
isUp = true;
}
if (itemWell.NewBottomOffset.HasValue && itemWell.NewBottomOffset >= 0 && itemWell.NewBottomOffset != itemWell.bottomOffset)
{
itemWell.bottomOffset = itemWell.NewBottomOffset.Value;
isUp = true;
}
if (isUp)
{
wellList.Add(itemWell);
}
}
if (wellList.Any())
{
if(autoFocusHouseInfoRequest == null)
{
autoFocusHouseInfoRequest = new AutoFocusHouseInfoRequest
{
photographPictureNumber = item.photographPictureNumber,
autoFocusNumber = item.autoFocusNumber,
updateFocusNumber = item.updateFocusNumber,
updateClearestNumber = item.updateClearestNumber,
autoFocus = item.autoFocus,
tlSn = item.tlSn,
houseSn = item.houseSn,
};
upList.Add(autoFocusHouseInfoRequest);
}
autoFocusHouseInfoRequest.wellFocusSetting = wellList;
}
}
}
if (AppData.Instance.HttpHelper.HouseImmediatelyAPi(upList))
{
//new MessagePrompt().ShowCenterOwnerSuccess(AppData.Instance.MainWindow, "保存成功");
new MessagePrompt().ShowCenterOwnerSuccess(AppData.Instance.MainWindow, KeyToStringConvert.GetLanguageStringByKey("C0242"));
}
else
{
//new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, "保存失败");
new MessagePrompt().ShowCenterOwnerDefeat(AppData.Instance.MainWindow, KeyToStringConvert.GetLanguageStringByKey("C0243"));
}
}
private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
e.Handled = !Regex.IsMatch(e.Text, @"[0-9]");
}
}
}