public bool EntityHasDirectSecurities(DR_Requester requester, int entityID)
 {
     using (var context = new MyProjectEntities())
     {
         return(context.EntitySecurityDirect.Any(x => x.TableDrivedEntityID == entityID));
     }
 }
示例#2
0
        //private bool? UserHasPermission(MyProjectEntities context, int userID, string ActionName, Object dbObject)
        //{
        //    var user = context.Users.First(x => x.ID == userID);
        //    foreach (var role in user.Roles)
        //    {

        //        var bFound = (role.Role_Action_Object.Any(
        //                      p => (ActionName == "any" || p.Action.ActionName == ActionName) && p.ObjectID == dbObject.ID));
        //        if (bFound)
        //            return true;
        //        else
        //        {
        //            if (dbObject.NeedsExplicitPermission == true)
        //                return false;
        //            else
        //            {
        //                if (dbObject.ParentID != null)
        //                    return UserHasPermission(context, userID, ActionName, dbObject.Object2);
        //                else
        //                    return false;
        //            }
        //        }
        //    }
        //    return false;
        //}

        //////public bool UserHasRole(int userID, string roleName)
        //////{
        //////    var context = new MyProjectEntities();
        //////    var user = context.Users.First(x => x.ID == userID);
        //////    return user.Roles.Any(p => p.RoleName == roleName);
        //////}

        //public bool? PermissionGranted(List<int> roleIds, string actionName, string objectIdentity, string objectCategory)
        //{


        //}
        public List <ImposePermissionResult> ObjectsHaveSpecificPermissions(DR_Requester requester, List <int> securityObjectIDs, List <SecurityAction> actionNames)
        {
            List <ImposePermissionResult> result = new List <ImposePermissionResult>();

            using (var context = new MyProjectEntities())
            {
                //var user = context.Users.First(x => x.ID == requester.Identity);
                IQueryable <OrganizationPost> organizationPosts = GetDBOrganizationPosts(context, requester);



                foreach (var securityObjectID in securityObjectIDs)
                {
                    SecurityObject securityObject = context.SecurityObject.First(x => x.ID == securityObjectID);

                    var permissoins             = GetPersmissionByPosts(context, organizationPosts, securityObject);
                    ImposePermissionResult item = new ImposePermissionResult();
                    item.Permitted        = permissoins.Any(x => actionNames.Contains(x));
                    item.ObjectSecurityID = securityObjectID;
                    result.Add(item);
                    //if (actionName == SecurityAction.Any)
                    //    item.Permitted = permissoins.Any();
                    //else
                    //    item.Permitted = permissoins.Any(x => x.Action == actionName);
                }
                //    if (dbObject != null)
                //        return UserHasPermission(context, requester.Identity, ActionName, dbObject);
                //    else
                //        return null;
            }
            return(result);
        }
示例#3
0
        public int SaveUser(UserDTO userDto)
        {
            using (var context = new MyProjectEntities())
            {
                User dbUser = ToUserDB(userDto, context);

                if (dbUser.ID == 0)
                {
                    context.User.Add(dbUser);
                }
                try
                {
                    context.SaveChanges();
                }
                catch (System.Data.Entity.Validation.DbEntityValidationException e)
                {
                    foreach (var eve in e.EntityValidationErrors)
                    {
                        Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                          eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        foreach (var ve in eve.ValidationErrors)
                        {
                            Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                              ve.PropertyName, ve.ErrorMessage);
                        }
                    }
                    throw;
                }
                return(dbUser.ID);
            }
        }
示例#4
0
        public UserDTO GetUser(int userID)
        {
            var context = new MyProjectEntities();
            var user    = context.User.First(x => x.ID == userID);

            return(ToUserDTO(user));
        }
