using System.Collections.Generic;
public static void Main()
var material1 = new MaterialMaster
var material2 = new MaterialMaster
var plantId1 = Guid.NewGuid();
var plantId2 = Guid.NewGuid();
var location = new Location
var stock1 = new PartStock
MaterialId = material1.Id,
LocationId = location.Id,
var stock2 = new PartStock
MaterialId = material2.Id,
LocationId = location.Id,
material1.Stock = new List<PartStock> { stock1, stock2 };
var releasedStatusId = Guid.NewGuid();
var order = new DemoOrder
StatusId = releasedStatusId,
var item1 = new DemoOrderItem
Description = "Test Description",
MaterialId = material1.Id,
var item2 = new DemoOrderItem
Description = "Test Description 2",
MaterialId = material2.Id,
order.Items = new List<DemoOrderItem> { item1, item2 };
var orders = new List<DemoOrder> { order };
var selectedOrders = orders
.Where(entity => entity.StatusId == releasedStatusId)
AvailableStockCount = entity.Items
.Where(item => item.Material.Stock
.Select(stock => new { stock.Location.PlantId, stock.MaterialId })
.Any(stockItem => stockItem.PlantId == order.PlantId && stockItem.MaterialId == item.MaterialId))
foreach (var selectedOrder in selectedOrders){
Console.WriteLine($"Order Id {selectedOrder.Id} - AvailableStockCount - {selectedOrder.AvailableStockCount}");
public Guid Id { get; set; }
public Guid PlantId { get; set; }
public Guid StatusId { get; set; }
public IList<DemoOrderItem> Items { get; set; } = new List<DemoOrderItem>();
public class DemoOrderItem
public Guid Id { get; set; }
public string Description { get; set; } = string.Empty;
public int Qty { get; set; }
public Guid MaterialId { get; set; }
public MaterialMaster Material { get; set; } = null!;
public class MaterialMaster
public Guid Id { get; set; }
public string Code { get; internal set; } = string.Empty;
public IList<PartStock> Stock { get; set; } = new List<PartStock>();
public Guid Id { get; set; }
public Guid MaterialId { get; set; }
public MaterialMaster Material { get; set; } = null!;
public Guid LocationId { get; set; }
public Location Location { get; set; } = null!;
public int Qty { get; set; }
public Guid Id { get; set; }
public string Name { get; set; } = null!;
public Guid PlantId { get; set; }