DataCenterModel.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using SWRIS.Enums;
  2. using System.Collections.Generic;
  3. using System.Collections.ObjectModel;
  4. using System.ComponentModel;
  5. using System.Linq;
  6. namespace SWRIS.Models
  7. {
  8. public class DataCenterModel : INotifyPropertyChanged
  9. {
  10. public DataCenterModel(List<EquipmentModel> equipments, List<LimitData> limits)
  11. {
  12. if (equipments != null)
  13. {
  14. equipments = equipments.OrderBy(c => c.RopeNumber).ToList();
  15. foreach (var equipment in equipments)
  16. {
  17. var equipmentData = new EquipmentDataModel()
  18. {
  19. RopeNumber = equipment.RopeNumber,
  20. RopeName = equipment.RopeName,
  21. IpAddress = equipment.IpAddress,
  22. SerialNo = equipment.SerialNo,
  23. SensorCount = equipment.Parameter.SensorCount,
  24. SamplingStep = equipment.Parameter.SamplingStep,
  25. RopeLength = equipment.Parameter.WireRopeLength,
  26. LiftHightRatio = equipment.LiftHightRatio,
  27. DisableAlarm = equipment.DisableAlarm,
  28. VariationThreshold = App.Config.SpeedVariationThreshold
  29. };
  30. limits?.ForEach(limit =>
  31. {
  32. if (limit.RelatedRopes.Contains(equipment.RopeNumber))
  33. {
  34. equipmentData.Limits.Add(new LimitModel { Name = limit.Name, State = LimitState.Offline, IsEnable = limit.IsEnable });
  35. }
  36. });
  37. Equipments.Add(equipmentData);
  38. }
  39. }
  40. }
  41. public ObservableCollection<EquipmentDataModel> Equipments { get; set; } = new ObservableCollection<EquipmentDataModel>();
  42. public event PropertyChangedEventHandler PropertyChanged;
  43. protected internal virtual void OnPropertyChanged(string propertyName)
  44. {
  45. PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
  46. }
  47. }
  48. }