示例#1
0
        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;
        }
示例#2
0
        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();
        }
示例#3
0
        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>;
        }
示例#4
0
        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;
        }
示例#5
0
        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>;
        }