public void ShouldFilterBaseOnRestrictedAccses()
        {
            var identity = new ClaimsIdentity();

            identity.AddClaim(new Claim(CustomClaimTypes.Premission, PagePremision.CanSee));
            identity.AddClaim(new Claim(ClaimTypes.Role, "superviser"));
            identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, "12EA9E35-6B19-44D2-981C-2A8A3E6318E7"));
            Thread.CurrentPrincipal = new ClaimsPrincipal(identity);

            var context = new AppDbContext(new List <GlobalFilter>()
            {
                new SoftDeletibleItemGlobalFilter(),
            });

            var pages = context.Set <Page>();

            Console.WriteLine(pages.Count());
            Console.WriteLine(pages);

            var restrictor =
                new ItemAccessManager(new IdentityManager(new List <IPremissionList>(), new List <IRoleList>()));
            var filtered = restrictor.Filter(pages);

            Console.WriteLine(filtered.Count());
            Console.WriteLine(filtered);
        }
예제 #2
0
        private void MergeItems(Item updateItem)
        {
            //oldItem.Name = updateItem.Name;
            //oldItem.Price = updateItem.Price;

            ItemAccessManager.GetInstance().UpdateItem(updateItem);
        }
예제 #3
0
파일: Program.cs 프로젝트: shanicy/snooker
        static void Main(string[] args)
        {
            ItemAccessManager  itemsManager = new ItemAccessManager();
            OrderAccessManager orderManager = new OrderAccessManager();


            List <Item> items  = itemsManager.GetAllItems();
            Order       order1 = new Order();
            //ItemsToOrder itemToOrder = new ItemsToOrder(2, items[0].ItemId);
            //ItemsToOrder itemToOrder2 = new ItemsToOrder(4, items[1].ItemId);
            ItemsToOrder itemToOrder = new ItemsToOrder(5, items[2].ItemId);

            List <Order> orders = orderManager.GetAllOrders();

            orders[0].ItemsToOrder.RemoveAt(0);
            orders[0].ItemsToOrder.Add(itemToOrder);
            orderManager.UpdateOrder(orders[0]);
            //order1.ItemsToOrder.Add(itemToOrder);
            //order1.ItemsToOrder.Add(itemToOrder2);
            //orderManager.AddOrder(order1);
        }
예제 #4
0
        public void UpdateItemsList(List <Item> lstNewItems)
        {
            foreach (Item item in lstNewItems)
            {
                Item itmOldItem = Items.FirstOrDefault(t =>
                                                       t.ItemId == item.ItemId);

                if (itmOldItem != null)
                {
                    MergeItems(item);
                }
                else
                {
                    //Items.Add(new Item(item.Name, item.Price, 0));
                    ItemAccessManager.GetInstance().AddItem(item);
                }
            }

            ObservableCollection <Item> ocTempItems =
                new ObservableCollection <Item>(Items);

            foreach (Item item in ocTempItems)
            {
                Item updateItem = lstNewItems.FirstOrDefault(t =>
                                                             t.ItemId == item.ItemId);

                // Check if the item has been deleted
                if (updateItem == null)
                {
                    //Items.Remove(item);
                    ItemAccessManager.GetInstance().DeleteItem(item);
                }
            }

            LoadItemsFromDB();
        }
예제 #5
0
 public void LoadItemsFromDB()
 {
     Items = new ObservableCollection <Item>(
         ItemAccessManager.GetInstance().GetAllItems());
 }