Exemplo n.º 1
0
        public UpdateMenuResponse Update(UpdateMenuRequest request)
        {
            var response = new UpdateMenuResponse();

            try
            {
                var menu = request.MapTo <Data.Entities.Menu>();
                var item = DataContext.Entry(menu);

                item.State = EntityState.Modified;
                //Load RoleGroups Collection
                item.Collection("RoleGroups").Load();

                //set IsRoot if no menu as parent
                menu.IsRoot   = request.ParentId <= 0;
                menu.ParentId = menu.IsRoot ? null : menu.ParentId;
                //clear RoleGroups collection first
                menu.RoleGroups.Clear();

                if (request.RoleGroupIds.Count > 0)
                {
                    //menu.RoleGroups = new HashSet<Data.Entities.RoleGroup>();

                    foreach (int roleGroupId in request.RoleGroupIds)
                    {
                        var roleGroup = DataContext.RoleGroups.Find(roleGroupId);

                        //add selected role group to menu
                        menu.RoleGroups.Add(roleGroup);
                    }
                }

                //ensure url end with slash
                menu.Url = menu.Url != null && menu.Url.Length > 0 ? _CleanUpMenuUrl(menu.Url) : menu.Url;

                //DataContext.Menus.Attach(menu);
                //DataContext.Entry(menu).State = EntityState.Modified;
                DataContext.SaveChanges();
                response.IsSuccess = true;
                response.Message   = "Menu item has been updated successfully";
            }
            catch (DbUpdateException dbUpdateException)
            {
                response.Message = dbUpdateException.Message;
            }

            return(response);
        }
Exemplo n.º 2
0
        public UpdateMenuResponse Update(UpdateMenuRequest request)
        {
            var response = new UpdateMenuResponse();
            try
            {
                var menu = request.MapTo<Data.Entities.Menu>();
                var item = DataContext.Entry(menu);

                item.State = EntityState.Modified;
                //Load RoleGroups Collection
                item.Collection("RoleGroups").Load();

                //set IsRoot if no menu as parent
                menu.IsRoot = request.ParentId <= 0 || request.ParentId == null;
                menu.ParentId = menu.IsRoot ? null : menu.ParentId;
                //clear RoleGroups collection first
                menu.RoleGroups.Clear();

                if (request.RoleGroupIds.Count > 0)
                {
                    //menu.RoleGroups = new HashSet<Data.Entities.RoleGroup>();

                    foreach (int roleGroupId in request.RoleGroupIds)
                    {
                        var roleGroup = DataContext.RoleGroups.Find(roleGroupId);

                        //add selected role group to menu
                        menu.RoleGroups.Add(roleGroup);
                    }
                }

                //ensure url end with slash
                menu.Url = menu.Url != null && menu.Url.Length > 0 ? _CleanUpMenuUrl(menu.Url) : menu.Url;

                //DataContext.Menus.Attach(menu);
                //DataContext.Entry(menu).State = EntityState.Modified;
                DataContext.SaveChanges();
                response.IsSuccess = true;
                response.Message = "Menu item has been updated successfully";
            }
            catch (DbUpdateException dbUpdateException)
            {
                response.Message = dbUpdateException.Message;
            }

            return response;
        }