public static SyncStateCommand DeleteEvent(ReplayEvent @event)
 {
     var command = new SyncStateCommand();
     command.StateUpdateType = SyncStateCommand.StateUpdateTypes.DeleteEvent;
     command.Data = new
     {
         Event = @event
     };
     return command;
 }
Exemple #2
0
        public static SyncStateCommand DeleteEvent(ReplayEvent @event)
        {
            var command = new SyncStateCommand();

            command.StateUpdateType = SyncStateCommand.StateUpdateTypes.DeleteEvent;
            command.Data            = new
            {
                Event = @event
            };
            return(command);
        }
        public void AddCustomEvent()
        {
            var @event = new ReplayEvent();
            @event.AdminId = SyncManager.Instance.UserId;
            @event.Camera = CameraControl.GetCurrentCameraSessionTime();
            @event.Type = ReplayEvent.EventTypes.Interesting;

            this.AddEvent(@event);
        }
        private void UpdateEvents()
        {
            this.Events.Clear();

#if DEBUG
            var debugEvents = new List<ReplayEvent>();
            var ev = new ReplayEvent();
            ev.AdminId = SyncManager.Instance.UserId;
            ev.Camera = CameraDetails.ChangeReplayTime(400, 4);
            ev.Type = ReplayEvent.EventTypes.Interesting;
            ev.Text = "Test event 1";
            debugEvents.Add(ev);

            ev = new ReplayEvent();
            ev.AdminId = SyncManager.Instance.UserId;
            ev.Camera = CameraDetails.ChangeReplayTime(500, 7);
            ev.Type = ReplayEvent.EventTypes.Incident;
            ev.Text = "Test event 2";
            debugEvents.Add(ev);

            ev = new ReplayEvent();
            ev.AdminId = SyncManager.Instance.UserId;
            ev.Camera = CameraDetails.ChangeReplayTime(850, 7);
            ev.Type = ReplayEvent.EventTypes.Interesting;
            ev.Text = "Test event 3";
            debugEvents.Add(ev);

            foreach (var @event in debugEvents)
            {
#else
            foreach (var @event in SyncManager.Instance.State.Events)
            {
#endif
                var container = new ReplayEventContainer(@event);
                container.RelativePosition = @event.Camera.SessionTime/this.SessionTime;
                this.Events.Add(container);
            }
            this.UpdateEventPositions();
        }
        public void AddEvent(ReplayEvent @event)
        {
            var container = new ReplayEventContainer(@event);
            container.RelativePosition = @event.Camera.SessionTime / this.SessionTime;
            this.Events.Add(container);
            this.UpdateEventPosition(container);

            var command = SyncCommandHelper.AddEvent(@event);
            SyncManager.Instance.SendStateUpdate(command);
        }
Exemple #6
0
        private void UpdateEvent(ReplayEvent @event)
        {
            var existing = this.State.Events.SingleOrDefault(e => e.Id == @event.Id);
            if (existing != null)
            {
                this.State.Events.Remove(existing);
            }

            this.State.Events.Add(@event);
        }
        public void AddDriver(DriverContainer driver, PenaltyContainer parentPenalty = null)
        {
            Penalty penalty;
            if (parentPenalty == null)
            {
                penalty = Penalty.Create();
                penalty.Camera = CameraControl.GetCurrentCameraSessionTime();
                penalty.Lap = driver.Driver.Live.Lap.ToString();
                SyncManager.Instance.State.Penalties.Add(penalty);

                // Create incident event
                var @event = new ReplayEvent();
                @event.Type = ReplayEvent.EventTypes.Incident;
                @event.AdminId = SyncManager.Instance.UserId;
                @event.Camera = penalty.Camera;
                //_mainModel.ReplayBarModel.AddEvent(@event);
            }
            else
            {
                penalty = parentPenalty.Penalty;
            }

            penalty.StartInvestigation(driver.Driver.Id, SyncManager.Instance.User);

            if (parentPenalty == null)
            {
                SyncManager.Instance.SendStateUpdate(SyncCommandHelper.AddPenalty(penalty));
                EditPenalty(penalty);
            }
            else
            {
                SyncManager.Instance.SendPenaltyUpdate(penalty);
            }

            this.UpdatePenalties();
        }
        public void AddOfftrackPenalty(DriverOfftrackLimit limit)
        {
            Penalty penalty;
            penalty = Penalty.Create();
            penalty.Reason = "Ignoring track limits";
            penalty.Camera = CameraControl.GetCurrentCameraSessionTime();
            penalty.Lap = limit.Driver.Driver.Live.Lap.ToString();
            SyncManager.Instance.State.Penalties.Add(penalty);

            // Create incident event
            var @event = new ReplayEvent();
            @event.Type = ReplayEvent.EventTypes.Incident;
            @event.AdminId = SyncManager.Instance.UserId;
            @event.Camera = penalty.Camera;
           // _mainModel.ReplayBarModel.AddEvent(@event);

            penalty.StartInvestigation(limit.Driver.Driver.Id, SyncManager.Instance.User);

            SyncManager.Instance.SendStateUpdate(SyncCommandHelper.AddPenalty(penalty));
        }
 public ReplayEventContainer(ReplayEvent @event)
 {
     _event = @event;
     this.Admin = SyncManager.Instance.Users.FromId(@event.AdminId);
 }