// POST api/product public HttpResponseMessage Post(ProductListViewModel.ProductListItemViewModel value) { HttpResponseMessage result = null; try { Mapper.CreateMap <ProductListViewModel.ProductListItemViewModel, Product>() .ForMember(dest => dest.Id, p => p.Ignore()) .ForMember(dest => dest.CreatedOnUtc, p => p.UseValue(System.DateTime.UtcNow)); Mapper.CreateMap <Product, ProductListViewModel.ProductListItemViewModel>(); Mapper.CreateMap <Product, ProductListViewModel.ProductListItemViewModel.ProductVariantListItemViewModel>(); var product = Mapper.Map <Product>(value); _ProductService.SaveProduct(product); DataManager.SaveChanges(); var model = Mapper.Map <ProductListViewModel.ProductListItemViewModel>(product); // result = new HttpResponseMessage { Content = new StringContent(res), StatusCode = HttpStatusCode.OK }; result = Request.CreateResponse <ProductListViewModel.ProductListItemViewModel>(HttpStatusCode.OK, model); } catch (FluentValidation.ValidationException ve) { var errors = ve.Message; result = new HttpResponseMessage { StatusCode = HttpStatusCode.OK }; } return(result); }
// PUT api/product/5 public HttpResponseMessage Put(ProductListViewModel.ProductListItemViewModel value) { Mapper.CreateMap <ProductListViewModel.ProductListItemViewModel, Product>(); Mapper.CreateMap <ProductListViewModel.ProductListItemViewModel.ProductVariantListItemViewModel, Product.ProductVariant>(); var item = _ProductService.GetProductById(value.Id); var product = Mapper.Map(value, item); _ProductService.SaveProduct(item); DataManager.SaveChanges(); var result = new HttpResponseMessage(HttpStatusCode.OK); IContentNegotiator negotiator = Configuration.Services.GetContentNegotiator(); MediaTypeHeaderValue mediaType; var contentNegotiationResult = negotiator.Negotiate(typeof(ProductListViewModel.ProductListItemViewModel), Request, Configuration.Formatters); result.Content = new System.Net.Http.ObjectContent <ProductListViewModel.ProductListItemViewModel>(value, contentNegotiationResult.Formatter); return(result); }