public ActionResult Update(UpdateRestaurantVm data)
        {
            var restaurant = service.Uow.Restaurants.GetById(data.RestaurantId);

            restaurant.Name            = data.RestaurantName;
            restaurant.Adress          = data.Adress;
            restaurant.PhoneNumber     = data.PhoneNumber;
            restaurant.DistrictId      = data.DistrictId;
            restaurant.LastUpdatedDate = DateTime.Now;

            if (data.RestaurantImage != null)
            {
                if (System.IO.File.Exists(Server.MapPath(restaurant.CoverImagePath)))
                {
                    System.IO.File.Delete(Server.MapPath(restaurant.CoverImagePath));
                }

                WebImage img = new WebImage(data.RestaurantImage.InputStream);
                img.Resize(640, 360, false);
                string fileName = restaurant.Id + "_" + DateTime.Now.ToString("yyyyMMddHHmmssfffffff");
                img.FileName = fileName + "." + img.ImageFormat;
                restaurant.CoverImagePath = "/Content/Images/CoverPics/" + img.FileName;
                img.Save(Server.MapPath("/Content/Images/CoverPics/") + img.FileName);
            }

            service.Uow.Restaurants.Update(restaurant);

            if (data.FeatureIds != null)
            {
                service.Uow.RestaurantFeatures.DeleteByRestaurantId(data.RestaurantId);
                foreach (var featureId in data.FeatureIds)
                {
                    var restaurantFeature = new RestaurantFeature()
                    {
                        RestaurantId = data.RestaurantId,
                        FeatureId    = featureId
                    };
                    service.Uow.RestaurantFeatures.Insert(restaurantFeature);
                }
            }

            if (data.CategoryIds != null)
            {
                service.Uow.RestaurantCategories.DeleteByRestaurantId(data.RestaurantId);
                foreach (var categoryId in data.CategoryIds)
                {
                    var restaurantCategory = new RestaurantCategory()
                    {
                        RestaurantId = data.RestaurantId,
                        CategoryId   = categoryId
                    };
                    service.Uow.RestaurantCategories.Insert(restaurantCategory);
                }
            }
            service.Uow.Save();
            return(RedirectToAction("List"));
        }
        private int getCountRest(List <Restaurant> RestaurantsList, RestaurantFeature Feature)
        {
            int count = 0;

            foreach (var rest in RestaurantsList)
            {
                foreach (var Feat in rest.RestaurantFeatures)
                {
                    if (Feat.Id == Feature.Id)
                    {
                        count++;
                    }
                }
            }
            return(count);
        }
        public ActionResult Add(AddRestaurantVm data)
        {
            if (ModelState.IsValid)
            {
                var restaurant = new Restaurant();
                restaurant.RestaurantKey = Guid.NewGuid().ToString();
                restaurant.Name          = data.RestaurantName;
                restaurant.Adress        = data.Adress;
                restaurant.PhoneNumber   = data.PhoneNumber;
                restaurant.DistrictId    = data.DistrictId;
                restaurant.AddedBy       = User.Identity.GetUserId();

                service.Uow.Restaurants.Insert(restaurant);
                service.Uow.Save();

                int restaurantId = service.Uow.Restaurants.GetByRestaurantKey(restaurant.RestaurantKey).Id;

                WebImage img = new WebImage(data.RestaurantImage.InputStream);
                img.Resize(640, 360, false);
                string fileName = restaurantId + "_" + DateTime.Now.ToString("yyyyMMddHHmmssfffffff");
                img.FileName = fileName + "." + img.ImageFormat;
                restaurant.CoverImagePath = "/Content/Images/CoverPics/" + img.FileName;
                img.Save(Server.MapPath("/Content/Images/CoverPics/") + img.FileName);

                service.Uow.Restaurants.Update(restaurant);
                service.Uow.Save();

                if (data.FeatureIds != null)
                {
                    foreach (var featureId in data.FeatureIds)
                    {
                        var restaurantFeature = new RestaurantFeature()
                        {
                            RestaurantId = restaurantId,
                            FeatureId    = featureId
                        };
                        service.Uow.RestaurantFeatures.Insert(restaurantFeature);
                    }
                }
                if (data.CategoryIds != null)
                {
                    foreach (var categoryId in data.CategoryIds)
                    {
                        var restaurantCategory = new RestaurantCategory()
                        {
                            RestaurantId = restaurantId,
                            CategoryId   = categoryId
                        };
                        service.Uow.RestaurantCategories.Insert(restaurantCategory);
                    }
                }
                var dummyReview = new Review()
                {
                    Content         = "Dummy Content",
                    Score           = null,
                    UserId          = User.Identity.GetUserId(),
                    RestaurantId    = restaurantId,
                    isConfirmed     = true,
                    AddedDate       = DateTime.Now,
                    LastUpdatedDate = DateTime.Now,
                    IsActive        = true
                };
                service.Uow.Reviews.Insert(dummyReview);
                service.Uow.Save();
            }
            return(RedirectToAction("Add"));
        }