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