private static string GetError(CameraModels camera) { if (camera.Info == null) { return(null); } if (camera.Info.Base == null) { return(Resources.Camera_NoMetadata_Text); } if (!"Canon".Equals(camera.Info.Base.Make, StringComparison.InvariantCulture)) { return(Resources.Camera_NonCanon_Text); } if (camera.Info.Canon == null) { return(Resources.Camera_NoCanonMakernote_Text); } if (camera.Info.Canon.ModelId == 0) { return(Resources.Camera_NoModelId_Text); } if (camera.Info.Canon.FirmwareRevision == 0 && camera.Info.Canon.FirmwareVersion == null) { return(Resources.Camera_NoFirmwareRevision_Text); } return(null); }
private static CameraItemViewModel[] CreateItems(CameraModels camera) { var models = camera.Models ?? CreateCameraModels(camera); return(models .Select(m => CreateItem(camera.Info, m)) .ToArray()); }
private static CameraModelInfo[] CreateCameraModels(CameraModels camera) { return(new[] { new CameraModelInfo { Names = new[] { camera.Info.Base.Model } } }); }
private void Update(CameraViewModel viewModel, CameraModels camera) { Logger.LogObject(LogLevel.Information, "Detected {0}", camera); viewModel.IsSelect = false; if (camera == null) { viewModel.Info = null; viewModel.Error = Resources.Camera_NoImage_Text; viewModel.Items = new CameraItemViewModel[0]; return; } viewModel.Info = camera.Info; viewModel.Error = GetError(camera); if (viewModel.Error != null) { viewModel.Items = new CameraItemViewModel[0]; return; } viewModel.Items = camera.Models .Select(m => CreateItem(camera.Info, m)) .ToArray(); var cameraModels = CameraProvider.GetCameraModels(camera.Info); viewModel.CardType = cameraModels?.CardType; if (camera.Models.Length == 1) { viewModel.SelectedItem = viewModel.Items[0]; return; } viewModel.SelectedItem = null; viewModel.IsSelect = true; }