var barcodePost = await _barcodePostRepository.FindAsync(barcodeSpec);
var barcodeQuantity = barcodePost?.GroupBy(b => b.BarcodeNumber)
.Select(g => new { BarcodeNumber = g.Key, Quantity = g.Sum(b => b.Quantity) })
.ToDictionary(g => g.BarcodeNumber, g => g.Quantity) ?? new Dictionary<long, decimal>();
var result = (from data in barcodeData
join material in materialDetails on data.ProductId equals material.ProductId
join barcode in barcodeQuantity on data.Barcode equals barcode.Key into barcodeGroup
from barcode in barcodeGroup.DefaultIfEmpty()
where material.Quantity - barcode.Value > 0
select new VendorWiseStockDto()
{
VendorName = vendor.Name,
CurrentStock = material.Quantity - barcode.Value,
}).ToList();
This is the LINQ Query I have written I want to convert it into PostgreSQL raw query how can I do it or write the raw query.
public async Task<IList<VendorWiseStock>> GetVendorWiseStocksAsync(Guid vendorId)
=> await( from data in _dbContext.MaterialInwardBarcodes
join material in _dbContext.MaterialInwardDetails on data.ProductId equals material.ProductId
join barcode in _dbContext.BarcodePost on data.Barcode equals barcode.BarcodeNumber into barcodeGroup
join vendor in _dbContext.Vendors on data.VendorId equals vendor.Id
);
}
This is what I have tried and I am having no Idea how I can write that query into raw PostgreSQL