public static List <Temp> GetMetaData(this MenuSecurity entityObject)
        {
            XERP.Server.DAL.MenuSecurityDAL.DALUtility dalUtility = new DALUtility();
            List <Temp> tempList = new List <Temp>();
            int         id       = 0;

            using (MenuSecurityEntities ctx = new MenuSecurityEntities(dalUtility.EntityConectionString))
            {
                var c            = ctx.MenuSecurities.FirstOrDefault();
                var queryResults = from meta in ctx.MetadataWorkspace.GetItems(DataSpace.CSpace)
                                   .Where(m => m.BuiltInTypeKind == BuiltInTypeKind.EntityType)
                                   from query in (meta as EntityType).Properties
                                   .Where(p => p.DeclaringType.Name == entityObject.GetType().Name)
                                   select query;

                if (queryResults.Count() > 0)
                {
                    foreach (var queryResult in queryResults.ToList())
                    {
                        Temp temp = new Temp();
                        temp.ID          = id;
                        temp.Name        = queryResult.Name.ToString();
                        temp.ShortChar_1 = queryResult.TypeUsage.EdmType.Name;
                        if (queryResult.TypeUsage.EdmType.Name == "String")
                        {
                            temp.Int_1 = Convert.ToInt32(queryResult.TypeUsage.Facets["MaxLength"].Value);
                        }
                        temp.Bool_1 = false; //we use this as a error trigger false = not an error...
                        tempList.Add(temp);
                        id++;
                    }
                }
            }
            return(tempList);
        }
        //Upsert(Add and Update) SecurityGroup to the MenuSecurity table...
        public void AddAllMenuSecurities(string menuItemID, string companyID)
        {   //remove them all then we will add them all...
            RemoveAllMenuSecurities(menuItemID, companyID);
            //declare a different context as to not disturb the repostitory context that is tracking MenuItems
            MenuSecurityEntities context = new MenuSecurityEntities(_rootUri);

            //get Security Groups...
            context.MergeOption = MergeOption.AppendOnly;
            context.IgnoreResourceNotFoundException = true;
            var queryResult = from q in context.SecurityGroups
                              where q.CompanyID == companyID
                              select q;

            foreach (SecurityGroup item in queryResult.ToList())
            {
                MenuSecurity menuSecurity = new MenuSecurity();
                menuSecurity.CompanyID       = companyID;
                menuSecurity.MenuItemID      = menuItemID;
                menuSecurity.SecurityGroupID = item.SecurityGroupID;
                context.MergeOption          = MergeOption.NoTracking;
                context.AddToMenuSecurities(menuSecurity);
                context.SaveChanges();
            }
            context = null;
        }
        //Upsert(Add and Update) SecurityGroup to the MenuSecurity table...
        public void AddMenuSecurity(string menuItemID, string securityGroupID, string companyID)
        {//declare a different context as to not disturb the repostitory context that is tracking MenuItems
            MenuSecurityEntities context = new MenuSecurityEntities(_rootUri);

            //make sure it does not exist all ready...
            context.MergeOption = MergeOption.AppendOnly;
            context.IgnoreResourceNotFoundException = true;
            var queryResult = from q in context.MenuSecurities
                              where q.CompanyID == companyID &&
                              q.MenuItemID == menuItemID &&
                              q.SecurityGroupID == securityGroupID
                              select q;

            if (queryResult.ToList().Count() == 0)
            {//it does not exist add it...
                MenuSecurity menuSecurity = new MenuSecurity();
                menuSecurity.CompanyID       = companyID;
                menuSecurity.MenuItemID      = menuItemID;
                menuSecurity.SecurityGroupID = securityGroupID;
                context.MergeOption          = MergeOption.NoTracking;
                context.AddToMenuSecurities(menuSecurity);
                context.SaveChanges();
            }
            context = null;
        }
Exemple #4
0
        public IQueryable <Temp> GetMetaData(string tableName)
        {
            switch (tableName)
            {
            case "MenuItems":
                MenuItem menuItem = new MenuItem();
                return(menuItem.GetMetaData().AsQueryable());

            case "MenuItemTypes":
                MenuItemType menuItemType = new MenuItemType();
                return(menuItemType.GetMetaData().AsQueryable());

            case "MenuItemCodes":
                MenuItemCode menuItemCode = new MenuItemCode();
                return(menuItemCode.GetMetaData().AsQueryable());

            case "ExecutablePrograms":
                ExecutableProgram executablePrograms = new ExecutableProgram();
                return(executablePrograms.GetMetaData().AsQueryable());

            case "ExecutableProgramTypes":
                ExecutableProgramType executableProgramType = new ExecutableProgramType();
                return(executableProgramType.GetMetaData().AsQueryable());

            case "ExecutableProgramCodes":
                ExecutableProgramCode executableProgramCode = new ExecutableProgramCode();
                return(executableProgramCode.GetMetaData().AsQueryable());

            case "MenuSecurities":
                MenuSecurity menuSecurity = new MenuSecurity();
                return(menuSecurity.GetMetaData().AsQueryable());

            case "SecurityGroups":
                SecurityGroup securityGroup = new SecurityGroup();
                return(securityGroup.GetMetaData().AsQueryable());

            default:     //no table exists for the given tablename given...
                List <Temp> tempList = new List <Temp>();
                Temp        temp     = new Temp();
                temp.ID          = 0;
                temp.Int_1       = 0;
                temp.Bool_1      = true; //bool_1 will flag it as an error...
                temp.Name        = "Error";
                temp.ShortChar_1 = "Table " + tableName + " Is Not A Valid Table Within The Given Entity Collection, Or Meta Data Is Not Publc For The Given Table Name";
                tempList.Add(temp);
                return(tempList.AsQueryable());
            }
        }