public void ToEntity_should_map_properties_when_invoked()
        {
            var editProduct = new EditProduct {Name = "Product Name", Description = "Product Description", Sku = "123"};

            var product = editProduct.ToEntity();

            Assert.That(product.Name, Is.EqualTo(editProduct.Name));
            Assert.That(product.Description, Is.EqualTo(editProduct.Description));
            Assert.That(product.Sku, Is.EqualTo(editProduct.Sku));
        }
        public ActionResult Add(EditProduct product)
        {
            var productEntity = new Product();
            if (ModelState.IsValid) // validate inputs first
            {
                productEntity = product.ToEntity();
                if (!productService.TryAdd(productEntity)) // validate business logic
                {
                    AddModelStateErrors(productEntity.Errors);
                }
            }

            if (!ModelState.IsValid)
            {
                ViewBag.Title = Localisation.Admin.PageContent.Add;
                ViewBag.Product = Localisation.Admin.PageContent.Product;
                ViewBag.ViewType = "Add";
                return View("Edit", product);
            }
            return RedirectToAction("Edit", new { id = productEntity.Id });
        }