public async Task PostActivityReplyAsync(AniListActivity activity, int activityPosition, string text) { var postResp = await AniListService.PostActivityReply(activity.Id, text, default); postResp.Switch((IAniListError error) => { View.UpdateActivity(activityPosition, activity); View.DisplaySnackbarMessage("Error occurred while posting reply", Snackbar.LengthLong); }) .Switch(async reply => { var refreshResp = await AniListService.GetAniListActivityById(activity.Id, default); refreshResp.Switch((IAniListError error) => { View.UpdateActivity(activityPosition, activity); View.DisplaySnackbarMessage("Error occurred while refreshing activity", Snackbar.LengthLong); }) .Switch(activityResp => { View.UpdateActivity(activityPosition, activityResp); View.DisplaySnackbarMessage("Reply posted successfully", Snackbar.LengthShort); }); }); }
public async Task UpdateActivityAsync(AniListActivity activity, int activityPosition) { var activityResp = await AniListService.GetAniListActivityById(activity.Id, default); activityResp.Switch((IAniListError error) => View.DisplaySnackbarMessage("Error occurred while refreshing activity", Snackbar.LengthLong)) .Switch(updatedAct => View.UpdateActivity(activityPosition, updatedAct)); }