public ActionResult Edit(string key)
        {
            if (!string.IsNullOrEmpty(key))
            {
                var viewModel = Db.Enterprises.GetCompleteEnterprise(EnterpriseHelper.GetId(key), true);

                if (viewModel.Enterprise.IsNew || viewModel.Enterprise.OwnedByAccount)
                {
                    if (viewModel.Enterprise.OwnedByAccount)
                    {
                        var account = Db.Accounts.GetAccount(HttpContext.User.Identity.Name);
                        if (account.Enabled && account.Enterprises.Contains(EnterpriseHelper.GetId(key)))
                        {
                            //If account is enabled and contains this enterprise
                            return(View(viewModel));
                        }
                    }
                    else
                    {
                        return(View(viewModel));
                    }
                }
            }
            return(RedirectToAction("Index"));
        }
 public ActionResult Index(string q)
 {
     if (!string.IsNullOrEmpty(q))
     {
         var enterprise = Db.Enterprises.GetCompleteEnterprise(EnterpriseHelper.GetId(q));
         return(View(enterprise));
     }
     return(RedirectToAction("Index", "Home"));
 }
        public ActionResult Index(string key)
        {
            var viewModel = new EnterpriseViewModel();

            if (!string.IsNullOrEmpty(key))
            {
                var enterprise = Db.Enterprises.GetCompleteEnterprise(EnterpriseHelper.GetId(key)).Enterprise;
                if ((enterprise.IsNew && !enterprise.LockedFromEdit) || (HttpContext.User.Identity.IsAuthenticated && CurrentAccount.IsAdmin))
                {
                    viewModel          = enterprise;
                    viewModel.ShowForm = true;
                }
            }
            return(View(viewModel));
        }
        public ActionResult CreateTempEnterprise(EnterpriseViewModel viewModel)
        {
            if (!string.IsNullOrEmpty(viewModel.Nope))
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (string.IsNullOrEmpty(viewModel.Name))
            {
                ModelState.AddModelError("Name", "Ange restaurangens namn");
            }

            if (viewModel.DisplayCategories == null || viewModel.DisplayCategories.Count < 1)
            {
                ModelState.AddModelError("DisplayCategories", "Välj minst en kategori");
            }
            else
            {
                viewModel.DisplayCategories = EnterpriseHelper.GetDisplayCategories(viewModel.DisplayCategories);
            }

            if (viewModel.Coordinates.Lat < 1 || viewModel.Coordinates.Lng < 1)
            {
                ModelState.AddModelError("Coordinates", "Du måste ange någon platsinfo");
            }

            if (ModelState.IsValid)
            {
                var categoryList = new List <string>();
                categoryList.AddRange(viewModel.DisplayCategories.Take(6).Select(catgory => catgory.Value));

                var enterprise = new Enterprise
                {
                    Name         = viewModel.Name,
                    Phone        = viewModel.Phone,
                    StreetNumber = viewModel.StreetNumber,
                    StreetRoute  = viewModel.StreetRoute,
                    PostalCode   = viewModel.PostalCode,
                    PostalTown   = viewModel.PostalTown,
                    Commune      = viewModel.Commune,
                    County       = viewModel.County,
                    SubLocality  = viewModel.SubLocality,
                    CountryCode  = viewModel.CountryCode ?? "SE",

                    SearchTags = EnterpriseHelper.GenerateSearchTags(viewModel.Name),

                    Coordinates = new Coordinates {
                        Lat = viewModel.Coordinates.Lat, Lng = viewModel.Coordinates.Lng
                    },
                    Categories = categoryList,

                    IsNew          = true,
                    OwnedByAccount = false,
                    LockedFromEdit = false,

                    LastUpdated = DateTime.Now,

                    Menu = new Menu()
                };

                if (string.IsNullOrEmpty(viewModel.Id))
                {
                    enterprise.Id = EnterpriseHelper.GetId(GeneralHelper.GetGuid());
                    Db.Enterprises.CreateEnterprise(enterprise);
                }
                else
                {
                    var enterpriseInDb = Db.Enterprises.GetEnterpriseById(enterprise.Id);
                    if (enterpriseInDb != null)
                    {
                        Db.Enterprises.UpdateEnterprise(enterprise);
                    }
                }
                return(Json(new { url = Url.Action("Edit", new { key = EnterpriseHelper.GetKey(enterprise.Id) }) }));
            }

            viewModel.ShowForm = true;

            return(PartialView("~/Views/Manage/_AddEnterpriseForm.cshtml", viewModel));
        }