Beispiel #1
0
        private void UpdateOfftracks(UserConnection conn, SyncStateCommand command)
        {
            var offtracks = (List<Offtrack>)command.Data.Offtracks.ToObject<List<Offtrack>>();
            if (offtracks.Count == 0) return;

            foreach (var offtrack in offtracks)
            {
                var id = offtrack.DriverId;
                if (!this.State.OfftrackHistories.ContainsKey(id))
                {
                    this.State.OfftrackHistories.Add(id, new List<Offtrack>());
                }

                // Does an offtrack with the same id already exist?
                var existing = this.State.OfftrackHistories[id].LastOrDefault(o => o.UniqueId == offtrack.UniqueId);
                if (existing != null)
                {
                    // Update this offtrack
                    this.State.OfftrackHistories[id].Remove(existing);
                }
                this.State.OfftrackHistories[id].Add(offtrack);
            }
        }
Beispiel #2
0
 private void DeletePenalty(UserConnection conn, SyncStateCommand command)
 {
     var id = (string)command.Data.PenaltyId;
     var penalty = this.State.Penalties.FirstOrDefault(p => p.Id == id);
     if (penalty != null)
     {
         this.State.Penalties.Remove(penalty);
     }
 }
Beispiel #3
0
 private void AddEvent(UserConnection conn, SyncStateCommand command)
 {
     var @event = command.Data.Event.ToObject<ReplayEvent>();
     this.UpdateEvent(@event);
 }
Beispiel #4
0
 private void EditPenalty(UserConnection conn, SyncStateCommand command)
 {
     var penalty = command.Data.Penalty.ToObject<Penalty>();
     this.UpdatePenalty(penalty);
 }
Beispiel #5
0
 private void UpdateLiveStatus(UserConnection conn, SyncStateCommand command)
 {
     int id = conn.User.CustId;
     if (!this.State.LiveStatus.ContainsKey(id))
     {
         this.State.LiveStatus.Add(id, false);
     }
     this.State.LiveStatus[id] = (bool)command.Data.IsLive;
 }
Beispiel #6
0
 private void UpdateWatchedDriver(UserConnection conn, SyncStateCommand command)
 {
     int id = conn.User.CustId;
     if (!this.State.WatchedDrivers.ContainsKey(id))
     {
         this.State.WatchedDrivers.Add(id, -1); // -1 means 'not focused on driver'
     }
     this.State.WatchedDrivers[id] = (int)command.Data.CarId;
 }
Beispiel #7
0
        private void OnConnected(UserContext context)
        {
            // Client connected
            // Store his connection details so we can link the connection to a user on registration

            this.OnLog("Client connected: " + context.ClientAddress);

            var conn = new UserConnection();
            conn.Context = context;
            conn.ClientAddress = context.ClientAddress.ToString();

            _connections.Add(conn);
        }
 private void EditPenalty(UserConnection conn, SyncStateCommand command)
 {
     //var penalty = (Penalty)JsonConvert.DeserializeObject<Penalty>(command.Data.Penalty.ToString());
     var penalty = command.Data.Penalty.ToObject<Penalty>();
     this.UpdatePenalty(penalty);
 }