| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- using ivf_tl_Entity;
- using ivf_tl_Entity.GlobalEnums;
- using ivf_tl_Operate.Converts;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Security.Claims;
- 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 ivf_tl_Operate.CustomUserControls
- {
- /// <summary>
- /// AlarmControl.xaml 的交互逻辑
- /// </summary>
- public partial class AlarmControl : UserControl
- {
- public AlarmControl()
- {
- InitializeComponent();
- }
- public AlarmHistoryEntity Data
- {
- get { return (AlarmHistoryEntity)GetValue(DataProperty); }
- set { SetValue(DataProperty, value); }
- }
- // Using a DependencyProperty as the backing store for Data. This enables animation, styling, binding, etc...
- public static readonly DependencyProperty DataProperty =
- DependencyProperty.Register("Data", typeof(AlarmHistoryEntity), typeof(AlarmControl), new PropertyMetadata(null,new PropertyChangedCallback (OnDataPropertyChangedCallback)));
- private static void OnDataPropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
- {
- if (!(d is AlarmControl source)) return;
- if (!(e.NewValue is AlarmHistoryEntity alarm)) return;
- //source._alarmState.Text = alarm.type==1 ? "结束报警" : "正在报警";
- source._alarmState.Text = alarm.type == 1 ? KeyToStringConvert.GetLanguageStringByKey("C0278") : KeyToStringConvert.GetLanguageStringByKey("C0277");
- string houseSnString = null;
- if(alarm.houseSn == 0)
- {
- houseSnString = KeyToStringConvert.GetLanguageStringByKey("C0230");
- }
- else if (alarm.houseSn == 11)
- {
- houseSnString = KeyToStringConvert.GetLanguageStringByKey("C0231");
- }
- else
- {
- houseSnString = $"{alarm.houseSn}{KeyToStringConvert.GetLanguageStringByKey("C0056")}";
- }
- source._house.Text = houseSnString;
- source._alarmTitle.Text = alarm.title;
- source._alarmText.Text = alarm.text;//alarm.textDetail.Substring(alarm.textDetail.IndexOf(',')+1);
- source._alarmStartTime.Text = alarm.startTime;
- source._alarmEndTime.Text = alarm.endTime;
- //source._svg.Fill = new SolidColorBrush(Color.FromRgb(199, 80, 105));
- //source._svg.Stretch = Stretch.Fill;
- //报警结束的颜色为灰色
- if (alarm.type == 1)
- {
- if (DateTime.TryParse(alarm.startTime, out DateTime startTime) && DateTime.TryParse(alarm.endTime, out DateTime endTime))
- {
- var alarmSpan = endTime.Subtract(startTime);
- source._alarmAllTime.Visibility = Visibility.Visible;
- //source._alarmAllTime.Text = $"总计:{(alarmSpan.Days * 24) + alarmSpan.Hours}H{alarmSpan.Minutes}M";
- source._alarmAllTime.Text = $"{KeyToStringConvert.GetLanguageStringByKey("C0279")}:{(alarmSpan.Days * 24) + alarmSpan.Hours}H{alarmSpan.Minutes}M";
- }
- source._imageMute.Visibility = Visibility.Hidden;
- source._borderLeft.Background = new SolidColorBrush(Color.FromRgb(176, 180, 185)); //灰色
- source._alarmStateBorder.Background = new SolidColorBrush(Colors.Transparent);
- source._alarmStateBorder.BorderThickness = new Thickness(1);
- source._alarmStateBorder.BorderBrush = new SolidColorBrush(Color.FromRgb(176, 180, 185)); //灰色
- source._alarmState.Foreground = new SolidColorBrush(Color.FromRgb(176, 180, 185));//灰色
- source._alarmCircle1.Background = new SolidColorBrush(Color.FromRgb(176, 180, 185));//灰色
- source._alarmCircle2.Background = new SolidColorBrush(Color.FromRgb(176, 180, 185));//灰色
- switch (alarm.alarmKey)
- {
- case "PRESSURE_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/PressureAlarmEnd.png", UriKind.RelativeOrAbsolute));
- break;
- case "DISK_SPACE_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/StorageAlarmEnd.png", UriKind.RelativeOrAbsolute));
- break;
- case "TEMPERATURE_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/TemperatureAlarmEnd.png", UriKind.RelativeOrAbsolute));
- break;
- case "TL_STATE_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/ErrorAlarmEnd.png", UriKind.RelativeOrAbsolute));
- break;
- case "HOUSE_STATE_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/ErrorAlarmEnd.png", UriKind.RelativeOrAbsolute));
- break;
- case "HOUSE_PORT_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/ComlossAlarmEnd.png", UriKind.RelativeOrAbsolute));
- break;
- case "DISK_EXIST_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/HardwareLostAlarmEnd.png", UriKind.RelativeOrAbsolute));
- break;
- case "HOUSE_DOOR_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/DoorErrorAlarmEnd.png", UriKind.RelativeOrAbsolute));
- break;
- case "MATTING_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/PicDefeatAlarmEnd.png", UriKind.RelativeOrAbsolute));
- break;
- case "PHOTO_STATE_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/PicDefeatAlarmEnd.png", UriKind.RelativeOrAbsolute));
- break;
- case "AIR_SWAP_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/PressureAlarmEnd.png", UriKind.RelativeOrAbsolute));
- break;
- default: break;
- }
- }
- else
- {
- switch (alarm.alarmKey)
- {
- case "PRESSURE_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/PressureAlarming.png", UriKind.RelativeOrAbsolute));
- break;
- case "AIR_SWAP_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/PressureAlarming.png", UriKind.RelativeOrAbsolute));
- break;
- case "DISK_SPACE_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/StorageAlarming.png", UriKind.RelativeOrAbsolute));
- break;
- case "TEMPERATURE_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/TemperatureAlarming.png", UriKind.RelativeOrAbsolute));
- break;
- case "TL_STATE_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/ErrorAlarming.png", UriKind.RelativeOrAbsolute));
- break;
- case "HOUSE_STATE_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/ErrorAlarming.png", UriKind.RelativeOrAbsolute));
- break;
- case "HOUSE_PORT_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/ComlossAlarming.png", UriKind.RelativeOrAbsolute));
- break;
- case "DISK_EXIST_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/HardwareLostAlarming.png", UriKind.RelativeOrAbsolute));
- break;
- case "HOUSE_DOOR_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/DoorErrorAlarming.png", UriKind.RelativeOrAbsolute));
- break;
- case "MATTING_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/PicDefeatAlarming.png", UriKind.RelativeOrAbsolute));
- break;
- case "PHOTO_STATE_ALARM":
- source._alarm_Image.Source = new BitmapImage(new Uri("/ivf_tl_Operate;component/Resources/Image/PicDefeatAlarming.png", UriKind.RelativeOrAbsolute));
- break;
- default: break;
- }
- if (alarm.mute == 1) source._imageMute.Source = source.voiceCloseImage;
- }
- }
- //public event Action<Alarm> OnMute;
- private ImageSource voiceCloseImage = Application.Current.Resources["VoiceCloseImage"] as ImageSource;
- private ImageSource voiceOpenImage = Application.Current.Resources["VoiceOpenImage"] as ImageSource;
- private void Image_MouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
- {
- if (!(sender is Image image)) return;
- if (Data.mute==0)
- {
- Data.mute = 1;
- AppData.Instance.MainPageView.SetAlarmMute(Data.id, Data.mute);
- image.Source = voiceCloseImage;
- }
- else
- {
- Data.mute = 0;
- image.Source = voiceOpenImage;
- AppData.Instance.MainPageView.SetAlarmMute(Data.id, Data.mute);
- }
- //if (this.Data.IsMute.Value)
- //{
- // //开启声音
- // this.Data.IsMute = false;
- // image.Source = voiceOpenImage;
- //}
- //else
- //{
- // //关闭声音
- // this.Data.IsMute = true;
- // image.Source = voiceCloseImage;
- //}
- //OnMute?.Invoke(this.Data);
- }
- }
- }
|