public static void ReloadConfig(string tableName)
        {
            Console.WriteLine($"ReloadConfig: {tableName}");
            if (tableName != "all" && !Loads.ContainsKey(tableName))
            {
                return;
            }

            if (tableName == UsuallyDictionaryHelper.TableName)
            {
                UsuallyDictionaryHelper.LoadConfig();
                DataNameDictionaryHelper.LoadConfig();
            }
            else if (tableName == "all")
            {
                foreach (var action in Loads.Values)
                {
                    action();
                }
                //ClientManager.LoadConfig();
            }
            else
            {
                if (Loads.ContainsKey(tableName))
                {
                    Loads[tableName]();
                }
            }
        }
        public Result PutUsuallyDictionaryByScript([FromBody] List <UsuallyDictionary> usuallyDictionaries)
        {
            var scriptIds = usuallyDictionaries.GroupBy(x => x.ScriptId).Select(x => x.Key);

            if (scriptIds.Count() != 1)
            {
                return(Result.GenError <Result>(Error.ParamError));
            }

            var scriptId = scriptIds.First();
            var cnt      = ScriptVersionHelper.Instance.GetCountById(scriptId);

            if (cnt == 0)
            {
                return(Result.GenError <Result>(Error.ScriptVersionNotExist));
            }

            var createUserId = Request.GetIdentityInformation();
            var time         = DateTime.Now;
            var exist        = UsuallyDictionaryHelper.GetDetail(new List <int> {
                scriptId
            });
            //var exist = ServerConfig.ApiDb.Query<UsuallyDictionary>("SELECT * FROM `usually_dictionary` WHERE `MarkedDelete` = 0 AND ScriptId = @ScriptId;", new { ScriptId = scriptId });

            var exist_not0 = exist.Where(e => e.ScriptId != 0);
            var exist_0    = exist.Where(e => e.ScriptId == 0);
            var add        = usuallyDictionaries.Where(x => exist.All(y => y.Id != x.Id)).ToList();

            add.AddRange(usuallyDictionaries.Where(x => exist_0.Any(y => y.Id == x.Id && (y.VariableNameId != x.VariableNameId || y.DictionaryId != x.DictionaryId || y.VariableTypeId != x.VariableTypeId))));
            foreach (var usuallyDictionary in add)
            {
                usuallyDictionary.CreateUserId   = createUserId;
                usuallyDictionary.MarkedDateTime = time;
            }
            if (add.Any())
            {
                UsuallyDictionaryHelper.Instance.Add(add);
            }

            var update = usuallyDictionaries.Where(x => !exist_0.Any(y => y.Id != x.Id && y.VariableNameId == x.VariableNameId && y.DictionaryId == x.DictionaryId && y.VariableTypeId == x.VariableTypeId) &&
                                                   exist_not0.Any(y => y.Id == x.Id && (y.VariableNameId != x.VariableNameId || y.DictionaryId != x.DictionaryId || y.VariableTypeId != x.VariableTypeId))).ToList();

            foreach (var usuallyDictionary in update)
            {
                usuallyDictionary.MarkedDateTime = time;
            }
            if (update.Any())
            {
                UsuallyDictionaryHelper.Instance.Update <UsuallyDictionary>(update);
            }

            var del = usuallyDictionaries.Where(x => exist_0.Any(y => y.Id != x.Id && y.VariableNameId == x.VariableNameId && y.DictionaryId == x.DictionaryId && y.VariableTypeId == x.VariableTypeId)).ToList();

            if (del.Any())
            {
                UsuallyDictionaryHelper.Instance.Delete(del.Select(x => x.Id));
            }
            RedisHelper.PublishToTable(UsuallyDictionaryHelper.Instance.Table);
            return(Result.GenError <Result>(Error.Success));
        }
Esempio n. 3
0
        public DataResult GetUsuallyDictionaryTypeDevice([FromQuery] int deviceId)
        {
            var device =
                DeviceHelper.Instance.Get <Device>(deviceId);

            if (device == null)
            {
                return(Result.GenError <DataResult>(Error.DeviceNotExist));
            }

            var usuallyDictionaries = UsuallyDictionaryHelper.GetUsuallyDictionaryDetails(new List <int> {
                device.ScriptId
            }, null, new List <int> {
                1
            });
            var result = new DataResult();

            result.datas.AddRange(usuallyDictionaries);
            return(result);
        }
        public DataResult GetUsuallyDictionary([FromQuery] int qId, int sId)
        {
            var cnt = ScriptVersionHelper.Instance.GetCountById(sId);

            if (cnt == 0)
            {
                return(Result.GenError <DataResult>(Error.ScriptVersionNotExist));
            }
            var result = new DataResult();

            if (qId != 0)
            {
                result.datas.AddRange(UsuallyDictionaryHelper.GetMenu(qId));
            }
            else if (sId != 0)
            {
                result.datas.AddRange(UsuallyDictionaryHelper.GetUsuallyDictionaryDetails(new List <int> {
                    sId
                }));
            }

            return(result);
        }