示例#5
0
 public LetterDTO GetLetter(DR_Requester requester, int letterID, bool withDetails)
 {
     using (var letterModel = new MyIdeaDataDBEntities())
     {
         using (var projectContext = new MyProjectEntities())
         {
             var dbitem = letterModel.Letter.First(x => x.ID == letterID);
             var letetr = ToLetterDTO(requester, dbitem, withDetails, projectContext);
             //BizLetterTemplate bizLetterTemplate = new BizLetterTemplate();
             if (withDetails)
             {
                 var letterSetting = GetLetterSetting();
                 if (letterSetting != null)
                 {
                     if (letterSetting.BeforeLetterLoadCodeID != 0)
                     {
                         var result = codeFunctionHandler.GetCodeFunctionResult(requester, letterSetting.BeforeLetterLoadCodeID, letetr);
                         if (result.Exception == null)
                         {
                             //if (!string.IsNullOrEmpty(result.Message))
                             //{
                             //}
                         }
                         else
                         {
                         }
                     }
                 }
             }
             return(letetr);
         }
     }
 }
示例#6
0
        //public List<SecurityObjectDTO> GetSecurityObjectsOfEntity(int entityID)
        //{
        //    List<SecurityObjectDTO> result = new List<SecurityObjectDTO>();
        //    var context = new MyProjectEntities();
        //    var entity = context.TableDrivedEntity.First(x => x.ID == entityID);
        //    result.Add(ToSecurityObjectDTO(entity.SecurityObject));
        //    BizColumn bizColumn = new BizColumn();

        //    ICollection<Column> columns = bizColumn.GetColumns(entity);
        //    foreach (var column in columns)
        //    {
        //        result.Add(ToSecurityObjectDTO(column.SecurityObject));
        //    }
        //    foreach (var rel in entity.Relationship)
        //    {
        //        result.Add(ToSecurityObjectDTO(rel.SecurityObject));
        //    }
        //    foreach (var command in entity.EntityCommand)
        //    {
        //        result.Add(ToSecurityObjectDTO(command.SecurityObject));
        //    }
        //    foreach (var report in entity.EntityReport)
        //    {
        //        result.Add(ToSecurityObjectDTO(report.SecurityObject));
        //    }
        //    return result;
        //}
        public SecurityObjectDTO GetSecurityObject(int ID)
        {
            var context = new MyProjectEntities();
            var item    = context.SecurityObject.First(x => x.ID == ID);

            return(ToSecurityObjectDTO(item));
        }
