public static List <TCAModule> GetAllModules(object obj)
        {
            var AllModules = new List <TCAModule>();

            foreach (var fi in TCAModulesDatabase.GetAllModuleFields(obj.GetType()))
            {
                var module = fi.GetValue(obj) as TCAModule;
                if (module != null)
                {
                    AllModules.Add(module);
                }
            }
            return(AllModules);
        }
        public static void ResetModuleFields(object obj)
        {
            var ModuleFields = TCAModulesDatabase.GetAllModuleFields(obj.GetType());

            ModuleFields.ForEach(fi => fi.SetValue(obj, null));
        }
        public void InitModuleFields(object obj)
        {
            var ModuleFields = TCAModulesDatabase.GetAllModuleFields(obj.GetType());

            ModuleFields.ForEach(fi => fi.SetValue(obj, GetModule(fi.FieldType)));
        }