public static void ReloadModules() { var modules = DataHelpers.GetMongoDataSync("ModuleErp") as IEnumerable <ModuleErp>; DataHelpers.Modules = modules as IEnumerable <ModuleErp>; var collections = modules.Select(z => z.Libelle).ToList(); string nspace = "ErpAlgerie.Modules.CRM"; var q = from t in Assembly.GetExecutingAssembly().GetTypes() where t.IsClass && t.Namespace == nspace && (t.IsSubclassOf(typeof(ExtendedDocument)) && !typeof(NoModule).IsAssignableFrom(t)) select t; q.ToList().ForEach(t => { try { Console.Write(t.Name); var instance = Activator.CreateInstance(t); var collection = t.GetProperty("CollectionName").GetValue(instance)?.ToString(); if (!collections.Contains(collection)) { var moduleName = t.GetProperty("ModuleName").GetValue(instance)?.ToString(); var iconName = t.GetProperty("IconName").GetValue(instance)?.ToString(); var showInDesktop = t.GetProperty("ShowInDesktop").GetValue(instance) as bool?; var isInstance = bool.Parse(t.GetProperty("IsInstance").GetValue(instance)?.ToString()); if (!string.IsNullOrWhiteSpace(moduleName)) { Console.Write("EXIT"); } var moduleErp = new ModuleErp(); moduleErp.Libelle = collection; moduleErp.EstAcceRapide = showInDesktop.Value; moduleErp.ClassName = $"{nspace}.{t.Name}"; moduleErp.GroupeModule = moduleName; moduleErp.ModuleIcon = iconName; moduleErp.ModuleSubmitable = (instance as ExtendedDocument).Submitable; moduleErp.IsInstanceModule = isInstance; moduleErp.Save(); } } catch (Exception s) { Console.WriteLine("ERROR\n"); Console.WriteLine(s.Message); } } ); modules = DataHelpers.GetMongoDataSync("ModuleErp") as IEnumerable <ModuleErp>; DataHelpers.Modules = modules; }
public static void CreateSeries(ModuleErp module, long currentIndex, bool createAnyway = false) { if (!module.HasSeries && createAnyway == false) { return; } var serie = new SeriesName(); serie.Libelle = _(module.Name); string suffix = ""; string libelle = module.Libelle; var trim = libelle.Split(' '); if (trim.Length == 1) { var word = trim.FirstOrDefault(); suffix += word.Substring(0, 2).ToUpper(); } else { foreach (var item in trim) { if (item.Length > 2) { var firstCharcter = new string(item.Take(1).ToArray()); suffix += firstCharcter.ToUpper(); } } } serie.Sufix = suffix + "-########"; serie.Indexe = currentIndex++; serie.ForceIgniorValidatUnique = true; serie.Save(); // module.SeriesNames = new List<SeriesName>(); module.SeriesNames.Add(serie); if (module.SeriesDefault.IsValide() == false) { module.SeriesDefault = serie.Id; } module.ForceIgniorValidatUnique = true; module.Save(); }
public static void UpdateModules(bool DoUpdate = true) { var users = DS.db.GetAll <User>(); var modules = DS.db.GetAll <ModuleErp>(); DataHelpers.Modules = modules as IEnumerable <ModuleErp>; if (DoUpdate == false) { //check in db if (modules?.Count() < 1) { DoUpdate = true; } } // deleteAll Modules if (!DoUpdate) { return; } foreach (var module in modules) { (module).Delete(false); } //Ovresko.Generix.Core.Modules. string nspace = "Ovresko.Generix.Core.Modules"; string plugins = "Ovresko.Generix.Extentions"; var asm = AppDomain.CurrentDomain.GetAssemblies(); var types = asm.SelectMany(a => a.GetTypes()); var pluginsType = types.Where(a => a.Namespace == plugins); var pluginsCore = types.Where(a => a.Namespace == nspace); var result = new List <Type>(); result.AddRange(pluginsType); var names = result.Select(a => a.Name); foreach (var item in pluginsCore) { if (names.Contains(item.Name) == false) { result.Add(item); } } var q = from t in result where t.IsClass && (t.Namespace == nspace || t.Namespace == plugins) && (typeof(Document).IsAssignableFrom(t) && !typeof(NoModule).IsAssignableFrom(t)) select t; q.ToList().ForEach(t => { try { Console.Write(t.Name); var instance = Activator.CreateInstance(t); var collection = t.GetProperty("CollectionName").GetValue(instance)?.ToString(); var moduleName = t.GetProperty("ModuleName").GetValue(instance)?.ToString(); var iconName = t.GetProperty("IconName").GetValue(instance)?.ToString(); var showInDesktop = t.GetProperty("ShowInDesktop").GetValue(instance) as bool?; var isInstance = bool.Parse(t.GetProperty("IsInstance").GetValue(instance)?.ToString()); var indexMnu = int.Parse(t.GetProperty("MenuIndex").GetValue(instance)?.ToString()); bool hasserie = false; try { hasserie = (t.GetProperty("Series").GetValue(instance) != null); } catch { } if (!string.IsNullOrWhiteSpace(moduleName)) { Console.Write("EXIT"); } var moduleErp = new ModuleErp(); moduleErp.Libelle = collection; moduleErp.EstAcceRapide = showInDesktop.Value; moduleErp.ClassName = t.FullName;// t.AssemblyQualifiedName;// $"{nspace}.{t.Name}"; moduleErp.GroupeModule = moduleName; moduleErp.ModuleIcon = iconName; moduleErp.ModuleSubmitable = (instance as IDocument).Submitable; moduleErp.IsInstanceModule = isInstance; moduleErp.ModuleMenuIndex = indexMnu; moduleErp.HasSeries = hasserie; moduleErp.Save(); try { DataHelpers.GetTypesModule.Add(collection, t); } catch { } try { DataHelpers.GetTypesModule.Add(moduleErp.ClassName, t); } catch { } try { DataHelpers.GetTypesModule.Add(t.FullName, t); } catch { } try { DataHelpers.GetTypesModule.Add(t.Name, t); } catch { } } catch (Exception s) { Console.WriteLine("ERROR\n"); Console.WriteLine(s.Message); } } ); modules = DS.db.GetAll <ModuleErp>(a => true); DataHelpers.Modules = modules as IEnumerable <ModuleErp>; }
public static void ReloadModules() { // return; var modules = DS.db.GetAll <ModuleErp>();// DataHelpers.GetMongoDataSync("ModuleErp") as IEnumerable<ModuleErp>; DataHelpers.Modules = modules as IEnumerable <ModuleErp>; var collections = modules.Select(z => z.ClassName).ToList(); string nspace = "Ovresko.Generix.Core.Modules"; string plugins = "Ovresko.Generix.Extentions"; var asm = AppDomain.CurrentDomain.GetAssemblies(); var types = asm.SelectMany(a => a.GetTypes()); //var q = from t in Assembly.GetExecutingAssembly().GetTypes() // where t.IsClass && t.Namespace == nspace // && (t.IsSubclassOf(typeof(IDocument)) // && !typeof(NoModule).IsAssignableFrom(t)) // select t; var pluginsType = types.Where(a => a.Namespace == plugins); var pluginsCore = types.Where(a => a.Namespace == nspace); var result = new List <Type>(); result.AddRange(pluginsType); var names = result.Select(a => a.Name); foreach (var item in pluginsCore) { if (names.Contains(item.Name) == false) { result.Add(item); } } var q = from t in result where t.IsClass && (t.Namespace == nspace || t.Namespace == plugins) && (typeof(Document).IsAssignableFrom(t) && !typeof(NoModule).IsAssignableFrom(t)) select t; List <string> AssemblyCollection = new List <string>(); q.ToList().ForEach(t => { try { Console.Write(t.Name); var instance = Activator.CreateInstance(t); var CollectionName = t.GetProperty("CollectionName").GetValue(instance)?.ToString(); AssemblyCollection.Add(t.FullName); //Install IDocument extended = (instance as IDocument); (instance as IDocument).InstallWithBootstrap(); if (!collections.Contains(t.FullName)) { var moduleName = t.GetProperty("ModuleName").GetValue(instance)?.ToString(); var iconName = t.GetProperty("IconName").GetValue(instance)?.ToString(); var showInDesktop = t.GetProperty("ShowInDesktop").GetValue(instance) as bool?; var isInstance = bool.Parse(t.GetProperty("IsInstance").GetValue(instance)?.ToString()); var indexMnu = int.Parse(t.GetProperty("MenuIndex").GetValue(instance)?.ToString()); if (!string.IsNullOrWhiteSpace(moduleName)) { Console.Write("EXIT"); } var moduleErp = new ModuleErp(); moduleErp.Libelle = CollectionName; moduleErp.EstAcceRapide = showInDesktop.Value; moduleErp.ClassName = t.FullName;// t.AssemblyQualifiedName;// $"{nspace}.{t.Name}"; moduleErp.GroupeModule = moduleName; moduleErp.ModuleIcon = iconName; moduleErp.ModuleSubmitable = (instance as IDocument).Submitable; moduleErp.IsInstanceModule = isInstance; moduleErp.ModuleMenuIndex = indexMnu; moduleErp.Save(); try { DataHelpers.GetTypesModule.Add(CollectionName, t); } catch { } try { DataHelpers.GetTypesModule.Add(moduleErp.ClassName, t); } catch { } try { DataHelpers.GetTypesModule.Add(t.FullName, t); } catch { } try { DataHelpers.GetTypesModule.Add(t.Name, t); } catch { } } if (extended.MyModule() != null && (extended.MyModule() as ModuleErp).SeriesDefault.IsValide() == false) { FrameworkManager.CreateSeries(extended.MyModule() as ModuleErp, 1, true); } } catch (Exception s) { Console.WriteLine("ERROR\n"); Console.WriteLine(s.Message); } } ); foreach (var item in modules) { if (!AssemblyCollection.Contains(item.ClassName)) { item.Delete(false); } } modules = DS.db.GetAll <ModuleErp>();// DataHelpers.GetMongoDataSync("ModuleErp") as IEnumerable<ModuleErp>; DataHelpers.Modules = modules; }
public static void UpdateModules(bool DoUpdate = true) { var modules = DataHelpers.GetMongoDataSync("ModuleErp"); DataHelpers.Modules = modules as IEnumerable <ModuleErp>; if (DoUpdate == false) { //check in db if (modules?.Count() < 1) { DoUpdate = true; } } // deleteAll Modules if (!DoUpdate) { return; } foreach (var module in modules) { (module as IModel).Delete(false); } //ErpAlgerie.Modules.CRM string nspace = "ErpAlgerie.Modules.CRM"; var q = from t in Assembly.GetExecutingAssembly().GetTypes() where t.IsClass && t.Namespace == nspace && (t.IsSubclassOf(typeof(ExtendedDocument)) && !typeof(NoModule).IsAssignableFrom(t)) select t; q.ToList().ForEach(t => { try { Console.Write(t.Name); var instance = Activator.CreateInstance(t); var collection = t.GetProperty("CollectionName").GetValue(instance)?.ToString(); var moduleName = t.GetProperty("ModuleName").GetValue(instance)?.ToString(); var iconName = t.GetProperty("IconName").GetValue(instance)?.ToString(); var showInDesktop = t.GetProperty("ShowInDesktop").GetValue(instance) as bool?; var isInstance = bool.Parse(t.GetProperty("IsInstance").GetValue(instance)?.ToString()); if (!string.IsNullOrWhiteSpace(moduleName)) { Console.Write("EXIT"); } var moduleErp = new ModuleErp(); moduleErp.Libelle = collection; moduleErp.EstAcceRapide = showInDesktop.Value; moduleErp.ClassName = $"{nspace}.{t.Name}"; moduleErp.GroupeModule = moduleName; moduleErp.ModuleIcon = iconName; moduleErp.ModuleSubmitable = (instance as ExtendedDocument).Submitable; moduleErp.IsInstanceModule = isInstance; moduleErp.Save(); } catch (Exception s) { Console.WriteLine("ERROR\n"); Console.WriteLine(s.Message); } } ); modules = DataHelpers.GetMongoDataSync("ModuleErp"); DataHelpers.Modules = modules as IEnumerable <ModuleErp>; }