/// <summary>Проверяет, соответствует ли данный билет устройства данной модели представления устройства</summary> private bool CanTicketApplyToDevice(DeviceViewModel dev, DeviceTicket ticket) { return ticket.BlockId == dev.CellId && ticket.Module == dev.ModuleNumber && ticket.Modification == dev.ModificationNumber && ticket.BlockSerialNumber == dev.SerialNumber; }
private void OnDeviceSelected(DeviceViewModel Device) { Device.RefreshProperties(); }
/// <summary>Синхронизирует список устройств в соответствии со списком билетов</summary> private void SyncronizeDeviceList(IList<DeviceTicket> Tickets) { foreach (var dev in Devices) dev.Tickets.Clear(); foreach (var t in Tickets) { DeviceViewModel DeviceVM = Devices.FirstOrDefault(dev => CanTicketApplyToDevice(dev, t)); if (DeviceVM == null) { DeviceVM = new DeviceViewModel(t); Devices.Add(DeviceVM); } DeviceVM.Tickets.Add(t); } foreach (var dev in Devices.Where(dev => !dev.Tickets.Any()).ToList()) Devices.Remove(dev); }