示例#7
0
        public string GetUserFullName(int userID)
        {
            var context = new MyProjectEntities();
            var user    = context.User.First(x => x.ID == userID);

            return(user.FirstName + " " + user.LastName);
        }
        //private void RemoveLogicPhrase(MyProjectEntities projectContext, DataAccess.LogicPhrase logicPhrase)
        //{
        //    while (logicPhrase.Phrase1.Any())
        //    {
        //        foreach (var item in logicPhrase.Phrase1.ToList())
        //        {
        //            RemovePhrase(projectContext, item);
        //        }
        //    }
        //    projectContext.LogicPhrase.Remove(logicPhrase);
        //}

        private void RemovePhrase(MyProjectEntities projectContext, DataAccess.Phrase item, bool removeSearchRepository)
        {
            if (item.ColumnPhraseID != null)
            {
                projectContext.ColumnPhrase.Remove(item.ColumnPhrase);
                //  item.ColumnPhrase = null;
            }
            //else if (item.SearchRepositoryID != null)
            //{
            //    RemovePhrase(projectContext, item.SearchRepository.LogicPhrase.Phrase.First());
            //    //    projectContext.LogicPhrase.Remove(item.SearchRepository.LogicPhrase);
            //    //projectContext.SearchRepository.Remove(item.SearchRepository);

            //    // item.SearchRepository = null;
            //}
            else if (item.LogicPhraseID != null)
            {
                //Phrase1 به ParentLogicPhraseID ربط دارد
                foreach (var litem in item.LogicPhrase.Phrase1.ToList())
                {
                    RemovePhrase(projectContext, litem, true);
                }

                if (item.LogicPhrase.SearchRepository != null)
                {
                    if (removeSearchRepository)
                    {
                        RemoveSearchRepository(projectContext, item.LogicPhrase.SearchRepository, false);
                    }
                }
                projectContext.LogicPhrase.Remove(item.LogicPhrase);
                //    item.LogicPhrase = null;
            }
            projectContext.Phrase.Remove(item);
        }
        private void SetOwnerDBPart(MyProjectEntities projectContext, LetterTemplate owner, LetterTemplateDTO message)
        {
            owner.TableDrivedEntityID = message.TableDrivedEntityID;
            owner.Name             = message.Name;
            owner.EntityListViewID = message.EntityListViewID;
            while (owner.LetterTemplatePlainField.Any())
            {
                projectContext.LetterTemplatePlainField.Remove(owner.LetterTemplatePlainField.First());
            }
            foreach (var item in message.PlainFields)
            {
                LetterTemplatePlainField dbField = new DataAccess.LetterTemplatePlainField();
                dbField.FieldName = item.FieldName;
                dbField.EntityListViewColumnsID = (item.EntityListViewColumnsID == 0) ? (int?)null : item.EntityListViewColumnsID;
                dbField.FormulaID = (item.FormulaID == 0) ? (int?)null : item.FormulaID;
                owner.LetterTemplatePlainField.Add(dbField);
            }

            while (owner.LetterTemplateRelationshipField.Any())
            {
                projectContext.LetterTemplateRelationshipField.Remove(owner.LetterTemplateRelationshipField.First());
            }
            foreach (var item in message.RelationshipFields)
            {
                LetterTemplateRelationshipField dbField = new DataAccess.LetterTemplateRelationshipField();
                dbField.FieldName = item.FieldName;
                dbField.EntityRelationshipTailID = item.RelationshipTailID;
                //dbField.NextLine = item.NextLine;
                dbField.IsRow = item.IsRow;
                //dbField.EntityPreDefinedSearchID = (item.EntityPreDefinedSearchID == 0) ? (int?)null : item.EntityPreDefinedSearchID;
                dbField.PartialLetterTemplateID = item.PartialLetterTemplateID;
                owner.LetterTemplateRelationshipField.Add(dbField);
            }
        }
        public OrganizationDTO GetOrganization(int ID, bool withDetails)
        {
            var context      = new MyProjectEntities();
            var organization = context.Organization.First(x => x.ID == ID);

            return(ToOrganizationDTO(organization, withDetails));
        }
        //public FinalEntitySecurityDirects GetFinalEntitySecurityDirects(DR_Requester requester, int entityID, DataDirectSecurityFinalMode mode, bool withDetails)
        //{
        //    FinalEntitySecurityDirects result = new FinalEntitySecurityDirects();
        //    using (var context = new MyProjectEntities())
        //    {
        //        IQueryable<EntitySecurityDirect> directs = context.EntitySecurityDirect.Where(x => x.TableDrivedEntityID == entityID);
        //        if (mode == DataDirectSecurityFinalMode.FetchData)
        //            directs = directs.Where(x => x.Mode == (short)DataDirectSecurityMode.FetchData);
        //        else if (mode == DataDirectSecurityFinalMode.ReadonlyData)
        //            directs = directs.Where(x => x.Mode == (short)DataDirectSecurityMode.ReadonlyData);
        //        if (directs.Any())
        //        {

        //        }
        //        else
        //        {

        //        }
        //    }
        //}

        public bool EntityHasDirectSecurities(DR_Requester requester, int entityID, DataDirectSecurityMode mode)
        {
            using (var context = new MyProjectEntities())
            {
                return(context.EntitySecurityDirect.Any(x => x.TableDrivedEntityID == entityID && x.Mode == (short)mode));
            }
        }
        public OrganizationTypeDTO GetOrganizationType(int ID, bool withDetails)
        {
            var context            = new MyProjectEntities();
            var dborganizationType = context.OrganizationType.First(x => x.ID == ID);

            return(ToOrganizationTypeDTO(dborganizationType, withDetails));
        }
