public async Task <ActionResult> BlockUser(int?id)
        {
            if (id == null || id <= 0)
            {
                return(NotFound());
            }
            var userId        = User.FindFirstValue(ClaimTypes.NameIdentifier); // will give the user's userI
            var UserInventory = await _DataAccess.UserInventoryDataAccess.GetUserInventoryByUserAsync(userId);

            var otherUserInventory = await _DataAccess.UserInventoryDataAccess.GetInventoryAsync(id ?? 0);

            if (UserInventory == null || otherUserInventory == null)
            {
                return(NotFound());
            }
            var item = await _DataAccess.UserInventoryDataAccess.GetFriendBlockItem(otherUserInventory.Id, UserInventory.Id);

            if (item == null)
            {
                item = new FriendBlockItem();
                item.UserInventorTwoId  = id ?? 0;
                item.UserInventoryOneId = UserInventory.Id;
                item.Status             = FriendBlockStatus.Blocked;
                await _DataAccess.UserInventoryDataAccess.UpsertFriendBlockListItem(item);
            }
            else
            {
                item.Status = FriendBlockStatus.Blocked;
                await _DataAccess.UserInventoryDataAccess.UpsertFriendBlockListItem(item);
            }
            return(RedirectToAction("Index", "Dashboard"));
        }
 private FriendBlockItem PopulateFriendBlockListItem(FriendBlockItem item)
 {
     if (item != null)
     {
         if (item.UserInventorTwoId > 0)
         {
             item.UserInventoryTwo = PopulateUserInventory(_context.UserInventories.FirstOrDefault(x => x.Id == item.UserInventorTwoId));
         }
         if (item.UserInventoryOneId > 0)
         {
             item.UserInventoryOne = PopulateUserInventory(_context.UserInventories.FirstOrDefault(x => x.Id == item.UserInventoryOneId));
         }
     }
     return(item);
 }
        public async Task <FriendBlockItem> UpsertFriendBlockListItem(FriendBlockItem item)
        {
            var idOne    = item.UserInventoryOneId;
            var idTwo    = item.UserInventorTwoId;
            var itemData = _context.FriendBlockItems.FirstOrDefault(x => (x.UserInventorTwoId == idOne || x.UserInventoryOneId == idOne) && (x.UserInventorTwoId == idTwo || x.UserInventoryOneId == idTwo));

            if (itemData != null)
            {
                itemData.Status = item.Status;
                _context.SaveChanges();
                return(PopulateFriendBlockListItem(itemData));
            }
            else
            {
                _context.FriendBlockItems.Add(item);
                _context.SaveChanges();
                return(PopulateFriendBlockListItem(item));
            }
        }