Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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));
            }
        }
Exemplo n.º 3
0
        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)));
        }
Exemplo n.º 4
0
 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");
        }
Exemplo n.º 6
0
 public void Open(CarObject car, CarSetupsRemoteSource forceRemoteSource = CarSetupsRemoteSource.None, bool forceNewWindow = false)
 {
     CarSetupsListPage.Open(car, forceRemoteSource, forceNewWindow);
 }
Exemplo n.º 7
0
 public static Uri GetRemoteSourceUri(string carId, CarSetupsRemoteSource remoteSource)
 {
     return(UriExtension.Create("/Pages/Lists/CarSetupsListPage.xaml?CarId={0}&RemoteSource={1}&Special=1", carId, remoteSource));
 }