Exemple #1
0
        // GET: Locals/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Local local  = db.Local.Find(id);
            var   idCard = ((System.Web.HttpContext.Current.User as MyIdentity.MyPrincipal).Identity as MyIdentity).User.IdCard;

            if (local == null || local.Restaurant.Administrator.IdCard != idCard)
            {
                return(HttpNotFound());
            }

            ViewBag.IdDistrict   = new SelectList(db.District, "IdDistrict", "Name");
            ViewBag.IdRestaurant = new SelectList(db.Restaurant, "IdRestaurant", "Name");

            localRegister model = new localRegister
            {
                restaurant       = db.Restaurant.Find(local.IdRestaurant),
                cantMesas        = db.Table.Count(cantTable => cantTable.IdLocal == local.IdLocal),
                idRestaurant     = local.IdRestaurant,
                menu             = GetMenuLocalEdit(id),
                local            = local,
                photos           = db.Photo.ToList().Where(m => m.Local.Any(n => n.IdLocal == local.IdLocal)),
                uploadFilesNames = "",
                deletedFilesIds  = ""
            };

            return(View(model));
        }
Exemple #2
0
        // GET: Locals/Create
        public ActionResult Create(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ViewBag.IdDistrict   = new SelectList(db.District, "IdDistrict", "Name");
            ViewBag.IdRestaurant = new SelectList(db.Restaurant, "IdRestaurant", "Name");

            localRegister model = new localRegister();

            model.restaurant   = db.Restaurant.Find(id);
            model.idRestaurant = (int)id;
            model.menu         = GetMenuLocal(id);
            model.local        = new Local();
            return(View(model));
        }
Exemple #3
0
        public ActionResult Edit(localRegister dataModel)
        {
            if (!ModelState.IsValid || dataModel.local.IdDistrict == 0)
            {
                if (dataModel.local.IdDistrict == 0)
                {
                    TempData["Error"] = "Please select a District.";
                }
                ViewBag.IdDistrict   = new SelectList(db.District, "IdDistrict", "Name");
                ViewBag.IdRestaurant = new SelectList(db.Restaurant, "IdRestaurant", "Name");
                localRegister model = new localRegister
                {
                    restaurant       = db.Restaurant.Find(dataModel.idRestaurant),
                    cantMesas        = db.Table.Count(cantTable => cantTable.IdLocal == dataModel.local.IdLocal),
                    idRestaurant     = dataModel.idRestaurant,
                    menu             = GetMenuLocalEdit(dataModel.idRestaurant),
                    local            = dataModel.local,
                    photos           = db.Photo.ToList().Where(m => m.Local.Any(n => n.IdLocal == dataModel.local.IdLocal)),
                    uploadFilesNames = "",
                    deletedFilesIds  = ""
                };
                return(View(model));
            }

            using (var dbTran = db.Database.BeginTransaction())
            {
                try
                {
                    Local local = db.Local.Find(dataModel.local.IdLocal);
                    local.Longitude       = dataModel.local.Longitude;
                    local.Latitude        = dataModel.local.Latitude;
                    local.IdDistrict      = dataModel.local.IdDistrict;
                    local.Detail          = dataModel.local.Detail;
                    db.Entry(local).State = EntityState.Modified;

                    if (dataModel.menu != null)
                    {
                        foreach (DishLocal localDish in dataModel.menu)
                        {
                            DishesPerLocal tmpDishesPerLocal = db.DishesPerLocal.Find(local.IdLocal, localDish.idDish);
                            tmpDishesPerLocal.State           = localDish.state;
                            db.Entry(tmpDishesPerLocal).State = EntityState.Modified;
                        }
                    }

                    int cantMesas = db.Table.Count(cantTable => cantTable.IdLocal == local.IdLocal);
                    if (dataModel.cantMesas > cantMesas)
                    {
                        for (int i = cantMesas + 1; i < dataModel.cantMesas; i++)
                        {
                            Table tmpTable = new Table();
                            tmpTable.IdLocal         = local.IdLocal;
                            tmpTable.DistinctiveName = i.ToString();
                            db.Table.Add(tmpTable);
                        }
                    }
                    else if (dataModel.cantMesas < cantMesas)
                    {
                        var tables = db.Table.Where(cantTable => cantTable.IdLocal == local.IdLocal).ToArray();
                        for (int i = cantMesas - 1; i > dataModel.cantMesas; i--)
                        {
                            db.Table.Remove(tables[i]);
                        }
                    }

                    if (dataModel.deletedFilesIds != null)
                    {
                        foreach (var idPhotoDelete in dataModel.deletedFilesIds.Split(','))
                        {
                            db.PR_DeleteLocalPhoto(local.IdLocal, int.Parse(idPhotoDelete));
                        }
                    }

                    if (dataModel.uploadFilesNames != null)
                    {
                        string[] uploadFiles = dataModel.uploadFilesNames.Split(',');
                        for (int i = 0; i < Request.Files.Count; i++)
                        {
                            HttpPostedFileBase tmpFile = Request.Files[i];
                            if (tmpFile != null && uploadFiles.Any(name => name == tmpFile.FileName) && uploadFiles.Length > 0)
                            {
                                byte[] dbImage  = FileUpload(tmpFile);
                                Photo  tmpPhoto = new Photo();
                                tmpPhoto.Photo1 = dbImage;
                                db.Photo.Add(tmpPhoto);

                                local.Photo.Add(tmpPhoto);
                                tmpPhoto.Local.Add(local);
                                uploadFiles = uploadFiles.Where(name => name != tmpFile.FileName).ToArray();
                            }
                        }
                    }

                    db.SaveChanges();
                    dbTran.Commit();
                    TempData["Success"] = "Local edited successfully.";
                    return(RedirectToAction("Index", "Locals", new { id = dataModel.idRestaurant }));
                }
                catch (Exception ex)
                {
                    dbTran.Rollback();
                    TempData["Error"] = ex.ToString();
                    return(RedirectToAction("Edit", "Locals", new { id = dataModel.local.IdLocal }));
                }
            }
        }
