public frmEntityListView(int entityID, int entityListViewID) { InitializeComponent(); EntityID = entityID; BizTableDrivedEntity biz = new BizTableDrivedEntity(); var entity = biz.GetTableDrivedEntity(MyProjectManager.GetMyProjectManager.GetRequester(), EntityID, EntityColumnInfoType.WithSimpleColumns, EntityRelationshipInfoType.WithoutRelationships); if (entity.IsView) { colRelationshipTail.IsVisible = false; } // EntityListViewID = entityListViewID; SetRelationshipTails(); if (entityListViewID == 0) { Message = new EntityListViewDTO(); ShowMessage(); } else { GetEntityEntityListView(entityListViewID); } dtgColumns.RowLoaded += DtgColumns_RowLoaded; dtgColumns.CellEditEnded += DtgConditions_CellEditEnded; colRelationshipTail.EditItemClicked += ColRelationshipTail_EditItemClicked; ControlHelper.GenerateContextMenu(dtgColumns); }
//private bool CheckRelationshipTailPermission(EntityRelationshipTailDTO relationshipTail, bool first = true) //{ // if (first) // { // var entityPermission = AgentUICoreMediator.GetAgentUICoreMediator.SecurityHelper.GetAssignedPermissions(AgentUICoreMediator.GetAgentUICoreMediator.GetRequester(), relationshipTail.Relationship.EntityID2, false); // if (entityPermission.GrantedActions.Any(y => y == SecurityAction.NoAccess)) // return false; // } // var relationshipPermission = AgentUICoreMediator.GetAgentUICoreMediator.SecurityHelper.GetAssignedPermissions(AgentUICoreMediator.GetAgentUICoreMediator.GetRequester(), relationshipTail.Relationship.ID, false); // if (relationshipPermission.GrantedActions.Any(y => y == SecurityAction.NoAccess)) // return false; // if (relationshipTail.ChildTail != null) // return CheckRelationshipTailPermission(relationshipTail.ChildTail, false); // else // return true; //} private void View_EntityListViewChanged(object sender, EntitiListViewChangedArg e) { SelectedListView = AgentUICoreMediator.GetAgentUICoreMediator.EntityListViewManager.GetEntityListView(AgentUICoreMediator.GetAgentUICoreMediator.GetRequester(), e.ListViewID); //ShowDataViewItemInfo(LastSelectedDataViewItem, LastSelectedListViewID); SetEntityOrderColumns(); GetDataItemsBySearchRepository(SearchRepository); }
//private bool CheckRelationshipTailPermission(EntityRelationshipTailDTO relationshipTail, bool first = true) //{ // if (first) // { // var entityEnabled = bizTableDrivedEntity.IsEntityEnabled(relationshipTail.RelationshipTargetEntityID); // if (!entityEnabled) // return false; // } // if (relationshipTail.ChildTail != null) // return CheckRelationshipTailPermission(relationshipTail.ChildTail, false); // else // return true; //} //public void UpdateDefaultListViewInModel(int databaseID) //{ //} public EntityListViewDTO GenerateDefaultListView(TableDrivedEntityDTO entity, List <TableDrivedEntityDTO> allEntities) { EntityListViewDTO result = new EntityListViewDTO(); result.TableDrivedEntityID = entity.ID; result.Title = "لیست نمایشی پیش فرض"; result.EntityListViewAllColumns = GenereateDefaultListViewColumns(entity, allEntities); return(result); }
private EntityListViewDTO ToEntityListViewDTO(DR_Requester requester, EntityListView item, bool withDetails) { EntityListViewDTO result = new EntityListViewDTO(); result.TableDrivedEntityID = item.TableDrivedEntityID; result.ID = item.ID; result.Title = item.Title; if (withDetails) { BizColumn bizColumn = new MyModelManager.BizColumn(); foreach (var column in item.EntityListViewColumns) { EntityListViewColumnsDTO rColumn = new EntityListViewColumnsDTO(); rColumn.ID = column.ID; rColumn.ColumnID = column.ColumnID; rColumn.Column = bizColumn.ToColumnDTO(column.Column, true); rColumn.IsDescriptive = column.IsDescriptive; rColumn.Alias = column.Alias ?? rColumn.Column.Alias ?? rColumn.Column.Name; rColumn.OrderID = column.OrderID ?? 0; if (column.EntityRelationshipTailID != null) { rColumn.RelationshipTailID = column.EntityRelationshipTailID.Value; rColumn.RelationshipTail = bizEntityRelationshipTail.ToEntityRelationshipTailDTO(column.EntityRelationshipTail); } if (!string.IsNullOrEmpty(column.Tooltip)) { rColumn.Tooltip = column.Tooltip; } else { if (rColumn.RelationshipTail != null) { rColumn.Tooltip = rColumn.RelationshipTail.ReverseRelationshipTail.TargetEntityAlias + "." + rColumn.Column.Alias; } } rColumn.WidthUnit = column.WidthUnit ?? 0; //rColumn.RelativeColumnName = rColumn.Column.Name + rColumn.RelationshipTailID.ToString(); result.EntityListViewAllColumns.Add(rColumn); } //foreach (var tail in item.EntityListViewRelationshipTails) //{ // EntityListViewRelationshipTailDTO rTail = new EntityListViewRelationshipTailDTO(); // rTail.ID = tail.ID; // rTail.EntityRelationshipTailID = tail.EntityRelationshipTailID; // rTail.EntityRelationshipTail = bizEntityRelationshipTail.ToEntityRelationshipTailDTO(tail.EntityRelationshipTail); // foreach (var tailColumn in tail.EntityListViewColumns) // { // rTail.EntityListViewColumns.Add(result.EntityListViewAllColumns.First(x => x.ID == tailColumn.ID)); // } // result.EntityListViewRelationshipTails.Add(rTail); //} } ImposeSecurity(requester, result, item.TableDrivedEntity); return(result); }
private void LokEntityListView_SelectionChanged(object sender, SelectionChangedArg e) { if (lokEntityListView.SelectedItem != null) { BizEntityListView biz = new BizEntityListView(); SelectedEntityListView = biz.GetEntityListView(MyProjectManager.GetMyProjectManager.GetRequester(), (int)lokEntityListView.SelectedValue); SetColumns(SelectedEntityListView.EntityListViewAllColumns); SetDefaultFieldsValue(dtgPlainFields.ItemsSource as List <LetterTemplatePlainFieldDTO>, dtgRelationshipFields.ItemsSource as List <LetterTemplateRelationshipFieldDTO>); } else { SelectedEntityListView = null; } }
public int UpdateEntityListViews(EntityListViewDTO message) { using (var projectContext = new DataAccess.MyProjectEntities()) { var dbEntityListView = SaveItem(projectContext, message); try { projectContext.SaveChanges(); } catch (Exception ex) { } return(dbEntityListView.ID); } }
private void ImposeSecurity(DR_Requester requester, EntityListViewDTO entityListViewDTO, TableDrivedEntity entity) { BizColumn bizColumn = new BizColumn(); entityListViewDTO.SercurityImposed = true; //var permission = bizTableDrivedEntity.GetEntityAssignedPermissions(requester, entityListViewDTO.TableDrivedEntityID, true); List <EntityListViewColumnsDTO> removeList = new List <ModelEntites.EntityListViewColumnsDTO>(); foreach (var columnGroup in entityListViewDTO.EntityListViewAllColumns.GroupBy(x => x.RelationshipTailID)) { bool pathPermission = true; if (columnGroup.Key == 0) { pathPermission = true; } else { var relationshipTail = columnGroup.First(x => x.RelationshipTailID == columnGroup.Key).RelationshipTail; pathPermission = bizEntityRelationshipTail.DataIsAccessable(requester, relationshipTail); } if (!pathPermission) { foreach (var column in columnGroup) { removeList.Add(column); } } else { foreach (var column in columnGroup) { if (!bizColumn.DataIsAccessable(requester, column.ColumnID)) { removeList.Add(column); } } } } foreach (var remove in removeList) { entityListViewDTO.EntityListViewAllColumns.Remove(remove); } }
//public EntityListViewDTO GetEntityEditListView(TableDrivedEntityDTO mainEntity) //{ // return ToEntitySimpleListView(mainEntity); //} public EntityListViewDTO GetEntityDefaultListView(DR_Requester requester, int entityID) { EntityListViewDTO result = null; using (var projectContext = new DataAccess.MyProjectEntities()) { var entity = projectContext.TableDrivedEntity.First(x => x.ID == entityID); if (entity.EntityListView1 != null) { if (DataIsAccessable(requester, entity.EntityListView1)) { result = ToEntityListViewDTO(requester, entity.EntityListView1, true); } else { return(null); } } else { var defaultListView = entity.EntityListView.FirstOrDefault(); if (defaultListView != null) { if (DataIsAccessable(requester, defaultListView)) { result = ToEntityListViewDTO(requester, defaultListView, true); } else { return(null); } } else { //باید یک دیفالت ساخته و فرستاده شه BizTableDrivedEntity bizTableDrivedEntity = new BizTableDrivedEntity(); var entityDTO = bizTableDrivedEntity.GetPermissionedEntity(requester, entityID); result = ToEntitySimpleListView(entityDTO); } } } return(result); }
private EntityListViewDTO ToEntityKeysListView(TableDrivedEntityDTO entityDTO) { EntityListViewDTO result = new EntityListViewDTO(); result.TableDrivedEntityID = entityDTO.ID; result.ID = 0; result.Title = "ستونهای کلید"; foreach (var column in entityDTO.Columns.Where(x => x.PrimaryKey)) { EntityListViewColumnsDTO rColumn = new EntityListViewColumnsDTO(); rColumn.ID = 0; rColumn.ColumnID = column.ID; rColumn.Column = column; rColumn.Alias = column.Alias; rColumn.OrderID = (short)column.Position; result.EntityListViewAllColumns.Add(rColumn); } return(result); }
private EntityListViewDTO ToEntitySimpleListView(TableDrivedEntityDTO entityDTO) { EntityListViewDTO result = new EntityListViewDTO(); result.TableDrivedEntityID = entityDTO.ID; result.ID = 0; result.Title = "ستونهای ساخته شده"; foreach (var column in entityDTO.Columns) { EntityListViewColumnsDTO rColumn = new EntityListViewColumnsDTO(); rColumn.ID = 0; rColumn.ColumnID = column.ID; rColumn.Column = column; rColumn.Alias = column.Alias; rColumn.OrderID = (short)column.Position; result.EntityListViewAllColumns.Add(rColumn); } return(result); }
public EntityListView SaveItem(MyProjectEntities projectContext, EntityListViewDTO message, List <EntityRelationshipTail> createdRelationshipTails = null) { var dbEntityListView = projectContext.EntityListView.FirstOrDefault(x => x.ID == message.ID); if (dbEntityListView == null) { dbEntityListView = new DataAccess.EntityListView(); } dbEntityListView.TableDrivedEntityID = message.TableDrivedEntityID; dbEntityListView.Title = message.Title; //تیلهای گزارش را از روی تیلهای ستونها میسازد //هر دفعه پاک نشن بهتره..اصلاح بشن List <EntityListViewColumns> listRemove = new List <EntityListViewColumns>(); foreach (var dbColumn in dbEntityListView.EntityListViewColumns) { if (!message.EntityListViewAllColumns.Any(x => x.RelationshipTailID == (dbColumn.EntityRelationshipTailID ?? 0) && x.ColumnID == dbColumn.ColumnID)) { listRemove.Add(dbColumn); } } foreach (var item in listRemove) { projectContext.EntityListViewColumns.Remove(item); } //while (dbEntityListView.EntityListViewRelationshipTails.Any()) // projectContext.EntityListViewRelationshipTails.Remove(dbEntityListView.EntityListViewRelationshipTails.First()); if (createdRelationshipTails == null) { createdRelationshipTails = new List <EntityRelationshipTail>(); } BizEntityRelationshipTail bizEntityRelationshipTail = new BizEntityRelationshipTail(); foreach (var column in message.EntityListViewAllColumns) { EntityListViewColumns rColumn = null; if (column.ID == 0) { rColumn = new EntityListViewColumns(); } else { rColumn = projectContext.EntityListViewColumns.First(x => x.ID == column.ID); } rColumn.ColumnID = column.ColumnID; rColumn.Alias = column.Alias; rColumn.OrderID = column.OrderID; rColumn.Tooltip = column.Tooltip; rColumn.IsDescriptive = column.IsDescriptive; rColumn.WidthUnit = column.WidthUnit; if (string.IsNullOrEmpty(column.CreateRelationshipTailPath)) { rColumn.EntityRelationshipTailID = column.RelationshipTailID == 0 ? (int?)null : column.RelationshipTailID; } else { if (createdRelationshipTails.Any(x => x.TableDrivedEntityID == message.TableDrivedEntityID && x.RelationshipPath == column.CreateRelationshipTailPath)) { rColumn.EntityRelationshipTail = createdRelationshipTails.First(x => x.TableDrivedEntityID == message.TableDrivedEntityID && x.RelationshipPath == column.CreateRelationshipTailPath); } else { var relationshipTail = bizEntityRelationshipTail.GetOrCreateEntityRelationshipTail(projectContext, message.TableDrivedEntityID, column.CreateRelationshipTailPath); createdRelationshipTails.Add(relationshipTail); rColumn.EntityRelationshipTail = relationshipTail; } } dbEntityListView.EntityListViewColumns.Add(rColumn); } if (dbEntityListView.ID == 0) { projectContext.EntityListView.Add(dbEntityListView); } return(dbEntityListView); }
private void btnNew_Click(object sender, RoutedEventArgs e) { Message = new EntityListViewDTO(); ShowMessage(); }