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);
        }
Beispiel #3
0
        //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);
        }
Beispiel #4
0
        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;
     }
 }
Beispiel #6
0
 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);
     }
 }
Beispiel #7
0
        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);
            }
        }
Beispiel #8
0
        //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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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();
 }