public RestaurantShemaViewModel GetRestaurantViewModelSchema(int?id)
        {
            using (GoodTasteContext context = new GoodTasteContext())
            {
                try
                {
                    Restaurant       Rest   = context.Restaurants.Find(id);
                    RestaurantSchema Schema = Rest.RestaurantSchemas.FirstOrDefault();
                    Schema = context.RestaurantSchemas.Include(t => t.Restaurant).FirstOrDefault(t => t.Id == id);
                    Schema = context.RestaurantSchemas.Include(t => t.Tables).FirstOrDefault();
                    RestaurantShemaViewModel vmSchema = new RestaurantShemaViewModel();
                    vmSchema.Id           = Schema.Id;
                    vmSchema.Name         = Schema.Name;
                    vmSchema.RestaurantId = Convert.ToInt32(id);
                    List <TableViewModel> vmTables = new List <TableViewModel>();

                    foreach (var table in Schema.Tables)
                    {
                        TableViewModel vmTable = new TableViewModel {
                            Id = table.Id, X = table.X, Y = table.Y, Seats = table.Seats, ReservedAndConfirmed = false, Reserved = false
                        };
                        foreach (var reserv in table.TableReservation)
                        {
                            if (reserv.Date.Date == DateTime.Now.Date && reserv.ReservedAndConfirmed == true)
                            {
                                vmTable.ReservedAndConfirmed = true;
                                break;
                            }
                            else if (reserv.Date.Date == DateTime.Now.Date && reserv.Reserved == true)
                            {
                                vmTable.Reserved = true;
                                break;
                            }
                        }
                        vmTables.Add(vmTable);
                    }

                    vmSchema.Tables  = vmTables;
                    vmSchema.XLength = Schema.XLength;
                    vmSchema.YLength = Schema.YLength;
                    return(vmSchema);
                }
                catch
                {
                    throw new Exception("Restaurant not found");
                }
            }
        }
        public async Task <ActionResult> Schema(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DataManagerCreator       factory = new DefaultDataManagerCreator();
            IBaseDataManager         manager = factory.GetBaseDataManager();
            RestaurantSchema         Schema  = manager.GetRestaurantSchema(id);
            RestaurantShemaViewModel schema  = manager.GetRestaurantViewModelSchema(id);

            if (Schema == null)
            {
                return(HttpNotFound());
            }

            return(View(schema));
        }