public async Task <ResponseWrapper <Dictionary <int, Dictionary <string, string> > > > GetConfigs(ConfigRequest request) { var response = new ResponseWrapper <Dictionary <int, Dictionary <string, string> > >(); if (string.IsNullOrWhiteSpace(request.AppId) || string.IsNullOrWhiteSpace(request.EnvId) || string.IsNullOrWhiteSpace(request.Version)) { response.Error = new ErrorResponse(); } else { var configsCache = DisconfigCache.Get(request.AppId + request.Version + request.EnvId); if (configsCache == null) { var list = await _configRepository.GetConfigs(request.AppId, request.Version, request.EnvId, request.Type, request.ConfigName); var responseList = PackList(list); response.Result = responseList; DisconfigCache.Set(request.AppId + request.Version + request.EnvId, responseList); } else { response.Result = (Dictionary <int, Dictionary <string, string> >)configsCache; } } return(response); }