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; }
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()); } }