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