public async Task TryInsert(Event Event, Action <Event, string> onSuccess, Action <Exception, string> onFail, CascadingAppStateProvider state) { try { string status = ""; if (await _onlineState.IsOnline()) { EventRequestInsert req = new() { Event = Event }; EventResponseInsert ret = await _eventService.InsertAsync(req); if (ret.Success) { Event = ret.Event; 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(Event, status); } catch (Exception e) { onFail(e, RequestCodes.FIVE_ZERO_ZERO); } }
public override async Task <EventResponseInsert> Insert(EventRequestInsert request, ServerCallContext context) { var response = new EventResponseInsert(); try { Event cacheEntry = await _manager.Insert(request.Event); Cache.Remove(_cache, "Event."); var result = (await _manager.Get(x => x.Id == cacheEntry.Id)).FirstOrDefault(); if (result != null) { string cacheKey = "Event.GetById::" + cacheEntry.Id.ToString(); var cacheEntryOptions = new MemoryCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromSeconds(_cacheTimeInSeconds)); _cache.Set(cacheKey, cacheEntry, cacheEntryOptions); response.Event = cacheEntry; response.Success = true; response.Status = RequestCodes.TWO_ZERO_ZERO + ", inserted 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 <EventResponseInsert>(response)); }