AcManager.Pages.Drive.QuickDrive_Race.ViewModel.GetPreview C# (CSharp) Метод

GetPreview() публичный Метод

public GetPreview ( object item ) : object
item object
Результат object
            public object GetPreview(object item) {
                var preset = item as ISavedPresetEntry;
                if (preset == null) return null;

                RaceGridViewModel.SaveableData saved;
                try {
                    var data = preset.ReadData();
                    saved = JsonConvert.DeserializeObject<RaceGridViewModel.SaveableData>(data);
                } catch (Exception) {
                    return null;
                }

                var mode = RaceGridViewModel.Modes.GetByIdOrDefault<IRaceGridMode>(saved.ModeId);
                if (mode == null) return null;

                var displayMode = mode.CandidatesMode ? $"{mode.DisplayName} ({"Random"})" : mode.DisplayName;
                var opponentsNumber = mode.CandidatesMode ? saved.OpponentsNumber : saved.CarIds?.Length;
                var description = new[] {
                    $"Mode: [b]{displayMode}[/b]",
                    mode == BuiltInGridMode.Custom
                            ? $"Opponents: [b]{(saved.CarIds?.Length ?? saved.OpponentsNumber ?? 0).ToInvariantString() ?? @"?"}[/b]" : null,
                    mode == BuiltInGridMode.CandidatesManual ? $"Candidates: [b]{saved.CarIds?.Length.ToInvariantString() ?? @"?"}[/b]" : null,
                    !string.IsNullOrWhiteSpace(saved.FilterValue) ? $"Filter: [b]“{saved.FilterValue}”[/b]" : null,
                    saved.StartingPosition.HasValue && opponentsNumber.HasValue
                            ? $"Starting position: [b]{GetDisplayPosition(saved.StartingPosition.Value, opponentsNumber.Value)}[/b]" : null,
                }.NonNull().JoinToString(Environment.NewLine);
                return new BbCodeBlock { BbCode = description };
            }
        }