Exemplo n.º 1
0
        public void InitAppFunctions()
        {
            var apps = Container.Resolve<IApps>();
            var funcs = Container.Resolve<IFunctions>();

            //var dbContext = new DatabaseContext();

            

            var adapter = Container.Resolve<IObjectContext>();

            var appRepo = new Repository<ApplicationTable>(adapter);

            var applicationTables = appRepo.FindNoTracking(s => true).ToList(); //TODO User Role
            

            if (!applicationTables.Any()) return;


            Apps = new KZBindingList<IApp>();

            foreach (var applicationTable in applicationTables)
            {
                if (!apps.ListApps.ContainsKey(applicationTable.Code)) continue;
                var app = apps.ListApps[applicationTable.Code].Clone() as IApp;

                if (app == null) continue;
                app.Id = applicationTable.Id;

                app.Functions = new KZBindingList<IFunction>();

                //TODO User Role

                foreach (var applicationFunctionTable in applicationTable.ApplicationFunctionTables)
                {
                    if (!funcs.ListFuncs.ContainsKey(applicationFunctionTable.FunctionTable.Code)) continue;

                    var func = funcs.ListFuncs[applicationFunctionTable.FunctionTable.Code].Clone() as IFunction;

                    if (func == null) continue;
                    func.Id = applicationFunctionTable.FunctionId;

                    app.Functions.Add(func);
                }

                Apps.Add(app);
            }
        }