public async Task SaveContact(ContactsSaveAction action, IDispatcher dispatcher)
        {
            if (action.Contact.Id == 0)
            {
                var result = await _httpClient.PostAsJsonAsync("api/contact", action.Contact);

                if (!result.IsSuccessStatusCode)
                {
                    dispatcher.Dispatch(new ContactCreateFailureAction(result.ReasonPhrase));
                }
                else
                {
                    dispatcher.Dispatch(new ContactCreateSuccessAction());
                }
            }
            else
            {
                var result = await _httpClient.PutAsJsonAsync("api/contact", action.Contact);

                if (!result.IsSuccessStatusCode)
                {
                    dispatcher.Dispatch(new ContactUpdateFailureAction(result.ReasonPhrase));
                }
                else
                {
                    dispatcher.Dispatch(new ContactUpdateSuccessAction());
                }
            }
            dispatcher.Dispatch(new ContactsLoadAction());
        }
 public static ContactsState OnSaveContact(ContactsState state, ContactsSaveAction action)
 {
     return(state with
     {
         Submitted = false,
         Submitting = true,
         CurrentContact = new CoffeeRoastManagement.Shared.Entities.Contact(),
         ContactButtonText = "Create",
         ShowInputDialog = false,
         ContactEditMode = false
     });
 }