/// <summary>
 /// Adds a dog to the owned Dogs List
 /// </summary>
 public void AddDogToList()
 {
     if (OwnedDogs.Count > 0)
     {
         if (AvailableDogs.Any(ad => AvailableSelectedDog.Id != ad.Id))
         {
             OwnedDogs.Add(AvailableSelectedDog);
             NotifyOfPropertyChange(() => OwnedDogs);
         }
         else
         {
             ErrorMessages.DogAlreadCustomerRelationError();
             return;
         }
     }
     else
     {
         OwnedDogs.Add(AvailableSelectedDog);
         NotifyOfPropertyChange(() => OwnedDogs);
     }
     if (AvailableSelectedDog.CustomerList == null)
     {
         AvailableSelectedDog.CustomerList = new List <CustomerModel>();
     }
     AvailableSelectedDog.CustomerList.Add(CModel);
     GlobalConfig.Connection.AddDogToCustomer(AvailableSelectedDog, CModel);
     GlobalConfig.Connection.GetAllCustomerForDog(AvailableSelectedDog);
     AvailableSelectedDog = null;
     SelectedDog          = null;
     IsDogToSave          = true;
 }
 /// <summary>
 /// Handle Message from the eventaggregator.
 /// </summary>
 /// <param name="dogModel">
 /// recieves a complete DogModel from the CreateNewDogViewModel
 /// </param>
 public void Handle(DogModel dogModel)
 {
     if (!string.IsNullOrWhiteSpace(dogModel.Name))
     {
         OwnedDogs.Add(dogModel);
         DogCreated = true;
     }
     DogListsIsVisible     = true;
     CreateNewDogIsVisible = false;
     this.TryClose();
 }
 /// <summary>
 /// Delete the Dog from the Customer and sets the dog inactive
 /// </summary>
 public void RemoveDogFromList()
 {
     if (SelectedDog.CustomerList.Count > 1)
     {
         GlobalConfig.Connection.DeleteDogToCustomerRelation(CModel, SelectedDog);
         GlobalConfig.Connection.GetAllCustomerForDog(SelectedDog);
         SelectedDog.CustomerList.Remove(CModel);
         OwnedDogs.Remove(SelectedDog);
         NotifyOfPropertyChange(() => OwnedDogs);
         NotifyOfPropertyChange(() => AvailableDogs);
         IsDogRemoveToSave = true;
     }
     else
     {
         ErrorMessages.DogCanNotRemovedFromCustomerError(SelectedDog);
     }
     AvailableSelectedDog = null;
     SelectedDog          = null;
 }
 /// <summary>
 /// Removes the Selected item from the customer owned dogs list.
 /// </summary>
 public void RemoveDogFromList()
 {
     if (SelectedDogToRemove.Id > 0)
     {
         if (SelectedDogToRemove.CustomerList.Count > 1)
         {
             AvailableDogs.Add(SelectedDogToRemove);
             NotifyOfPropertyChange(() => AvailableDogs);
             OwnedDogs.Remove(SelectedDogToRemove);
             NotifyOfPropertyChange(() => OwnedDogs);
         }
         else
         {
             ErrorMessages.DogToRemoveError(SelectedDogToRemove);
         }
     }
     else
     {
         OwnedDogs.Remove(SelectedDogToRemove);
         NotifyOfPropertyChange(() => OwnedDogs);
     }
 }
 /// <summary>
 /// Updates the already existing DogModel
 /// </summary>
 /// <param name="dogModel"></param>
 public void Handle(DogModel dogModel)
 {
     if (dogModel.Id > 0)
     {
         GlobalConfig.Connection.UpdateDog(dogModel);
         AvailableDogs = new BindableCollection <DogModel>(GlobalConfig.Connection.Get_DogsAll());
         //TODO: Renew the OwnedDogList
         _isDogToSave = true;
         NotifyOfPropertyChange(() => OwnedDogs);
         NotifyOfPropertyChange(() => AvailableDogs);
     }
     else
     {
         if (!string.IsNullOrWhiteSpace(dogModel.Name))
         {
             if (dogModel.CustomerList == null)
             {
                 dogModel.CustomerList = new List <CustomerModel>();
             }
             dogModel.CustomerList.Add(CModel);
             GlobalConfig.Connection.AddDog(dogModel, CModel);
             GlobalConfig.Connection.GetAllCustomerForDog(dogModel);
             AvailableDogs = new BindableCollection <DogModel>(GlobalConfig.Connection.Get_DogsAll());
             OwnedDogs.Add(dogModel);
             AvailableSelectedDog = null;
             SelectedDog          = null;
             _isDogToSave         = true;
             NotifyOfPropertyChange(() => CanSaveCustomer);
             NotifyOfPropertyChange(() => OwnedDogs);
             NotifyOfPropertyChange(() => AvailableDogs);
         }
     }
     CustomerDetailsIsVisible = true;
     AddDogIsVisible          = false;
     EditDogIsVisible         = false;
 }
 /// <summary>
 /// Adds the selected dog to the owned customer list
 /// </summary>
 public void AddDogToList()
 {
     OwnedDogs.Add(SelectedDog);
     AvailableDogs.Remove(SelectedDog);
 }