public IActionResult Search([FromQuery] YachtMerchantProductInventorySearchModel model) { var result = _yachtMerchantProductInventoryService.GetAllYachtMerchantProductInventory(model); if (result.IsSuccessStatusCode) { return(Ok(result)); } return(BadRequest()); }
public BaseResponse <PagedList <YachtMerchantProductInventoryViewModel> > GetAllYachtMerchantProductInventory(YachtMerchantProductInventorySearchModel model) { try { var query = (from i in _context.YachtMerchantProductInventories .Where(k => !k.Deleted && k.MerchantFid == model.MerchantId && (string.IsNullOrEmpty(model.ProductName) || k.ProductName.Contains(model.ProductName)) && (model.CategoryId == 0 || k.ProductCategoryFid == model.CategoryId) && (model.GSTTTypeId == 0 || k.GsttypeFid == model.GSTTTypeId) && (model.PriceTypeId == 0 || k.PriceTypeFid == model.PriceTypeId) && (model.ItemUnitId == 0 || k.ItemUnitFid == model.ItemUnitId) ) select new YachtMerchantProductInventoryViewModel() { Id = i.Id, Quantities = i.Quantities, ProductName = i.ProductName, ProductCode = i.ProductCode, GsttypeFid = i.GsttypeFid, PriceTypeFid = i.PriceTypeFid, ProductCategoryFid = i.ProductCategoryFid, ProductCategoryResKey = i.ProductCategoryResKey, PriceTypeResKey = i.PriceTypeResKey, ItemUnitResKey = i.ItemUnitResKey, GsttypeResKey = i.GsttypeResKey, Count = _context.YachtMerchantProductSuppliers.Where(x => x.ProductFid == i.Id && !x.Deleted).Count(), Price = _context.YachtMerchantProductPricings .OrderByDescending(x => x.EffectiveDate) .FirstOrDefault(x => x.ProductFid == i.Id) != null? _context.YachtMerchantProductPricings .OrderByDescending(x => x.EffectiveDate) .FirstOrDefault(x => x.ProductFid == i.Id && !x.Deleted && DateTime.Now.Date >= x.EffectiveDate.Date) .Price : 0, CurrencyCode = _context.YachtMerchantProductPricings.FirstOrDefault(x => x.ProductFid == i.Id && !x.Deleted).CurrencyCode ?? "", CultureCode = _context.YachtMerchantProductPricings.FirstOrDefault(x => x.ProductFid == i.Id && !x.Deleted).CultureCode ?? "", }).OrderByDescending(x => x.Id); return(BaseResponse <PagedList <YachtMerchantProductInventoryViewModel> > .Success(new PagedList <YachtMerchantProductInventoryViewModel>(query, model.PageIndex, model.PageSize))); } catch (Exception ex) { return(BaseResponse <PagedList <YachtMerchantProductInventoryViewModel> > .InternalServerError(message : ex.Message, fullMsg : ex.StackTrace)); } }