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));
            }
        }