public void IncomingPayload(DataPayLoad dataPayLoad)
        {
            if (dataPayLoad == null)
            {
                return;
            }
            if (dataPayLoad.PayloadType != DataPayLoad.Type.Insert)
            {
                if ((dataPayLoad.Sender != null) && (dataPayLoad.Sender.Equals(ViewModelUri)))
                {
                    return;
                }
            }
            var interpreter = new PayloadInterpeter <IBookingIncidentData>();
            var currentId   = _dataIncidentService.NewId();

            interpreter.Init    = Init;
            interpreter.CleanUp = CleanUp;

            if (string.IsNullOrEmpty(PrimaryKeyValue))
            {
                PrimaryKeyValue = dataPayLoad.PrimaryKeyValue;
            }

            if (string.IsNullOrEmpty(PrimaryKeyValue))
            {
                return;
            }
            // i check what i have to do.
            OperationalState = interpreter.CheckOperationalType(dataPayLoad);
            // i act on the system and notify the subsystem
            interpreter.ActionOnPayload(dataPayLoad, PrimaryKeyValue, currentId, SubSystem,
                                        EventSubsystem.BookingSubsystemVm);
        }
        public override void IncomingPayload(DataPayLoad dataPayLoad)
        {
            if (dataPayLoad == null)
            {
                return;
            }
            if ((dataPayLoad.Sender != null) && (dataPayLoad.Sender.Equals(ViewModelUri)))
            {
                return;
            }
            var currentId = _incidentService.NewId();

            var interpeter = new PayloadInterpeter <IBookingIncidentData>();

            InitPayLoadInterpeter(interpeter);
            OperationalState = interpeter.CheckOperationalType(dataPayLoad);
            interpeter.ActionOnPayload(dataPayLoad, PrimaryKeyValue, currentId, SubSystem,
                                       EventSubsystem.BookingSubsystemVm);
        }