Exemple #1
0
        public async Task <ApiResult <GetByIdProduct> > GetByIdProduct(int id)
        {
            var product = await _context.Products.FindAsync(id);

            if (product == null)
            {
                return(new ApiErrorResult <GetByIdProduct>("Sản phẩm không tồn tại"));
            }

            var query = await(from s in _context.Products
                              join g in _context.ProductTypes on s.IdProductType equals g.Id
                              join d in _context.Packs on s.Id equals d.IdProduct
                              where s.Id == id
                              select new { s, g, d }).FirstAsync();

            var result = new GetByIdProduct()
            {
                Id              = product.Id,
                Code            = product.Code,
                Name            = product.Name,
                Image           = product.Image,
                IdProductType   = product.IdProductType,
                NameProductType = query.g.Name,
                Description     = product.Description,
                Amount          = product.Amount,
                Reminder        = product.Reminder
            };

            result.NamePackDefault = query.s.Packs.Where(x => x.Default == true).Select(x => x.Name).First();

            var pack = from s in _context.Products
                       join d in _context.Packs on s.Id equals d.IdProduct
                       where s.Id == id && d.Default != true
                       select new { s, d };

            result.Pack = pack.Select(
                i => new GetPack()
            {
                Name    = i.d.Name,
                Value   = i.d.Value,
                Default = i.d.Default,
                Change  = (long)(result.Amount / i.d.Value)
            }
                ).ToList();
            return(new ApiSuccessResult <GetByIdProduct>(result));
        }
        public async Task <GetByIdProduct> GetByIdProduct(int id)
        {
            var result = await _productApiClient.GetByIdProduct(id);

            var data = new GetByIdProduct()
            {
                Id              = result.ResultObj.Id,
                Code            = result.ResultObj.Code,
                Name            = result.ResultObj.Name,
                Image           = result.ResultObj.Image,
                Description     = result.ResultObj.Description,
                IdProductType   = result.ResultObj.IdProductType,
                NameProductType = result.ResultObj.NameProductType,
                Amount          = result.ResultObj.Amount,
                Pack            = result.ResultObj.Pack,
                Reminder        = result.ResultObj.Reminder,
                NamePackDefault = result.ResultObj.NamePackDefault
            };

            return(data);
        }