public async Task SetAsync(MongoStrategyParams strategyParams, ConfigCondition entity)
        {
            var database   = strategyParams.Database;
            var collection = strategyParams.Collection;

            await RemoveAsync(strategyParams);

            await MongoClient.GetDatabase(database).GetCollection <ConfigCondition>(collection).InsertOneAsync(entity);
        }
Пример #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));
        }
Пример #3
0
        public async Task <JsonResult> GetConfigByTemplateId(long templateId)
        {
            var condition = new ConfigCondition
            {
                TemplateId = templateId,
                EnvId      = EnvId
            };
            var list = await _configService.GetList(condition);

            var model = list.FirstOrDefault();

            return(Json(model, JsonRequestBehavior.AllowGet));
        }
Пример #4
0
        public ActionResult <List <ConfigCondition> > FakeCondition([FromQuery] int number)
        {
            var conditions = new List <ConfigCondition>();

            for (int i = 0; i < number; i++)
            {
                var fake   = new DefinedCondition().Fake();
                var config = new ConfigCondition {
                    Key = i.ToString(), Defined = fake
                };
                conditions.Add(config);
            }
            return(Ok(conditions));
        }
Пример #5
0
        public async Task <IEnumerable <Configs> > GetList(ConfigCondition condition)
        {
            var pg = new PredicateGroup {
                Operator = GroupOperator.And, Predicates = new List <IPredicate>()
            };

            if (condition.TemplateId.HasValue)
            {
                pg.Predicates.Add(Predicates.Field <Configs>(l => l.TemplateId, Operator.Eq, condition.TemplateId.Value));
            }
            if (condition.EnvId.HasValue)
            {
                pg.Predicates.Add(Predicates.Field <Configs>(l => l.EnvId, Operator.Eq, condition.EnvId.Value));
            }
            return(await _configRepository.GetListWithCondition <Configs>(pg));
        }
        public async Task SetAsync(RedisStrategyParams strategyParams, ConfigCondition entity)
        {
            var condits = await _configConditsStrategy.GetAsync(strategyParams);

            var condit = condits.Where(c => c.Key == entity.Key).SingleOrDefault();

            if (condit is null)
            {
                condits.Add(entity);
            }
            else
            {
                condit.Defined = entity.Defined;
            }
            await _configConditsStrategy.SetAsync(strategyParams, condits);
        }
Пример #7
0
        public async Task <JsonResult> Delete(long id)
        {
            var condition = new ConfigCondition
            {
                TemplateId = id
            };
            var list = await _configService.GetList(condition);

            if (list != null && list.Count() > 0)
            {
                return(Json(false, JsonRequestBehavior.AllowGet));
            }
            else
            {
                return(Json(await _templateService.Delete(id), JsonRequestBehavior.AllowGet));
            }
        }