private bool CanExportUnrecognized() { if (ByVehicles.Any( v => v.Traces.Any( t => t.ParametersSets.Any(ps => ps.Parameters.Any(p => p.Model.Type == PsaParameterType.Unsupported))))) { return(true); } if (ByVehicles.Any(v => v.Traces.Any(t => t.ParametersSets.Any(ps => ps.Model.Type == PsaParametersSetType.Unsupported)))) { return(true); } return(false); }
private void CheckTracesForAlreadyDisplayedAndDisplayNew(PortableData data) { // Select those traces that are not yet displayed. IList <PsaTrace> tracesToDisplay = data.PsaTraces.Where(t => !IsAlreadyDisplayed(t)).ToList(); // Display traces that are ready to be displayed (possibly creating Vehicles for them). foreach (PsaTrace trace in tracesToDisplay) { if (!ByVehicles.Any(v => v.Vin.Equals(trace.Vin, StringComparison.OrdinalIgnoreCase))) { // add vehicle, add trace to vehicle ExportableVehicleViewModel newVehicle = new ExportableVehicleViewModel( trace.Vin, trace.Manufacturer, trace.Mileage, trace.VehicleModelName); ExportablePsaTraceViewModel traceViewModel = new ExportablePsaTraceViewModel(new PsaTraceInfo(trace, new PsaTraceMetadata())); newVehicle.Traces.Add(traceViewModel); traces.Add(traceViewModel); ByVehicles.Add(newVehicle); } else { // add trace to vehicle ExportablePsaTraceViewModel traceViewModel = new ExportablePsaTraceViewModel(new PsaTraceInfo(trace, new PsaTraceMetadata())); ByVehicles.First(v => v.Vin.Equals(trace.Vin, StringComparison.OrdinalIgnoreCase)). Traces.Add(traceViewModel); traces.Add(traceViewModel); } } if (tracesToDisplay.Count != 0) { synchronizer.StartSynchronizationAsync(traces.Select(t => t.ModelTraceInfo).ToList()); } }
private bool HaveSelectedData() { return(ByVehicles.Any(v => v.IsSelectedForExport)); }