public ActionResult Create(CreateEventResponseModel model) { if (ModelState.IsValid) { if (model.Flyer.ContentLength > 5000000) DisplayError("Flyer is to large, please user a smaller image."); else { var evt = Mapper.Map<CreateEventResponseModel, Event>(model); evt.Owner = User; evt.Flyer = CreateImageLocally(Entities.Event.FlyerSizes, model.Flyer); evt.Location = Mapper.Map<Address, Entities.Address>(model.Address); evt = _eventService.SaveEvent(evt); if (evt.IsValid) { DisplayMessage("Event created successfully."); return RedirectToAction("Index"); } AddValidationResults(evt.InvalidValues); DisplayError("Event was not created successfully."); } } return View(MapToCreatEventViewModel(model)); }
private CreateEventViewModel MapToCreatEventViewModel(CreateEventResponseModel responseModel) { var occurrenceOptions = EnumExtensions.GetTypedValuesAsSelectList<EventOccurrence>().ToList(); occurrenceOptions.FirstOrDefault(x => { EventOccurrence value; return !Enum.TryParse(x.Value.ToString(), out value) || value != responseModel.Occurrence; }).Selected = true; var privacyOptions = EnumExtensions.GetTypedValuesAsSelectList<PrivacySetting>().ToList(); privacyOptions.FirstOrDefault(x => { PrivacySetting value; return !Enum.TryParse(x.Value.ToString(), out value) || value != responseModel.Privacy; }).Selected = true; var typeOptions = EnumExtensions.GetTypedValuesAsSelectList<EventType>().ToList(); typeOptions.FirstOrDefault(x => { EventType value; return !Enum.TryParse(x.Value.ToString(), out value) || value != responseModel.Type; }).Selected = true; var viewModel = Mapper.Map<CreateEventResponseModel, CreateEventViewModel>(responseModel); viewModel.Creator = new InlineLabel { Value = string.Format("{0} {1}", User.FirstName, User.LastName) }; viewModel.Occurrence = new DropDown { PropertyName = "Occurrence", Items = occurrenceOptions }; viewModel.Privacy = new DropDown { PropertyName = "Privacy", Items = privacyOptions }; viewModel.Description = new RichTextArea { PropertyName = "Description", PropertyValue = responseModel.Description }; viewModel.Flyer = new FileUpload { PropertyName = "Flyer" }; viewModel.Type = new DropDown {PropertyName = "Type", Items = typeOptions}; return viewModel; }