Beispiel #1
0
        /// <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;
            }
        }
Beispiel #2
0
        /// <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);
            }
        }