public async Task <ActionResult> Edit([Bind(Include = "Id,Number,Name,City,Distance")] ProductViewModelEdit productViewModel)
        {
            List <Product> duplicatedProducts = Db.Products.Where(x => (x.Number == productViewModel.Number || x.Name == productViewModel.Name) && (x.Id != productViewModel.Id)).ToList();

            if (duplicatedProducts.Count() > 0)
            {
                Flash.Error("Error", "El producto no puede ser editado con esos valores, se encuentran duplicados");
                return(View(productViewModel));
            }
            if (ModelState.IsValid)
            {
                Product product = await Db.Products.Where(x => x.Id == productViewModel.Id).FirstOrDefaultAsync();

                product.Number   = productViewModel.Number;
                product.Name     = productViewModel.Name;
                product.City     = productViewModel.City;
                product.Distance = productViewModel.Distance;

                if (TryUpdateModel(product))
                {
                    await Db.SaveChangesAsync();

                    Flash.Success("Ok", "El producto ha sido editado exitosamente");
                    return(RedirectToAction("Index"));
                }
                else
                {
                    Flash.Error("Error", "El usuario no puede ser editado");
                    return(View(productViewModel));
                }
            }
            return(View(productViewModel));
        }
        // GET: /Products/Edit/5
        public async Task <ActionResult> Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Product product = await Db.Products.FindAsync(id);

            if (product == null)
            {
                return(HttpNotFound());
            }
            ProductViewModelEdit productViewModel = new ProductViewModelEdit
            {
                Id       = product.Id,
                Name     = product.Name,
                Number   = product.Number,
                City     = product.City,
                Distance = product.Distance
            };

            return(View(productViewModel));
        }