private void cache_ItemUpdate(object sender, AdminItemCache.UpdateEventArgs e)
        {
            if (e.Type == AdminItemCache.UpdateType.ModifyItem)
            {
                ListViewItem listViewItem = (from ListViewItem item in lstCustomers.Items
                                             let listContent = item.Content as CustomerAdminObject
                                             where listContent.ObjectId == e.ItemId
                                             select item).FirstOrDefault();

                CustomerAdminObject cacheContent =
                    cache.FirstOrDefault(customerAdminObject => customerAdminObject.ObjectId == e.ItemId);

                if (cacheContent != null)
                {
                    CustomerCache tempCache = cacheContent.Cache as CustomerCache;
                    cacheContent = new CustomerAdminObject(cacheContent.ObjectId);
                    cacheContent.Cache = tempCache;

                    if (cacheContent.GetValue(PropertyId.IsDeleted) == true.ToString())
                    {
                        lstCustomers.Items.Remove(listViewItem);
                        return;
                    }
                }

                if (listViewItem != null)
                {
                    listViewItem.Content = null;
                    listViewItem.Content = cacheContent;
                }
            }
        }
        public CustomerInfoPage(CustomerAdminObject customer)
        {
            InitializeComponent();
            if (customer != null)
            {
                _customer = customer;
            }
            else
            {
                _customer = CreateNewDefaultCustomerObject();
                CacheManager.AllCustomerCache.Add(_customer);
                _customer.Cache = CacheManager.AllCustomerCache;

            }

            LoadPanel(_customer);
        }
        public void LoadPanel(IAdminObject item)
        {
            var customer = item as CustomerAdminObject;
            if (customer == null)
            {
                return;
            }

            _customer = customer;

            LoadAllChildren(ContactCardGrid, item);

            addtionalContentControl.ListChanged += addtionalContentControl_ListChanged;

            Dictionary<VehicleCacheSearchKey, string> searchParam = new Dictionary<VehicleCacheSearchKey, string>();
            searchParam.Add(VehicleCacheSearchKey.CustomerId, item.GetValue(PropertyId.Id));

            VehicleCache cache = new VehicleCache(Settings.VehiclePath, searchParam);
            LstCustomerVehicles.SetContent(cache);
        }
        bool _parentTabControl_TabClosing()
        {
            MessageBoxResult result;
            if (_customer.GetValue(PropertyId.IsDeleted) == true.ToString())
            {
                return false;
            }

            bool requirementsMet = VerifyMinimumRequirements();
            if (!requirementsMet)
            {
                result = MessageBox.Show(Strings.PAGES_CUSTOMERINFOPAGE_MISSINGINFO_CONFIRMDELETE,
                Strings.PAGES_VEHICLEINFOPAGE_ERROR, MessageBoxButton.YesNo);

                if (result == MessageBoxResult.No)
                {
                    return true;
                }
                else
                {
                    DeleteCustomer();
                }
                return false;
            }

            CustomerAdminObject origionalCustomer = new CustomerAdminObject(_customer.ObjectId);

            bool same = _customer.Equals(origionalCustomer);

            if (same)
                return false;

            if (_customer.FileVersion == "0")
            {
                result = MessageBoxResult.Yes;
            }
            else
            {
                result = MessageBox.Show(Strings.PAGES_VEHICLEINFOPAGE_ONCLOSING_WARNING,
                    Strings.PAGES_VEHICLEINFOPAGE_ONCLOSING_WARNING_TITLE, MessageBoxButton.YesNoCancel);
            }

            if (result == MessageBoxResult.Yes)
            {
                bool successfulSave = _customer.Save(this);
                if (!successfulSave)
                {
                    MessageBox.Show(Strings.PAGES_CUSTOMERINFOPAGE_ONCLOSING_UNABLETOSAVE,
                                    Strings.ERROR, MessageBoxButton.OK);
                    return true;
                }
            }
            else if (result == MessageBoxResult.Cancel)
            {
                return true;
            }

            _customer.Cache.ModifyItem(_customer);

            return false;
        }
        private void BtnRefresh_Click(object sender, RoutedEventArgs e)
        {
            CustomerCache cache = _customer.Cache as CustomerCache;
            if (cache != null)
            {
                cache.Remove(_customer);
                _customer = new CustomerAdminObject(_customer.ObjectId);
                cache.Add(_customer);
                _customer.Cache = cache;
            }
            else
            {
                _customer = new CustomerAdminObject(_customer.ObjectId);
            }

            LoadPanel(_customer);
        }