private async Task Refresh()
        {
            await Task.Run(() =>
            {
                try
                {
                    using (var dp = SimpleIoc.Default.GetInstance <IUnitOfWorkFactory>().CreateUnitOfWork())
                    {
                        var repo = dp.SettingsRepository;
                        System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>
                        {
                            AvailableTrucks.Clear();
                            foreach (var t in dp.TruckRepository.GetAll().OrderBy(t => t.Name))
                            {
                                AvailableTrucks.Add(new ComboBoxItemViewModel {
                                    ID = t.Id, DisplayText = t.Name
                                });
                            }
                            var truckIDSetting = repo.FindSingle(x => x.Key == TruckClientSettingKeys.TRUCK_ID);
                            if (truckIDSetting != null)
                            {
                                var truck = dp.TruckRepository.GetById(truckIDSetting.Value);

                                if (truck != null)
                                {
                                    Truck = AvailableTrucks.SingleOrDefault(t => t.ID == truck.Id);
                                }
                                else
                                {
                                    Truck = null;
                                }
                            }
                        }));
                    }
                }
                catch (Exception exc)
                {
                    Logging.Logger.Log(exc);
                }
            });
        }