示例#1
0
        public async Task <GetLifeEventsResponseDto> GetItemsAsync(GetLifeEventsRequestDto request)
        {
            if (request == null)
            {
                throw new ArgumentNullException("LifeEventModel model GetLifeEventListRequest  is invalid");
            }

            var cacheKey   = GetCacheKey(request);
            var cacheValue = cacheStore.GetValue(cacheKey);

            if (cacheValue != null)
            {
                var cachedResponse = JsonConvert.DeserializeObject <GetLifeEventsResponseDto>(cacheValue);
                return(cachedResponse);
            }

            var response = new GetLifeEventsResponseDto();

            try
            {
                var lifeEvents = await lifeEventDao.GetItemsAsync(request.PageNo, request.PageSize).ConfigureAwait(false);

                response.LifeEvents = lifeEvents.Select(mapper.Map <LifeEventDto>).ToList();
            }
            catch (Exception e)
            {
                response.Messages.Add(new Message(e.Message));
            }

            var serializedResponse = JsonConvert.SerializeObject(response);

            cacheStore.SetValue(cacheKey, serializedResponse);

            return(response);
        }
示例#2
0
 public Task <GetLifeEventsResponseDto> Get([FromQuery] GetLifeEventsRequestDto request)
 {
     return(lifeEventApiClient.GetLifeEvents(request));
 }
        public async Task <GetLifeEventsResponseDto> Get([FromQuery] GetLifeEventsRequestDto request)
        {
            var resp = await lifeEventService.GetItemsAsync(request);

            return(resp);
        }
示例#4
0
 public Task <GetLifeEventsResponseDto> GetLifeEvents(GetLifeEventsRequestDto request)
 {
     return(GetAsync <GetLifeEventsResponseDto>($"/api/LifeEvent/", request));
 }
示例#5
0
 private static string GetCacheKey(GetLifeEventsRequestDto request)
 {
     return($"pageNo_{request.PageNo}_pageSize_{request.PageSize}");
 }