protected async Task Save() { switch ((EditDataType)Datatype) { case EditDataType.CoreData: if (CreationMode) { await CoreDataItemsService.CreateItemAsync((CoreDataItem)Item); } else { await CoreDataItemsService.SaveChangesAsync(); } NavigationManager.NavigateTo("/coredata"); break; case EditDataType.ShoppingList: if (CreationMode) { ShoppingListItem shoppingListItem = (ShoppingListItem)Item; shoppingListItem.CreationTimeStamp = DateTimeOffset.UtcNow; await ShoppingListItemsService.CreateOrMergeItemAsync(shoppingListItem); } else { await ShoppingListItemsService.SaveChangesAsync(); } NavigationManager.NavigateTo("/shoppinglist"); break; default: break; } }
protected override async Task OnParametersSetAsync() { try { CreationMode = Id == default; if (!Datatype.HasValue) { LoadFailed = true; return; } switch ((EditDataType)Datatype) { case EditDataType.CoreData: Item = CreationMode ? new CoreDataItem() : await CoreDataItemsService.GetItemAsync(Id); break; case EditDataType.ShoppingList: Item = CreationMode ? new ShoppingListItem() { // We need to set the ownerId here so the model can be valid before the save button is pressed OwnerId = await GetUserId() } : await ShoppingListItemsService.GetItemAsync(Id); break; default: LoadFailed = true; return; } } catch (Exception) { LoadFailed = true; } }