public ActionResult Create(AddEditVenueModel model)
        {
            Provider provider = db.Providers.Find(userContext.ItemId);

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

            if (ModelState.IsValid)
            {
                CreateFromModel(model, provider.ProviderId);

                List <String> messages = model.GetWarningMessages();
                if (messages.Count == 0)
                {
                    ShowGenericSavedMessage();
                }
                else
                {
                    // Add a blank entry at the beginning so the String.Join starts with <br /><br />
                    messages.Insert(0, "");
                    SessionMessage.SetMessage(AppGlobal.Language.GetText(this, "SaveSuccessfulWithWarnings", "Your changes were saved successfully with the following warnings:") + String.Join("<br /><br />", messages), SessionMessageType.Success);
                }

                return(RedirectToAction("List"));
            }

            // Populate drop downs
            GetLookups(model);

            return(View(model));
        }
        public async Task <ActionResult> Edit(Int32 id, AddEditVenueModel model)
        {
            Provider provider = db.Providers.Find(userContext.ItemId);

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

            if (model.VenueId != id)
            {
                return(HttpNotFound());
            }

            Venue venue = db.Venues.Find(id);

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

            if (ModelState.IsValid)
            {
                venue = model.ToEntity(db);
                if (venue.ProviderId != userContext.ItemId)
                {
                    // User is trying to change the VenueId (or the context has changed)
                    return(HttpNotFound());
                }

                venue.ModifiedByUserId    = Permission.GetCurrentUserId();
                venue.ModifiedDateTimeUtc = DateTime.UtcNow;

                Address venueAddress = model.Address.ToEntity(db);

                db.Entry(venueAddress).State = EntityState.Modified;
                db.Entry(venue).State        = EntityState.Modified;
                await db.SaveChangesAsync();

                List <String> messages = model.GetWarningMessages();
                if (messages.Count == 0)
                {
                    ShowGenericSavedMessage();
                }
                else
                {
                    // Add a blank entry at the beginning so the String.Join starts with <br /><br />
                    messages.Insert(0, "");
                    SessionMessage.SetMessage(AppGlobal.Language.GetText(this, "SaveSuccessfulWithWarnings", "Your changes were saved successfully with the following warnings:") + String.Join("<br /><br />", messages), SessionMessageType.Success);
                }

                return(RedirectToAction("List"));
            }

            // Populate drop downs
            GetLookups(model);

            return(View(model));
        }
 private void GetLookups(AddEditVenueModel model)
 {
     model.Address.Populate(db);
     ViewBag.RecordStatuses = new SelectList(
         db.RecordStatus,
         "RecordStatusId",
         "RecordStatusName",
         model.RecordStatusId);
 }
        private Venue CreateFromModel(AddEditVenueModel model, Int32 providerId)
        {
            Venue venue = model.ToEntity(db);

            venue.ProviderId     = providerId;
            venue.RecordStatusId = (Int32)Constants.RecordStatus.Live;
            Address venueAddress = model.Address.ToEntity(db);

            venue.Address = venueAddress;
            db.Addresses.Add(venueAddress);
            db.Venues.Add(venue);
            db.SaveChanges();

            return(venue);
        }
        public ActionResult Create()
        {
            Provider provider = db.Providers.Find(userContext.ItemId);

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

            AddEditVenueModel model = new AddEditVenueModel();

            // Populate drop downs
            GetLookups(model);

            return(View(model));
        }
        public ActionResult CreateFromDialog(AddEditVenueModel model)
        {
            Provider provider = db.Providers.Find(userContext.ItemId);

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

            model.IsInDialog = true;

            if (ModelState.IsValid)
            {
                Venue venue = CreateFromModel(model, provider.ProviderId);
                return(Json(new VenueJsonModel(venue)));
            }

            // Populate drop downs
            GetLookups(model);

            return(View("Create", model));
        }
        public ActionResult Edit(Int32?id)
        {
            Provider provider = db.Providers.Find(userContext.ItemId);

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

            Venue venue = db.Venues.Include("Address").FirstOrDefault(x => x.VenueId == id);

            if (venue == null || venue.ProviderId != userContext.ItemId)
            {
                return(HttpNotFound());
            }

            AddEditVenueModel model = new AddEditVenueModel(venue);

            // Populate drop downs
            GetLookups(model);

            return(View(model));
        }