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