Esempio n. 1
0
        public bool ImmediateChange(Uri uri)
        {
            var id = uri.GetQueryParam("Id");

            if (id == null)
            {
                return(false);
            }

            var obj = ServerPresetsManager.Instance.GetById(id);

            if (obj == null)
            {
                return(false);
            }

            var track = obj.TrackId == null ? null : TracksManager.Instance.GetLayoutById(obj.TrackId, obj.TrackLayoutId);
            var cars  = obj.CarIds.Select(x => CarsManager.Instance.GetById(x)).ToArray();

            _id     = id;
            _object = obj;
            _track  = track;
            _cars   = cars;

            SetModel();
            return(true);
        }
Esempio n. 2
0
 public PackServerDialog(ServerPresetObject server)
 {
     DataContext = new ViewModel(null, server);
     InitializeComponent();
     Buttons = new[] {
         CreateExtraDialogButton("Pack", Model.PackCommand, true),
         CancelButton
     };
 }
        public AcServerPluginManagerSettings([NotNull] ServerPresetObject server)
        {
            ListeningPort = server.PluginUdpAddress?.Split(':', '/').ElementAtOrDefault(1).As <int?>()
                            ?? throw new Exception("Plugin UDP address is not set");
            RemotePort           = server.PluginUdpPort ?? throw new Exception("Plugin UDP port is not set");
            ConnectAutomatically = server.IsRunning;

            Capacity      = server.Capacity;
            AdminPassword = server.AdminPassword;
        }
        private void AllowedTyres_OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            if (_lastSubscribedTo != Model?.SelectedObject)
            {
                _lastSubscribedTo.UnsubscribeWeak(OnServerPropertyChanged);
                _lastSubscribedTo = Model?.SelectedObject;
                _lastSubscribedTo.SubscribeWeak(OnServerPropertyChanged);
            }

            SyncLegalTyres();
        }
Esempio n. 5
0
        void ILoadableContent.Load()
        {
            _object = ServerPresetsManager.Instance.GetById(_id);
            if (_object == null)
            {
                return;
            }

            _track = _object.TrackId == null ? null : TracksManager.Instance.GetLayoutById(_object.TrackId, _object.TrackLayoutId);
            _cars  = _object.CarIds.Select(x => CarsManager.Instance.GetById(x)).ToArray();
        }
Esempio n. 6
0
        async Task ILoadableContent.LoadAsync(CancellationToken cancellationToken)
        {
            _object = await ServerPresetsManager.Instance.GetByIdAsync(_id);

            if (_object == null)
            {
                return;
            }

            _track = _object.TrackId == null ? null : await TracksManager.Instance.GetLayoutByIdAsync(_object.TrackId, _object.TrackLayoutId);

            _cars = (await _object.CarIds.Select(x => CarsManager.Instance.GetByIdAsync(x)).WhenAll(4)).ToArray();
        }
Esempio n. 7
0
        private void EnsureSet()
        {
            var server    = IsLoaded ? Model?.SelectedObject : null;
            var serverLog = server?.RunningLog;

            if (server != _previousServer)
            {
                if (_previousServer != null)
                {
                    _previousServer.PropertyChanged -= OnServerChanged;
                }
                if (server != null)
                {
                    server.PropertyChanged += OnServerChanged;
                }
                _previousServer = server;
            }

            if (serverLog != _previousServerLog)
            {
                if (_previousServerLog != null)
                {
                    _previousServerLog.CollectionChanged -= OnLogChanged;
                }

                if (serverLog != null)
                {
                    serverLog.CollectionChanged += OnLogChanged;
                    Text.Document = new TextDocument(serverLog.JoinToString("\n"))
                    {
                        UndoStack = { SizeLimit = 0 }
                    };
                    Text.ScrollToEnd();
                }
                else
                {
                    Text.Document = new TextDocument {
                        UndoStack = { SizeLimit = 0 }
                    };
                }

                _previousServerLog = serverLog;
            }
        }
Esempio n. 8
0
            public ViewModel([CanBeNull] string serializedPreset, ServerPresetObject server)
            {
                Server = server;

                _saveable = new SaveHelper <SaveableData>("__PackServer", () => new SaveableData {
                    Mode = Mode,
                    IncludeExecutable = IncludeExecutable,
                    PackIntoSingle    = PackIntoSingle,
                }, o => {
                    Mode = o.Mode;
                    IncludeExecutable = o.IncludeExecutable;
                    PackIntoSingle    = o.PackIntoSingle;
                });

                if (string.IsNullOrEmpty(serializedPreset))
                {
                    _saveable.Initialize();
                }
                else
                {
                    _saveable.Reset();
                    _saveable.FromSerializedString(serializedPreset);
                }
            }