// GET: Restaurant/Details/5
        public async Task <ActionResult> Details(int?id, int?idEvent)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DataManagerCreator     factory         = new DefaultDataManagerCreator();
            IRestaurantDataManager manager         = factory.GetRestaurantDataManager();
            IBaseDataManager       BaseDataManager = factory.GetBaseDataManager();

            ViewBag.UserId = BaseDataManager.GetCurrectUserId();
            Restaurant Rest = new Restaurant();

            try
            {
                Rest = manager.GetRestaurant(id);
            }
            catch
            {
                id   = 1;
                Rest = manager.GetRestaurant(id);
            }
            TempData["RestId"]        = id;
            TempData["ReservDate"]    = DateTime.Now.Date;
            ViewData["ReservDate"]    = DateTime.Now.Date;
            ViewData["ReservDateStr"] = DateTime.Now.Date.ToString("dd.MM.yyyy");
            ViewData["foodRank"]      = manager.GetFoodRank(id).ToString();
            ViewData["serviceRank"]   = manager.GetServiceRank(id).ToString();
            ViewData["ambienceRank"]  = manager.GetAmbienceRank(id).ToString();
            ViewData["restRank"]      = manager.GetRestaurantRank(id).ToString();
            if (idEvent != null)
            {
                RestaurantEvent RE = manager.GetListRestaurantEvents().Where(re => re.Id == idEvent).FirstOrDefault();
                ViewData["REdate"] = RE.StartDate.Ticks.ToString();
            }
            if (Rest == null)
            {
                return(HttpNotFound());
            }

            for (int i = 0; i < Rest.RestaurantSchemas.FirstOrDefault().Tables.Count(); i++)
            {
                for (int j = 0; j < Rest.RestaurantSchemas.FirstOrDefault().Tables[i].TableReservation.Count(); j++)
                {
                    var reserv = Rest.RestaurantSchemas.FirstOrDefault().Tables[i].TableReservation[j];
                    if (DateTime.Now.Date.ToString("dd.MM.yyyy") != reserv.Date.Date.ToString("dd.MM.yyyy"))
                    {
                        Rest.RestaurantSchemas.FirstOrDefault().Tables[i].TableReservation.Remove(reserv);
                    }
                }
            }

            return(View(Rest));
        }
        // GET: Restaurant
        public ActionResult Restaurants(string searchText)
        {
            DataManagerCreator     factory      = new DefaultDataManagerCreator();
            IRestaurantDataManager manager      = factory.GetRestaurantDataManager();
            IRestaurantDataManager rest_manager = factory.GetRestaurantDataManager();
            var Restaurants = rest_manager.Restaurants();

            if (Restaurants.Restaurants.Count > 1)
            {
                return(View(Restaurants));
            }
            else if (Restaurants.Restaurants.Count == 1)
            {
                return(View("~/Views/Restaurant/Details.cshtml", manager.GetRestaurant(Restaurants.Restaurants[0].Id)));
            }
            else
            {
                return(View(rest_manager.Restaurants()));
            }
        }
        public async Task <ActionResult> ConfirmReserve(FormCollection collection)
        {
            try
            {
                var        tenm    = collection.AllKeys.ToList();
                var        tabls   = tenm.FindAll((x) => x.Contains(".Id"));
                List <int> tablIds = new List <int>();
                foreach (var t in tabls)
                {
                    int leng = t.IndexOf(']') - 1;
                    tablIds.Add(Convert.ToInt32(t.Substring(1, leng)));
                }
                string Id    = Request.Form["Id"];
                string name  = Request.Form["name"];
                string phone = Request.Form["phone"];
                string date  = Request.Form["date"];
                string time  = Request.Form["time"];

                DataManagerCreator     factory = new DefaultDataManagerCreator();
                IRestaurantDataManager manager = factory.GetRestaurantDataManager();
                int            lengId          = Id.IndexOf(']') - 1;
                Restaurant     Rest            = manager.GetRestaurant(Convert.ToInt32(Id));
                List <Table>   Tables          = manager.GetListTables(tablIds);
                ConfirmReserve ConfirmReserve  = new ConfirmReserve()
                {
                    UserName   = name,
                    Phone      = phone,
                    Date       = date,
                    Time       = time,
                    Tables     = Tables,
                    Restaurant = Rest
                };
                return(View(ConfirmReserve));
            }
            catch
            {
                return(RedirectToAction("Index", new { id = 1 }));
            }
        }