public async Task TryUpdate(Effect Effect, Action <Effect, string> onSuccess, Action <Exception, string> onFail, CascadingAppStateProvider state) { try { string status = ""; if (await _onlineState.IsOnline()) { EffectRequestUpdate req = new() { Effect = Effect }; EffectResponseUpdate ret = await _effectService.UpdateAsync(req); if (ret.Success) { Effect = ret.Effect; status = ret.Status; if (state.AppState.UseIndexedDB) { await _indexedDBManager.OpenDb(); await _indexedDBManager.ClearStore("Blobs"); } } else { throw new Exception(ret.Status); } } else { throw new Exception(RequestCodes.FIVE_ZERO_FOUR); } onSuccess(Effect, status); } catch (Exception e) { onFail(e, RequestCodes.FIVE_ZERO_ZERO); } }
public override async Task <EffectResponseUpdate> Update(EffectRequestUpdate request, ServerCallContext context) { var response = new EffectResponseUpdate(); try { Effect cacheEntry = await _manager.Update(request.Effect); Cache.Remove(_cache, "Effect."); var result = (await _manager.Get(x => x.Id == cacheEntry.Id)).FirstOrDefault(); if (result != null) { string cacheKey = "Effect.GetById::" + cacheEntry.Id.ToString(); var cacheEntryOptions = new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromSeconds(_cacheTimeInSeconds)); _cache.Set(cacheKey, cacheEntry, cacheEntryOptions); response.Effect = cacheEntry; response.Success = true; response.Status = RequestCodes.TWO_ZERO_ZERO + ", updated 1 row and then selected 1 row from " + Cache.Database; response.Error = ""; } else { response.Success = false; response.Status = RequestCodes.FIVE_ZERO_ONE; response.Error = "Could not find setting after adding it."; } } catch (Exception e) { response.Success = false; response.Status = RequestCodes.FIVE_ZERO_ZERO; response.Error = e.ToString(); } return(await Task.FromResult <EffectResponseUpdate>(response)); }