示例#13
0
        //private string GetRelationshipPath(EntityRelationshipTail item)
        //{
        //    if (item.EntityRelationshipTail11.Any())
        //    {
        //        return item.Relationship.ID + "," + GetRelationshipPath(item.EntityRelationshipTail11.First());
        //    }
        //    else
        //        return item.Relationship.ID.ToString();
        //}
        public EntityRelationshipTail GetOrCreateEntityRelationshipTail(MyProjectEntities projectContext, int entityID, string path)
        {
            var dbItem = projectContext.EntityRelationshipTail.FirstOrDefault(x => x.TableDrivedEntityID == entityID && x.RelationshipPath == path);

            if (dbItem == null)
            {
                dbItem = new EntityRelationshipTail();
                dbItem.TableDrivedEntityID = entityID;

                int relationshipID = 0;
                if (path.Contains(","))
                {
                    var splt = path.Split(',');
                    relationshipID = Convert.ToInt32(splt[splt.Count() - 1]);
                }
                else
                {
                    relationshipID = Convert.ToInt32(path);
                }
                dbItem.TargetEntityID   = projectContext.Relationship.First(x => x.ID == relationshipID).TableDrivedEntityID2;
                dbItem.RelationshipPath = path;
                projectContext.EntityRelationshipTail.Add(dbItem);
            }
            return(dbItem);
        }
        //public List<OrganizationDTO> GetOrganizationsByUser(int userID)
        //{
        //    using (var context = new MyProjectEntities())
        //    {
        //        return ToOrganizationDTOList(context.Organization.Where(x => x.Organization_User.Any(y => y.UserID == userID)).ToList());
        //    }
        //}


        //public int AddUserToOrganization(int OrganizationID, int userID)
        //{
        //    using (var context = new MyProjectEntities())
        //    {
        //        var organizationUser = context.Organization_User.FirstOrDefault(x => x.OrganizationID == OrganizationID
        //        && x.UserID == userID);

        //        if (organizationUser == null)
        //            context.Organization_User.Add(new Organization_User() { OrganizationID = OrganizationID, UserID = userID });

        //        context.SaveChanges();
        //        return organizationUser.ID;
        //    }
        //}

        //public OrganizationUserDTO GetOrganizationsUser(int organizationID, int userID)
        //{
        //    using (var context = new MyProjectEntities())
        //    {
        //        return ToOrganizationUserDTO(context.Organization_User.First(x => x.OrganizationID == organizationID && x.UserID == userID));
        //    }
        //}

        //private OrganizationUserDTO ToOrganizationUserDTO(Organization_User item)
        //{
        //    OrganizationUserDTO result = new OrganizationUserDTO();
        //    result.ID = item.ID;
        //    result.OrganizationID = item.OrganizationID;
        //    result.UserID = item.UserID;
        //    result.IsDefault = item.IsDefault == true;
        //    return result;
        //}
        public OrganizationPostDTO GetOrganizationPostsByID(int organizationPostID)
        {
            using (var context = new MyProjectEntities())
            {
                var post = context.OrganizationPost.First(x => x.ID == organizationPostID);
                return(ToOrganizationPostDTO(post));
            }
        }
示例#15
0
        //public List<RoleTypeDTO> ToRoleDTOList(IQueryable<RoleType> roleType)
        //{
        //    List<RoleTypeDTO> result = new List<RoleTypeDTO>();
        //    foreach (var item in roleType)
        //    {
        //        var RoleDto = ToRoleTypeDTO(item);

        //        result.Add(RoleDto);
        //    }
        //    return result;
        //}
        public RoleTypeDTO GetRoleType(int roleTypeID)
        {
            using (var context = new MyProjectEntities())
            {
                var role = context.RoleType.First(x => x.ID == roleTypeID);
                return(ToRoleTypeDTO(role));
            }
        }
示例#16
0
 public DbServerDTO GetDBServer(int dbServerID)
 {
     using (var context = new MyProjectEntities())
     {
         var db = context.DBServer.First(x => x.ID == dbServerID);
         return(ToDBServerDTO(db));
     }
 }
 public static I_DBHelper GetDBHelper(int dbID, bool withTransaction = false)
 {
     using (var context = new MyProjectEntities())
     {
         var database = context.DatabaseInformation.First(x => x.ID == dbID);
         return(GetDBHelper(database, withTransaction));
     }
 }
