private void AddLocations()
        {
            if (CurrentGroupItem == null)
            {
                return;
            }
            // TODO - Should this not signify a FORCED CHANGE on the GroupItem itself?
            // - that is ...it has been modified by this user.
            CurrentGroupItem.ChangedBy = DB.OracleSession.UserName;
            foreach (ClientLocation clientLoc in SelectedNALocations)
            {
                //ExtClientTarget.UpdateByGrpId(clientLoc, CurrentGroupItem.InvoiceGrpId);
                clientLoc.DefaultInvoiceGrpID = CurrentGroupItem.InvoiceGrpId;
                ExtClientTarget.Update(clientLoc);
                //          this.ClientLocations.Add(clientLoc);
                //          NotAssignedLocations.Remove(clientLoc);
            }

            //bool bWasRemoved = false;
            while (SelectedNALocations.Count > 0)
            {
                //bWasRemoved = true;
                NotAssignedLocations.Remove(SelectedNALocations[0]);
            }
            //if(bWasRemoved)
            //    NotAssignedLocations = ExtClientTarget.FetchLocations(0, false);
            SetItemDetails();

            PopSwitch = false;
        }
        private void UnassignLocations()
        {
            foreach (ClientLocation location in SelectedClientLocations)
            {
                //ClientLocation copy = location.Clone();
                ExtClientTarget.UnassignLocation(location);
                location.DefaultInvoiceGrpID = null;
                NotAssignedLocations.Add(location);
                //NotAssignedLocations.
            }

            // Slow sorter :(

            //List<ClientLocation> myList = new List<ClientLocation>(NotAssignedLocations);
            List <ClientLocation> myList = NotAssignedLocations.ToList();

            myList.Sort((a, b) => String.Compare(a.Description, b.Description));
            NotAssignedLocations = new ObservableCollection <ClientLocation>(myList);

            SetItemDetails();
        }