Example #1
0
        public async Task <ResponseWrapper <string> > GetConfig(ConfigRequest request)
        {
            var response = new ResponseWrapper <string>();

            if (string.IsNullOrWhiteSpace(request.AppId) || string.IsNullOrWhiteSpace(request.EnvId) || string.IsNullOrWhiteSpace(request.Version) || !request.Type.HasValue || string.IsNullOrWhiteSpace(request.ConfigName))
            {
                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, null, null);

                    var responseList = PackList(list);
                    DisconfigCache.Set(request.AppId + request.Version + request.EnvId, responseList);
                    response.Result = GetConfigValue(responseList, request.Type, request.ConfigName);
                }
                else
                {
                    response.Result = GetConfigValue((Dictionary <int, Dictionary <string, string> >)configsCache, request.Type, request.ConfigName);
                }
            }
            return(response);
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="templateId"></param>
        /// <param name="value"></param>
        /// <param name="version"></param>
        /// <param name="name"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public async Task <JsonResult> UpdateConfig(long?templateId, string value, string version, string name, int type)
        {
            var result = new QueryResult <long>();

            if (!templateId.HasValue)
            {
                result.IsSuccess = false;
                result.ErrorMsg  = "错误,请重新进入编辑页面";
            }
            else
            {
                var log       = new OperationLog();
                var condition = new ConfigCondition
                {
                    EnvId      = EnvId,
                    TemplateId = templateId
                };

                value = value == null ? string.Empty : value.Trim();
                var list = await _configService.GetList(condition);

                if (list != null && list.ToList().Count > 0)
                {
                    var obj = list.FirstOrDefault();
                    obj.Value        = value;
                    log.Content      = "更新配置 请求内容:更新" + obj.Value + "变更为" + value;
                    obj.Mtime        = DateTime.Now;
                    result.IsSuccess = await _configService.Update(obj);

                    DisconfigCache.UpdateCache(AppId + version + EnvId, value, type, name);
                }
                else
                {
                    var obj = new Configs
                    {
                        TemplateId = templateId.Value,
                        EnvId      = EnvId,
                        Value      = value
                    };
                    log.Content      = "启用配置 请求内容:启用;" + value;
                    result.IsSuccess = await _configService.Insert(obj);

                    DisconfigCache.AddCache(AppId + version + EnvId, value, type, name);
                }
                ConfigLog(log);
                result.Data = EnvId;
                var appName = await _appService.GetAppNameById(AppId);

                var envName = await _envService.GetEnvNameById(EnvId);

                var path = DisconfWatcher.GetPath(name, appName, version, envName, type);
                DisconfWatcher.AddOrSetData(path);
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public async Task <JsonResult> Delete(long id)
        {
            var config = await _configService.Get(id);

            var tem = await _templateService.Get(config.TemplateId);

            DisconfigCache.DeleteCache(AppId + tem.Version + EnvId, tem.Type, tem.Name);
            var log = new OperationLog();

            log.Content = "删除配置 请求内容:删除;" + config.Value;
            ConfigLog(log);
            return(Json(await _configService.Delete(id), JsonRequestBehavior.AllowGet));
        }