public ActionResult Compare(int[] compare) { var model = new DevicesCompare(); if (compare == null || compare.Length < 2) return View(model); model.Devices = _repository.Devices.Where(d => compare.Contains(d.Id)).ToList(); IEnumerable<DeviceParameter> collection = null; var deviceParameterEqualityComparer = new DeviceParameterEqualityComparer(); for (int i = 0; i < model.Devices.Count - 1; i++) { var device = model.Devices[i]; var next = model.Devices[i + 1]; if (collection == null) { collection = device.DeviceParameters.Union(next.DeviceParameters, deviceParameterEqualityComparer); } else { collection = collection.Union(next.DeviceParameters, deviceParameterEqualityComparer); } } if (collection != null) model.Parameters = new List<DeviceParameter>(collection.Distinct(deviceParameterEqualityComparer)); return View(model); }
public ActionResult Compare(int[] compare) { var model = new DevicesCompare(); if (compare == null || compare.Length < 2) { return(View(model)); } model.Devices = _repository.Devices.Where(d => compare.Contains(d.Id)).ToList(); IEnumerable <DeviceParameter> collection = null; var deviceParameterEqualityComparer = new DeviceParameterEqualityComparer(); for (int i = 0; i < model.Devices.Count - 1; i++) { var device = model.Devices[i]; var next = model.Devices[i + 1]; if (collection == null) { collection = device.DeviceParameters.Union(next.DeviceParameters, deviceParameterEqualityComparer); } else { collection = collection.Union(next.DeviceParameters, deviceParameterEqualityComparer); } } if (collection != null) { model.Parameters = new List <DeviceParameter>(collection.Distinct(deviceParameterEqualityComparer)); } return(View(model)); }