/// <summary> /// Initialize new DogsFilter instance and set in state based on current active dog list /// </summary> /// <param name="dogListType"><see cref="DogListType"/> current active dog list type</param> public void NewDogFilter(DogListType dogListType) { var filter = new DogsFilter() { DogListType = dogListType, AgeRange = new AgeRange() { Start = 0, End = 30 }, WeightRange = new WeightRange() { Start = 0, End = 150 } }; // set in state switch (dogListType) { case DogListType.AllDogs: Filter = filter; break; case DogListType.Owners: OwnersDogFilter = filter; break; default: Filter = filter; break; } }
/// <summary> /// Calls WebApi to delete single dog by dog Id, refreshes doggos /// </summary> /// <param name="dogId">Dog Id <see cref="int"/></param> /// <param name="dogName">Current Username <see cref="string"/></param> /// <param name="dogListType"><see cref="DogListType"/> active dog list type</param> public async Task DeleteDog(int dogId, string dogName, DogListType dogListType) { HttpResponseMessage response = await _http.DeleteAsync($"api/Doggo/{dogId}"); if (response.IsSuccessStatusCode) { _notification.DisplayMessage(NotificationType.DogDeleted, dogName); // refresh all doggogs or owner's dogs and notify subscribers state has changed await GetDogsAndFilter( dogListType == DogListType.AllDogs? Filter : OwnersDogFilter ); NotifyStateChanged(); } else if (response.StatusCode == HttpStatusCode.Unauthorized) { // user unauthorized to make delete request (likely non-owner) _notification.DisplayMessage(NotificationType.DogDeleteUnauthorized, dogName); } else { // failure response _notification.DisplayMessage(NotificationType.DogDeleteError, dogName); } }