示例#18
0
 public LinkedServerDTO GetLinkedServer(int ID)
 {
     using (var context = new MyProjectEntities())
     {
         var db = context.LinkedServer.First(x => x.ID == ID);
         return(ToLinkedServer(db));
     }
 }
 public PartialLetterTemplateDTO GetPartialLetterTepmplate(DR_Requester requester, int letterTempleteID)
 {
     using (var projectContext = new MyProjectEntities())
     {
         var dbitem = projectContext.PartialLetterTemplate.First(x => x.ID == letterTempleteID);
         return(ToPartialLetterTemplateDTO(requester, dbitem, true));
     }
 }
示例#20
0
 public DatabaseDTO GetDatabase(int databaseID, bool withSetting = false)
 {
     using (var context = new MyProjectEntities())
     {
         var db = context.DatabaseInformation.First(x => x.ID == databaseID);
         return(ToDatabaseDTO(db, withSetting));
     }
 }
示例#21
0
        //public List<OrganizationDTO> GetOrganizationsByUser(int userID)
        //{
        //    using (var context = new MyProjectEntities())
        //    {
        //        return ToOrganizationDTOList(context.Organization.Where(x => x.Organization_User.Any(y => y.UserID == userID)).ToList());
        //    }
        //}


        //public int AddUserToOrganization(int OrganizationID, int userID)
        //{
        //    using (var context = new MyProjectEntities())
        //    {
        //        var organizationUser = context.Organization_User.FirstOrDefault(x => x.OrganizationID == OrganizationID
        //        && x.UserID == userID);

        //        if (organizationUser == null)
        //            context.Organization_User.Add(new Organization_User() { OrganizationID = OrganizationID, UserID = userID });

        //        context.SaveChanges();
        //        return organizationUser.ID;
        //    }
        //}

        //public OrganizationUserDTO GetOrganizationsUser(int organizationID, int userID)
        //{
        //    using (var context = new MyProjectEntities())
        //    {
        //        return ToOrganizationUserDTO(context.Organization_User.First(x => x.OrganizationID == organizationID && x.UserID == userID));
        //    }
        //}

        //private OrganizationUserDTO ToOrganizationUserDTO(Organization_User item)
        //{
        //    OrganizationUserDTO result = new OrganizationUserDTO();
        //    result.ID = item.ID;
        //    result.OrganizationID = item.OrganizationID;
        //    result.UserID = item.UserID;
        //    result.IsDefault = item.IsDefault == true;
        //    return result;
        //}

        public List <OrganizationPostDTO> GetPostsByOrganizationUserID(int organizationUserID)
        {
            using (var context = new MyProjectEntities())
            {
                BizRole bizRole = new MySecurity.BizRole();
                var     posts   = context.OrganizationPost.Where(x => x.OrganizationUserID == organizationUserID);
                return(ToOrganizationPostDTOList(posts));
            }
        }
