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