Exemple #4
0
        public ActionResult Create(localRegister dataModel)
        {
            if (!ModelState.IsValid || dataModel.local.IdDistrict == 0)
            {
                if (dataModel.local.IdDistrict == 0)
                {
                    TempData["Error"] = "Please select a District.";
                }
                ViewBag.IdDistrict   = new SelectList(db.District, "IdDistrict", "Name");
                ViewBag.IdRestaurant = new SelectList(db.Restaurant, "IdRestaurant", "Name");

                localRegister model = new localRegister();
                model.restaurant       = db.Restaurant.Find(dataModel.idRestaurant);
                model.idRestaurant     = dataModel.idRestaurant;
                model.menu             = GetMenuLocal(dataModel.idRestaurant);
                model.uploadFilesNames = String.Empty;
                model.local            = new Local();
                return(View(model));
            }


            using (var dbTran = db.Database.BeginTransaction())
            {
                try
                {
                    int idLocal = Convert.ToInt32(db.PR_CreateLocal(dataModel.idRestaurant, dataModel.local.IdDistrict,
                                                                    dataModel.local.Detail, dataModel.local.Latitude, dataModel.local.Longitude).ToList()[0]);

                    if (dataModel.menu != null)
                    {
                        foreach (DishLocal localDish in dataModel.menu)
                        {
                            DishesPerLocal tmpDishesPerLocal = new DishesPerLocal();
                            tmpDishesPerLocal.IdLocal = idLocal;
                            tmpDishesPerLocal.IdDish  = localDish.idDish;
                            tmpDishesPerLocal.State   = localDish.state;
                            db.DishesPerLocal.Add(tmpDishesPerLocal);
                        }
                    }
                    Local tmpLocal = db.Local.Find(idLocal);

                    for (int i = 1; i <= dataModel.cantMesas; i++)
                    {
                        Table tmpTable = new Table();
                        tmpTable.IdLocal         = tmpLocal.IdLocal;
                        tmpTable.DistinctiveName = i.ToString();
                        db.Table.Add(tmpTable);
                    }

                    if (dataModel.uploadFilesNames != null)
                    {
                        string[] uploadFiles = dataModel.uploadFilesNames.Split(',');
                        for (int i = 0; i < Request.Files.Count; i++)
                        {
                            HttpPostedFileBase tmpFile = Request.Files[i];
                            if (tmpFile != null && uploadFiles.Any(name => name == tmpFile.FileName) && uploadFiles.Length > 0)
                            {
                                byte[] dbImage  = FileUpload(tmpFile);
                                Photo  tmpPhoto = new Photo();
                                tmpPhoto.Photo1 = dbImage;
                                db.Photo.Add(tmpPhoto);

                                tmpLocal.Photo.Add(tmpPhoto);
                                tmpPhoto.Local.Add(tmpLocal);
                                uploadFiles = uploadFiles.Where(name => name != tmpFile.FileName).ToArray();
                            }
                        }
                    }

                    db.SaveChanges();
                    dbTran.Commit();
                    TempData["Success"] = "Local created successfully";
                    return(RedirectToAction("Index", "Locals", new { id = dataModel.idRestaurant }));
                }
                catch (Exception ex)
                {
                    dbTran.Rollback();
                    TempData["Error"] = ex.ToString();
                    return(RedirectToAction("Create", "Locals", new { id = dataModel.idRestaurant }));
                }
            }
        }