public bool EntityHasDirectSecurities(DR_Requester requester, int entityID) { using (var context = new MyProjectEntities()) { return(context.EntitySecurityDirect.Any(x => x.TableDrivedEntityID == entityID)); } }
//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); }
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); } }
public UserDTO GetUser(int userID) { var context = new MyProjectEntities(); var user = context.User.First(x => x.ID == userID); return(ToUserDTO(user)); }
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); } } }
//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)); }
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)); }
//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)); } }
//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)); } }
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)); } }
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)); } }
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)); } }
//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)); } }
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); }
private DataItem GetDBDataItem(int ID) { using (var model = new MyProjectEntities()) { DataItem dataItem; dataItem = model.DataItem.First(x => x.ID == ID); return(dataItem); } }
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); }