public HttpResponseMessage GetById(HttpRequestMessage request, int id) { return(CreateHttpResponse(request, () => { var model = _productService.GetById(id); var responseData = Mapper.Map <Product, ProductViewModel>(model); var listMaterial = _materialService.GetListMaterialByProductId(id); responseData.Materials = Mapper.Map <IEnumerable <Material>, IEnumerable <MaterialViewModel> >(listMaterial); var listColor = _colorService.GetListColorByProductId(id); responseData.Colors = Mapper.Map <IEnumerable <Color>, IEnumerable <ColorViewModel> >(listColor); var listSize = _sizeService.GetListSizeByProductId(id); responseData.Sizes = Mapper.Map <IEnumerable <Size>, IEnumerable <SizeViewModel> >(listSize); var listHeight = _heightService.GetListHeightByProductId(id); responseData.Heights = Mapper.Map <IEnumerable <Height>, IEnumerable <HeightViewModel> >(listHeight); var listType = _typeService.GetListTypeByProductId(id); responseData.Types = Mapper.Map <IEnumerable <Model.Models.Type>, IEnumerable <TypeViewModel> >(listType); var listHeel = _heelService.GetListHeelByProductId(id); responseData.Heels = Mapper.Map <IEnumerable <Heel>, IEnumerable <HeelViewModel> >(listHeel); var response = request.CreateResponse(HttpStatusCode.OK, responseData); return response; })); }