using ivf_tl_CustomControls; using ivf_tl_Entity.Entity.AppSetting; using ivf_tl_Entity.Enums; using ivf_tl_Manage.Converts; using ivf_tl_Service.HttpProvider; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Data.SqlTypes; 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 { /// /// BusSettingWindow.xaml 的交互逻辑 /// public partial class BusSettingWindow : Window { private SettingProvider settingProvider; private long ParentId { get; set; } = 0; public BusSettingWindow(SettingProvider settingProvider, long id,string name) { InitializeComponent(); this.Owner = AppData.Instance.MainWindow; ParentId = id; this.settingProvider = settingProvider; //this._title_TextBlock.Text = $"{name}业务功能关联"; this._title_TextBlock.Text = $"{name}{KeyToStringConvert.GetLanguageStringByKey("0307")}"; NoSelectedBus = new ObservableCollection(settingProvider.GetUnassignedFuncApi()); SelectedBus = new ObservableCollection(settingProvider.GetBusByIdApi(id)); Closed += (s, e) => AppData.Instance.MainWindow.Activate(); } private void MessageBoxShow(string mess) { //this.message.Text = mess; } private void ExLog(Exception ex, string name) { AppData.Instance.LogService.ExceptionLog(ex, $"BusSettingWindow.{name}", LogEnum.RunException); } private void ErrorLog(string message, LogEnum logType) { AppData.Instance.LogService.TLLog($"BusSettingWindow.{message}", logType); } public ObservableCollection NoSelectedBus { get { return (ObservableCollection)GetValue(NoSelectedBusProperty); } set { SetValue(NoSelectedBusProperty, value); } } // Using a DependencyProperty as the backing store for NoSelectedBus. This enables animation, styling, binding, etc... public static readonly DependencyProperty NoSelectedBusProperty = DependencyProperty.Register("NoSelectedBus", typeof(ObservableCollection), typeof(BusSettingWindow), new PropertyMetadata(new ObservableCollection())); public ObservableCollection SelectedBus { get { return (ObservableCollection)GetValue(SelectedBusProperty); } set { SetValue(SelectedBusProperty, value); } } // Using a DependencyProperty as the backing store for SelectedBus. This enables animation, styling, binding, etc... public static readonly DependencyProperty SelectedBusProperty = DependencyProperty.Register("SelectedBus", typeof(ObservableCollection), typeof(BusSettingWindow), new PropertyMetadata(new ObservableCollection())); private void CheckBoxContent_Checked(object sender, RoutedEventArgs e) { if (!(sender is CheckBoxContent sourcre)) return; if (!sourcre.IsLoaded) return; if (!(sourcre.Tag is Business bus)) return; NoSelectedBus.Remove(bus); if (SelectedBus == null) SelectedBus = new ObservableCollection(); SelectedBus.Add(bus); } private void CheckBoxContent_Unchecked(object sender, RoutedEventArgs e) { if (!(sender is CheckBoxContent sourcre)) return; if (!sourcre.IsLoaded) return; if (!(sourcre.Tag is Business bus)) return; SelectedBus.Remove(bus); if (bus.state == 0) return; if (NoSelectedBus == null) NoSelectedBus = new ObservableCollection(); NoSelectedBus.Add(bus); } private void Cancel_MouseUp(object sender, MouseButtonEventArgs e) { this.DialogResult = false; return; } private void Cancel_Click(object sender, RoutedEventArgs e) { this.DialogResult = false; return; } private void Ok_Click(object sender, RoutedEventArgs e) { try { var checkedIds = SelectedBus.Select(x => x.id).ToList(); var uncheckedIds = NoSelectedBus.Select(x => x.id).ToList(); string error = settingProvider.BusSettingApi(ParentId, checkedIds, uncheckedIds); if (!string.IsNullOrEmpty(error)) { //MessageBoxShow($"操作失败,{error}"); MessageBoxShow($"{KeyToStringConvert.GetLanguageStringByKey("0286")},{error}"); return; } this.DialogResult = true; return; } catch (Exception ex) { ExLog(ex, "Ok_Click"); //MessageBoxShow($"操作失败:{ex.Message}"); MessageBoxShow($"{KeyToStringConvert.GetLanguageStringByKey("0291")},{ex.Message}"); } } } }