public async Task TryUpdate(Meta meta, Action <Meta, string> onSuccess, Action <Exception, string> onFail, CascadingAppStateProvider state) { try { string status = ""; if (await _onlineState.IsOnline()) { MetaRequestUpdate req = new() { Meta = meta }; MetaResponseUpdate ret = await _metaService.UpdateAsync(req); if (ret.Success) { meta = ret.Meta; 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(meta, status); } catch (Exception e) { onFail(e, RequestCodes.FIVE_ZERO_ZERO); } }
public override async Task <MetaResponseUpdate> Update(MetaRequestUpdate request, ServerCallContext context) { var response = new MetaResponseUpdate(); try { Meta cacheEntry = await _manager.Update(request.Meta); Cache.Remove(_cache, "Meta."); var result = (await _manager.Get(x => x.Id == cacheEntry.Id)).FirstOrDefault(); if (result != null) { string cacheKey = "Meta.GetById::" + cacheEntry.Id.ToString(); var cacheEntryOptions = new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromSeconds(_cacheTimeInSeconds)); _cache.Set(cacheKey, cacheEntry, cacheEntryOptions); response.Meta = 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 <MetaResponseUpdate>(response)); }