public DeviceSimulatorViewModel(IDeviceSimulatorService deviceSimulatorService, 
                                        SimDeviceViewModel simDeviceViewModel,
                                        HeaderDevicesSimulatorViewModel addDevicesSimulatorNameViewModel,
                                        LoadDeviceSimulatorViewModel loadDeviceSimulatorViewModel)
        {
            _deviceSimulatorService = deviceSimulatorService;
            _selectedSimDevice = simDeviceViewModel;
            _headerDevicesSimulatorViewModel = addDevicesSimulatorNameViewModel;
            _loadDeviceSimulatorViewModel = loadDeviceSimulatorViewModel;

            //Default Add device win
            _headerDevicesSimulatorViewModel.Qty = 10;
            _headerDevicesSimulatorViewModel.QtyXml = 5;
            _headerDevicesSimulatorViewModel.SendTime = 2;

            //_simDeviceList = simDeviceList;
            _simDeviceList = new ObservableCollection<SimDeviceViewModel>();
            //Load default all data
            //_simDeviceList = _deviceSimulatorService.LoadAllSimDeviceViewModel();

            _statusWorkingList = deviceSimulatorService.GetAllStatusWorking();
            
            //Set pic control
            IconStartProperty = "Start-Disabled-icon.png";
            IconPauseProperty = "Pause-Disabled-icon.png";
            IconStopProperty = "Stop-Disabled-icon.png";
            StartText = "Start";

            SendCommand = new RelayCommand(Send, new Func<bool>(() =>
            {
                if (SelectedSimDevice == null) return false;
                return !string.IsNullOrEmpty(SelectedSimDevice.Imei);
            }));
        }
 static HeaderDevicesSimulatorViewModel()
 {
     if (_originalValue == null)
     {
         _originalValue = new HeaderDevicesSimulatorViewModel
             {
                 isOK = false,
                 ID = 0,
                 HeadName = "",
                 Status = 0
             };
     }
 }
        public int SaveChangeSimDevices(ObservableCollection<SimDeviceViewModel> simDeviceViewModel, HeaderDevicesSimulatorViewModel headerDevicesSimulatorViewModel)
        {
            int result = 0;
            try
            {
                if (_header != null)
                {
                    if (headerDevicesSimulatorViewModel != null)
                    {
                        _header.Description = headerDevicesSimulatorViewModel.HeadName;
                        _header.Status = headerDevicesSimulatorViewModel.Status;
                                                
                        foreach (var itmChange in simDeviceViewModel)
                        {
                            if (itmChange.Id != 0)
                            {
                                var oldSim = _header.GetByChildId(itmChange.Id);
                                if (oldSim != null)
                                {
                                    oldSim.Description = itmChange.Description;

                                    oldSim.SendComplete = itmChange.SendComplete;
                                    oldSim.SendTime = itmChange.SendTime;
                                    oldSim.SendTotal = itmChange.SendTotal;
                                    oldSim.Status = itmChange.Status;
                                }

                                _session.Update(oldSim);
                                _session.Flush();
                            }

                        }
                        result = _header.Id;
                    }
                    else
                    {
                        result = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                result = 0;
            }
            return result;
        }
        public int SaveCreateSimDevices(ObservableCollection<SimDeviceViewModel> simDeviceViewModel, HeaderDevicesSimulatorViewModel headerDevicesSimulatorViewModel)
        {
            int result = 0;
            try
            {
                DeviceSimulator deviceSimulator = new DeviceSimulator();
                deviceSimulator.Description = headerDevicesSimulatorViewModel.HeadName;
                deviceSimulator.Status = headerDevicesSimulatorViewModel.Status;

                foreach (var item in simDeviceViewModel)
                {
                    deviceSimulator.AddSimDevice(new SimDevice
                    {
                        Imei = item.Imei,
                        Description = item.Description,
                        Status = item.Status,
                        SendComplete = item.SendComplete,
                        SendTotal = item.SendTotal,
                        SendTime = item.SendTime
                    });
                }

                _session.SaveOrUpdate(deviceSimulator);
                result = deviceSimulator.Id;
            }
            catch (Exception ex)
            {
                result = 0;
            }
            return result;
        }
 public int SaveSimDevices(ObservableCollection<SimDeviceViewModel> simDeviceViewModel, HeaderDevicesSimulatorViewModel headerDevicesSimulatorViewModel)
 {
     int result = 0;
     try
     {
         if (headerDevicesSimulatorViewModel.ID == 0)
         {
             return SaveCreateSimDevices(simDeviceViewModel, headerDevicesSimulatorViewModel);
         }
         else
         {
             return SaveChangeSimDevices(simDeviceViewModel, headerDevicesSimulatorViewModel);
         }                
     }
     catch (Exception ex)
     {
         result = 0;
     }
     return result;
 }
 public bool SaveSimDevices(ObservableCollection<SimDeviceViewModel> simDeviceViewModel, HeaderDevicesSimulatorViewModel headerDevicesSimulatorViewModel)
 {
     throw new NotImplementedException();
 }
 int IDeviceSimulatorService.SaveChangeSimDevices(ObservableCollection<SimDeviceViewModel> simDeviceViewModel, HeaderDevicesSimulatorViewModel headerDevicesSimulatorViewModel)
 {
     throw new NotImplementedException();
 }