private static async Task <SpeakerResults> GetSpeakerById(string speakerID) { APIService srv = new APIService(); SessionModel model = new SessionModel(); Dictionary <string, string> p = new Dictionary <string, string>(); p.Add("id", string.Format("'{0}'", speakerID)); model.CommandModel.SessionToken = await App.GetUsersSession(); model.CommandModel.ServiceName = "Speaker"; model.CommandModel.Action = "GetById"; model.CommandModel.Parameters = p; SpeakerResults result = null; var cache = BlobCache.UserAccount; var cachedSpeakerPromise = cache.GetAndFetchLatest( speakerID, () => srv.GetSpeakerById(model.CommandModel), offset => { TimeSpan elapsed = DateTimeOffset.Now - offset; return(elapsed > new TimeSpan(hours: 0, minutes: 10, seconds: 0)); }); cachedSpeakerPromise.Subscribe(subscribedSpeaker => { result = subscribedSpeaker; }); result = await cachedSpeakerPromise.FirstOrDefaultAsync(); return(result); }
public static async Task <Speakers> LoadSpeaker(string speakerID) { try { SpeakerResults _speakers = await GetSpeakerById(speakerID); if (_speakers.Status == "OK" && _speakers.Data != null) { return(_speakers.Data); } } catch (Exception ex) { throw ex; } return(null); }