Example #1
0
        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);
        }
Example #2
0
        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);
        }