private CarSetupsDialog([NotNull] CarObject car, CarSetupsRemoteSource forceRemoteSource = CarSetupsRemoteSource.None) { if (car == null) { throw new ArgumentNullException(nameof(car)); } DataContext = new ViewModel(car); DefaultContentSource = Model.ListUri; var linkGroup = new LinkGroupFilterable { DisplayName = AppStrings.Main_Setups, Source = Model.ListUri, AddAllLink = true }; foreach (var link in CarSetupsListPage.GetRemoteLinks(car.Id)) { linkGroup.FixedLinks.Add(link); } if (forceRemoteSource != CarSetupsRemoteSource.None) { ValuesStorage.Set("CarSetupsDialog_link", CarSetupsListPage.GetRemoteSourceUri(car.Id, forceRemoteSource)); } MenuLinkGroups.Add(linkGroup); InitializeComponent(); }
public static void Open([NotNull] CarObject car, CarSetupsRemoteSource forceRemoteSource = CarSetupsRemoteSource.None, bool forceNewWindow = false) { if (forceNewWindow || Keyboard.Modifiers == ModifierKeys.Control && !User32.IsAsyncKeyPressed(System.Windows.Forms.Keys.K) || !(Application.Current?.MainWindow is MainWindow main) || !main.IsActive || SettingsHolder.Interface.SkinsSetupsNewWindow) { CarSetupsDialog.Show(car, forceRemoteSource); return; } var remoteLinksStatus = GetRemoteLinksStatus(); if (remoteLinksStatus != _remoteLinksStatus) { _remoteLinksStatus = remoteLinksStatus; main.MenuLinkGroups.RemoveRange(main.MenuLinkGroups.OfType <LinkGroupFilterable>().Where(x => x.GroupKey == "setups").ToList()); } var existing = main.OpenSubGroup("setups", $"Setups for {car.DisplayName}", UriExtension.Create("/Pages/Lists/CarSetupsListPage.xaml?CarId={0}", car.Id), FilterHints.CarSetups); foreach (var link in GetRemoteLinks(car.Id)) { existing.FixedLinks.Add(link); } if (forceRemoteSource != CarSetupsRemoteSource.None) { existing.SetSelected(GetRemoteSourceUri(car.Id, forceRemoteSource)); } }
protected RemoteSetupsManager(CarSetupsRemoteSource source, string carId, List <RemoteSetupInformation> data) { _data = data; Source = source; CarId = carId; Purge(); Instances.Add(Tuple.Create(source, carId, new WeakReference <RemoteSetupsManager>(this))); }
public RemoteCarSetupObject(RemoteSetupsManager manager, RemoteSetupInformation information) : base(manager, information.Id, true) { _information = information; Source = manager.Source; CarId = _information.CarId; TrackId = _information.TrackKunosId; Author = _information.Author; Version = _information.Version; Downloads = _information.Downloads; CommunityRating = _information.CommunityRating; Trim = _information.Trim; BestTime = _information.BestTime; _track = new Lazy <TrackObject>(() => TrackId == null ? null : TracksManager.Instance.GetLayoutByKunosId(TrackId)?.MainTrackObject); }
void IParametrizedUriContent.OnUri(Uri uri) { _carId = uri.GetQueryParam("CarId"); if (_carId == null) { throw new ArgumentException(ToolsStrings.Common_CarIdIsMissing); } _id = uri.GetQueryParam("Id"); if (_id == null) { throw new ArgumentException(ToolsStrings.Common_IdIsMissing); } _source = uri.GetQueryParamEnum <CarSetupsRemoteSource>("RemoteSource"); }
public void Open(CarObject car, CarSetupsRemoteSource forceRemoteSource = CarSetupsRemoteSource.None, bool forceNewWindow = false) { CarSetupsListPage.Open(car, forceRemoteSource, forceNewWindow); }
public static Uri GetRemoteSourceUri(string carId, CarSetupsRemoteSource remoteSource) { return(UriExtension.Create("/Pages/Lists/CarSetupsListPage.xaml?CarId={0}&RemoteSource={1}&Special=1", carId, remoteSource)); }