public async Task TryDelete(int id, Action <string> onSuccess, Action <Exception, string> onFail, CascadingAppStateProvider state) { try { if (state.AppState.UseIndexedDB) { if (await _onlineState.IsOnline()) { UserRequestDelete req = new() { Id = id }; UserResponseDelete ret = await _userService.DeleteAsync(req); if (!ret.Success) { onFail(new Exception(RequestCodes.FIVE_ZERO_THREE), ret.Status); return; } await _indexedDBManager.OpenDb(); await _indexedDBManager.ClearStore("Blobs"); onSuccess(ret.Status); return; } else { onFail(new Exception(RequestCodes.FIVE_ZERO_FOUR), " Could Not Delete, Please Try Again Later"); return; } } else if (await _onlineState.IsOnline()) { UserRequestDelete req = new() { Id = id }; UserResponseDelete ret = await _userService.DeleteAsync(req); if (!ret.Success) { onFail(new Exception(RequestCodes.FIVE_ZERO_THREE), ret.Status); return; } onSuccess(ret.Status); return; } } catch (Exception e) { onFail(e, RequestCodes.FIVE_ZERO_ZERO); } }
public override async Task <UserResponseDelete> Delete(UserRequestDelete request, ServerCallContext context) { var response = new UserResponseDelete(); try { var list = await _manager.Get(x => x.Id == request.Id); if (list != null) { var first = list.First(); var success = await _manager.Delete(first); if (success) { Cache.Remove(_cache, "User."); response.Success = true; response.Status = RequestCodes.TWO_ZERO_ZERO + ", deleted 1 row"; response.Error = ""; } else { response.Success = false; response.Status = RequestCodes.FIVE_ZERO_TWO; response.Error = "Delete did not work"; } } else { response.Success = false; response.Status = RequestCodes.FIVE_ZERO_ZERO; response.Error = "Could not find User for deletion"; } } catch (Exception e) { response.Success = false; response.Status = RequestCodes.FIVE_ZERO_ZERO; response.Error = e.ToString(); } return(await Task.FromResult <UserResponseDelete>(response)); }