示例#22
0
        public static string GetConnectionString(int entityID)
        {
            using (var context = new MyProjectEntities())
            {
                var entity = context.TableDrivedEntity.First(x => x.ID == entityID);

                return(entity.Table.DBSchema.DatabaseInformation.ConnectionString);
            }
        }
        //public static DbTransaction GetTransactionalDBHelper(int dbID)
        //{
        //    using (var context = new MyProjectEntities())
        //    {
        //        return new TransactionalDBHelper();
        //    }
        //}

        public static I_DBHelper GetDBHelperByEntityID(int entityID, bool withTransaction = false)
        {
            //کش شود
            using (var context = new MyProjectEntities())
            {
                var database = context.TableDrivedEntity.First(x => x.ID == entityID).Table.DBSchema.DatabaseInformation;
                return(GetDBHelper(database, withTransaction));
            }
        }
        ////public List<RoleDTO> GetProcessAdminRoles(int processID)
        ////{
        ////    BizRole bizRole = new BizRole();
        ////    using (var projectContext = new DataAccess.MyProjectEntities())
        ////    {
        ////        var Processs = projectContext.Process.First(x => x.ID == processID);
        ////        return bizRole.GetRolesOfRoleGroup(Processs.AdminRoleGroupID);
        ////    }

        ////}


        //public List<RoleDTO> GetProcessRoles(int iD)
        //{
        //    List<RoleDTO> result = new List<RoleDTO>();
        //    using (var projectContext = new DataAccess.MyProjectEntities())
        //    {
        //        BizRole bizRole = new BizRole();
        //        var roles = projectContext.Process_Role.Where(x => x.ProcessID == iD);
        //        foreach (var item in roles)
        //        {
        //            result.Add(bizRole.ToRoleDTO(item.Role));
        //        }
        //    }
        //    return result;
        //}

        public string GetFlowSTR(int processID)
        {
            using (var projectContext = new MyProjectEntities())
            {
                return projectContext.Process
                    .First(x => x.ID == processID).TransitionFlowSTR;

                //بهتره GroupMember سمت کلاینت خوانده شود
            }
        }
        internal OrganizationPostDTO GetOrganizationPost(int id)
        {
            List <OrganizationPostDTO> result = new List <OrganizationPostDTO>();

            using (var context = new MyProjectEntities())
            {
                var post = context.OrganizationPost.First(x => x.ID == id);
                return(ToOrganizationPostDTO(post));
            }
        }
        public void SaveOrganization(OrganizationDTO organizationDto)
        {
            using (var context = new MyProjectEntities())
            {
                Organization dbOrganization = null;
                if (organizationDto.ID == 0)
                {
                    dbOrganization = new Organization();
                    dbOrganization.SecuritySubject      = new SecuritySubject();
                    dbOrganization.SecuritySubject.Type = (int)SecuritySubjectType.Organization;
                }
                else
                {
                    dbOrganization = context.Organization.First(x => x.ID == organizationDto.ID);
                }

                dbOrganization.Name               = organizationDto.Name;
                dbOrganization.ExternalKey        = organizationDto.ExternalKey;
                dbOrganization.OrganizationTypeID = organizationDto.OrganizationTypeID;

                List <OrganizationPost> removedItems = new List <OrganizationPost>();
                foreach (var post in dbOrganization.OrganizationPost)
                {
                    if (!organizationDto.OrganizationPosts.Any(x => x.ID == post.ID))
                    {
                        removedItems.Add(post);
                    }
                }
                foreach (var item in removedItems.ToList())
                {
                    context.OrganizationPost.Remove(item);
                }
                foreach (var post in organizationDto.OrganizationPosts)
                {
                    var dbPost = dbOrganization.OrganizationPost.FirstOrDefault(x => post.ID != 0 && x.ID == post.ID);
                    if (dbPost == null)
                    {
                        dbPost = new OrganizationPost();
                        dbOrganization.OrganizationPost.Add(dbPost);
                        dbPost.SecuritySubject      = new SecuritySubject();
                        dbPost.SecuritySubject.Type = (int)SecuritySubjectType.OrganizationPost;
                    }
                    dbPost.Name        = post.Name;
                    dbPost.ExternalKey = post.ExternalKey;
                    dbPost.UserID      = post.CurrentUserID;
                    dbPost.OrganizationType_RoleTypeID = post.OrganizationTypeRoleTypeID;
                }

                if (dbOrganization.ID == 0)
                {
                    context.Organization.Add(dbOrganization);
                }
                context.SaveChanges();
            }
        }
        //public List<ActionDTO> GetActions(DatabaseObjectCategory objectCategory, string objectIdentity, RoleOrRoleGroupDTO roleOrRoleGroup)
        //{
        //    List<ActionDTO> result = new List<ActionDTO>();
        //    var actions = SecurityHelper.GetActionsByCategory(objectCategory);
        //    using (var context = new MyProjectEntities())
        //    {
        //        foreach (var action in actions)
        //        {
        //            ActionDTO item = new ActionDTO();
        //            if (roleOrRoleGroup.Type == RoleOrRoleGroupType.Role)
        //                item.Selected = context.Role_Action_Object.Any(x => x.Action == action.ToString() && x.GeneralObjectIdentity == objectIdentity && x.ObjectCategory == objectCategory.ToString() && x.RoleID == roleOrRoleGroup.ID);
        //            else
        //                item.Selected = context.Role_Action_Object.Any(x => x.Action == action.ToString() && x.GeneralObjectIdentity == objectIdentity && x.ObjectCategory == objectCategory.ToString() && x.SecurityRoleGroupID == roleOrRoleGroup.ID);
        //            item.Action = action;
        //            //item.ID = dbItem.ID;
        //            result.Add(item);
        //        }
        //    }
        //    return result;
        //}

        public BaseResult SavePermission(DR_Requester requester, PermissionDTO permission)
        {
            BaseResult result = new BaseResult();

            try
            {
                using (var context = new MyProjectEntities())
                {
                    if (permission.SecurityObjectCategory == DatabaseObjectCategory.Relationship)
                    {
                        BizTableDrivedEntity bizTableDrivedEntity = new MyModelManager.BizTableDrivedEntity();
                        var relationship = bizRelationship.GetRelationship(permission.SecurityObjectID);
                        //TableDrivedEntityDTO fkEntity = null;
                        List <ColumnDTO> listFKColumns = null;
                        if (relationship.MastertTypeEnum == Enum_MasterRelationshipType.FromForeignToPrimary)
                        {
                            //fkEntity = bizTableDrivedEntity.GetTableDrivedEntity(requester, relationship.EntityID1, EntityColumnInfoType.WithSimpleColumns, EntityRelationshipInfoType.WithoutRelationships);
                            listFKColumns = relationship.RelationshipColumns.Select(x => x.FirstSideColumn).ToList();
                        }
                        else
                        {
                            //fkEntity = bizTableDrivedEntity.GetTableDrivedEntity(requester, relationship.EntityID2, EntityColumnInfoType.WithSimpleColumns, EntityRelationshipInfoType.WithoutRelationships);
                            listFKColumns = relationship.RelationshipColumns.Select(x => x.SecondSideColumn).ToList();
                        }
                        foreach (var fkColumn in listFKColumns)
                        {
                            PermissionDTO colPermission = new PermissionDTO();
                            colPermission.SecurityObjectCategory = DatabaseObjectCategory.Column;
                            colPermission.Actions = permission.Actions;
                            var currentPermission = context.Permission.FirstOrDefault(x => x.SecurityObjectID == fkColumn.ID && x.SecuritySubjectID == permission.SecuritySubjectID);
                            if (currentPermission != null)
                            {
                                colPermission.ID = currentPermission.ID;
                            }
                            colPermission.SecurityObjectID  = fkColumn.ID;
                            colPermission.SecuritySubjectID = permission.SecuritySubjectID;
                            SavePermission(context, colPermission);
                        }
                    }
                    else
                    {
                        SavePermission(context, permission);
                    }
                    context.SaveChanges();
                    result.Result = Enum_DR_ResultType.SeccessfullyDone;
                }
            }
            catch (Exception ex)
            {
                result.Result  = Enum_DR_ResultType.ExceptionThrown;
                result.Message = "خطا در ثبت" + Environment.NewLine + ex.Message;
            }
            return(result);
        }
 private void RemoveSearchRepository(MyProjectEntities projectContext, SearchRepository searchRepository, bool withPhrases)
 {
     if (withPhrases)
     {
         if (searchRepository.LogicPhrase.Phrase.Any())
         {
             RemovePhrase(projectContext, searchRepository.LogicPhrase.Phrase.First(), false);
         }
     }
     projectContext.SearchRepository.Remove(searchRepository);
 }
示例#29
0
        private DataItem GetDBDataItem(int ID)
        {
            using (var model = new MyProjectEntities())
            {
                DataItem dataItem;

                dataItem = model.DataItem.First(x => x.ID == ID);

                return(dataItem);
            }
        }
示例#30
0
 public int GetDatabaseIDByEntityID(int entityID)
 {
     using (var context = new MyProjectEntities())
     {
         var entity = context.TableDrivedEntity.FirstOrDefault(x => x.ID == entityID);
         if (entity != null)
         {
             return(entity.Table.DBSchema.DatabaseInformationID);
         }
     }
     return(0);
 }