public static StocksState OnSaveStock(StocksState state, StockSaveAction action) { return(state with { Submitted = false, Submitting = true, StockButtonText = "Create", ShowInputDialog = false, StockEditMode = false }); }
public async Task SaveStock(StockSaveAction action, IDispatcher dispatcher) { var selectedGreenBean = action.GreenBean; if (action.GreenBean.Id == 0) { var result = await _httpClient.PostAsJsonAsync("api/greenbeaninfo", action.GreenBean); if (!result.IsSuccessStatusCode) { dispatcher.Dispatch(new StockCreateFailureAction(result.ReasonPhrase)); return; } var greenbeans = await _httpClient.GetFromJsonAsync <CoffeeRoastManagement.Shared.Entities.GreenBeanInfo[]>("api/greenbeaninfo"); selectedGreenBean = greenbeans.FirstOrDefault(x => x.Name == action.GreenBean.Name); } if (action.Stock.Id == 0) { action.Stock.SellerContact = action.Contact; action.Stock.GreenBeanInfo = selectedGreenBean; var result = await _httpClient.PostAsJsonAsync("api/stock", action.Stock); if (!result.IsSuccessStatusCode) { dispatcher.Dispatch(new StockCreateFailureAction(result.ReasonPhrase)); } else { dispatcher.Dispatch(new StockCreateSuccessAction()); } } else { action.Stock.SellerContact = action.Contact; action.Stock.GreenBeanInfo = action.GreenBean; var result = await _httpClient.PutAsJsonAsync("api/stock", action.Stock); if (!result.IsSuccessStatusCode) { dispatcher.Dispatch(new StockUpdateFailureAction(result.ReasonPhrase)); } else { dispatcher.Dispatch(new StockUpdateSuccessAction()); } } dispatcher.Dispatch(new StocksLoadAction()); dispatcher.Dispatch(new GreenBeansLoadAction()); }