예제 #1
0
        public void Delete(string id)
        {
            var biz       = new ControlPanelMenuBiz();
            var linkQuery = new ControlPanelMenuQueryEntity
            {
                LinkPath = id
            };

            var entity = new ControlPanelMenuEntity
            {
                MenuId = Guid.Parse(id)
            };

            var links = biz.GetMenuItems(linkQuery);

            using (var scope = new TransactionScope())
            {
                biz.Delete(entity);

                foreach (var link in links)
                {
                    biz.Delete(new ControlPanelMenuEntity {
                        MenuId = link.MenuId
                    });
                }

                scope.Complete();
            }
        }
예제 #2
0
        public ControlPanelMenuEntity GetMenuItem(ControlPanelMenuQueryEntity queryEntity)
        {
            var query = this.GetMenuQueryable(queryEntity);

            ControlPanelMenuEntity result = query.FirstOrDefault();

            return(result);
        }
예제 #3
0
        public List <MenuItem> GetCollection()
        {
            var queryEntity = new ControlPanelMenuQueryEntity()
            {
                ApplicationIds = CPConfig.Keystone.ApplicationIds
            };

            var list = new ControlPanelMenuBiz().GetMenuItems(queryEntity);

            var result = list.ToItem();

            return(result);
        }
예제 #4
0
        public List <ControlPanelMenuEntity> GetMenuItems(ControlPanelMenuQueryEntity queryEntity)
        {
            var query = this.GetMenuQueryable(queryEntity);

            List <ControlPanelMenuEntity> result = query.ToList();

            var localizedRes = this.GetLocalizedRes(null);

            foreach (var item in result)
            {
                item.LocalizedMenuEntities = localizedRes.FindAll(res => res.ReferenceMenuId == item.MenuId);
            }

            return(result);
        }
예제 #5
0
        public MenuItem Get(string id)
        {
            ControlPanelMenuQueryEntity queryEntity = new ControlPanelMenuQueryEntity()
            {
                MenuId = Guid.Parse(id)
            };

            var biz = new ControlPanelMenuBiz();
            ControlPanelMenuEntity item = biz.GetMenuItem(queryEntity);

            MenuItem result = item.ToItem();

            if (result != null)
            {
                result.LocalizedResCollection = biz.GetLocalizedRes(result.MenuId).ToMsg();
            }
            return(result);
        }
예제 #6
0
        //private IQueryable<ControlPanelLocalizedMenuEntity> GetMenuQueryable(ControlPanelLocalizedMenuQueryEntity queryEntity)
        //{
        //    if (queryEntity == null)
        //    {
        //        throw new ArgumentNullException("queryEntity");
        //    }

        //    if (queryEntity.ApplicationIds == null)
        //    {
        //        queryEntity.ApplicationIds = new string[] { };
        //    }

        //    var query = from menu in this.m_dataContext.FN_ControlPanelMenuWithLocalizedRes(queryEntity.LanguageCode ?? String.Empty)
        //                where (queryEntity.ApplicationIds.Length > 0 ? queryEntity.ApplicationIds.Contains(menu.ApplicationId2) : true)
        //                    && (queryEntity.StatusCode != null ? (menu.StatusCode == queryEntity.StatusCode) : true)
        //                orderby menu.SortIndex descending, menu.MenuId ascending
        //                select menu;

        //    return query;
        //}

        private IQueryable <ControlPanelMenuEntity> GetMenuQueryable(ControlPanelMenuQueryEntity queryEntity)
        {
            if (queryEntity == null)
            {
                throw new ArgumentNullException("queryEntity");
            }

            if (queryEntity.ApplicationIds == null)
            {
                queryEntity.ApplicationIds = new string[] { };
            }

            var query = from menu in this.m_dataContext.ControlPanelMenuEntities
                        where (queryEntity.MenuId != null ? menu.MenuId == queryEntity.MenuId : true) &&
                        (queryEntity.ApplicationIds.Length > 0 ? queryEntity.ApplicationIds.Contains(menu.ApplicationId2) : true) &&
                        (queryEntity.LinkPath != null ? menu.LinkPath == queryEntity.LinkPath : true)
                        orderby menu.SortIndex descending, menu.MenuId ascending
            select menu;

            return(query);
        }