public void Go(WantedCarLocationChanged message)
        {
            //ScaleSOP();

            var vm = this.DataContext as SOPViewModel;
            MessageTypeSOPParentModel obj = null;
            MessageTypeSOPModel SOPItem = null;

            if (vm != null && vm.SopList.Count > 0)
            {
                var currentMessage = vm.GetCurrentMessageObject();

                if (currentMessage != null && (currentMessage as SOPGeneralMessage).OriginalObject != null)
                {
                    WantedCarToSOPMessage wantedcar = ((SOPGeneralMessage)currentMessage).OriginalObject as WantedCarToSOPMessage;

                    if (wantedcar != null && wantedcar.VehiclePlateNumber == message.PlateNumber)
                    {
                        wantedcar.Latitude = message.Lat.Value;
                        wantedcar.Longitude = message.Lon.Value;
                    }
                    else
                        return;

                    foreach (var item in vm.SopList.Where(x => x.SOPItems.Any(y => y.UserControlModel != null && y.UserControlModel.Any() && y.UserControlModel.FirstOrDefault() is PatrolsListViewModel)).ToList())
                    {
                        var patrolListVM = item.SOPItems.FirstOrDefault().UserControlModel.FirstOrDefault();
                        Utility.CallMethodUsingReflector(patrolListVM, "ProcessMessage", new WantedCarModel { Latitude = wantedcar.Latitude, Longitude = wantedcar.Longitude, TowerId = wantedcar.TowerId, VehiclePlateNumber = wantedcar.VehiclePlateNumber, PlateKind = wantedcar.VehiclePlateKind, PlateType = wantedcar.VehiclePlateType, PlateSource = wantedcar.VehiclePlateSource, PlateColor = wantedcar.VehiclePlateColor });
                        //if (item.SOPItems.Count > 0)
                        //{
                        //    MessageTypeSOPModel m = item.SOPItems.FirstOrDefault(x => x.ListUserControlMessageType == "PatrolsListViewModel");
                        //    if(m != null)
                        //    {
                        //        Utility.CallMethodUsingReflector(m, "ProcessMessage", new WantedCarModel { Latitude = wantedcar.Latitude,Longitude = wantedcar.Longitude,TowerId = wantedcar.TowerId,VehiclePlateNumber = wantedcar.VehiclePlateNumber});
                        //        return;
                        //    }
                        //    //MessageTypeSOPModel m = item.SOPItems.Where(x => x.UserControlDetailsControl == "CamerasListActionPanelUserControl").FirstOrDefault();

                        //    //if (m != null)
                        //    //{
                        //    //    obj = item;
                        //    //    SOPItem = m;
                        //    //    break;
                        //    //}
                        //}
                    }

                    if (obj != null)
                    {
                        OpenDetails(obj);

                        //PopupCanvas.Children.Clear();

                        //if (SOPItem.UserControlDetailsControl != null)
                        //{
                        //    var usrCnt = sopViewModel.GetUserControl(SOPItem.UserControlDetailsControl, SOPItem.DetailsUserControlMessageType, SOPItem.DetailsMessageXSLT) as UserControl;
                        //    if (usrCnt != null)
                        //    {
                        //        Utility.CallMethodUsingReflector(usrCnt, "UpdateCameras", message);
                        //    }
                        //}
                    }
                }
            }
        }
        public void Go(WantedCarToSOPMessage Message)
        {
            ScaleSOP();

            ScaleGridBasicInfo();

            _sopActiveStepIndex = 0;
            var client = new ServiceLayerReference.ServiceLayerClient();
            bool isArabic = Utility.GetLang() == "ar";
            long messageId = 0;
            string type = isArabic ? Message.Discription : Message.EnglishDiscription;
            if (long.TryParse(Message.MessageId, out messageId))
            {
                var ruleDTO = client.GetMessageBusinessRule(messageId);
                if (ruleDTO != null)
                {
                    type = ruleDTO.BusinessName;
                }
            }
            sopViewModel.EventDetailsList = new System.Collections.ObjectModel.ObservableCollection<EventDetailModel>() {
                new EventDetailModel
                {
                    Name = isArabic ? "نوع المخالفة" :  "Violation Type",
                    Value = type
                }, new EventDetailModel
                {
                    Name =  isArabic ? "التاريخ والوقت" :  "Date & Time",
                    Value = Message.CreatedDate.ToString("dd/MM/yyyy HH:mm")
                }, new EventDetailModel
                {
                    Name = isArabic ? "نوع المركبة" :  "Vehicle Type",
                    Value = isArabic ? "سيارة":"Car"
                }, new EventDetailModel
                {
                    Name = Properties.Resources.strPlateNum,
                    Value = Message.VehiclePlateNumber
                }, new EventDetailModel
                {
                    Name = isArabic ? "المكان" :  "Location",
                    Value = client.GetAssetLocation((int)Message.TowerId,isArabic)
                } , new EventDetailModel {
                    Name = isArabic ? "رقم الرادار" :  "Radar Code",
                    Value = client.GetAssetSerialNumber(Message.TowerId)
                } };

            var assignedPatrols = sopViewModel.GetAssignedPatrols(Message.NotificationId);
            if (assignedPatrols != null && assignedPatrols.Any())
            {
                foreach (var assignedPatrol in assignedPatrols)
                {
                    sopViewModel.EventDetailsList.Add(new EventDetailModel()
                    {
                        Name = isArabic ? "رقم الدورية المدرجة" : "Assigned patrol code",
                        Value = assignedPatrol.PatrolCode
                    });
                }
            }
            sopViewModel.GetSOP(new SOPGeneralMessage
            {
                MessageId = Message.MessageId,
                GeneralType = SOPSources.WantedCar,
                OriginalObject = Message,
                NotificationId = Message.NotificationId
            });
        }