コード例 #1
0
 private static EventEditViewModel BuildNewEventDetailsModel(EventEditViewModel existingEvent, DuplicateEventViewModel newEventDetails)
 {
     existingEvent.Id            = 0;
     existingEvent.Name          = newEventDetails.Name;
     existingEvent.Description   = newEventDetails.Description;
     existingEvent.StartDateTime = newEventDetails.StartDateTime;
     existingEvent.EndDateTime   = newEventDetails.EndDateTime;
     return(existingEvent);
 }
コード例 #2
0
        public async Task <IActionResult> Edit(EventEditViewModel eventEditViewModel, IFormFile fileUpload)
        {
            if (eventEditViewModel == null)
            {
                return(BadRequest());
            }

            var authorizableEvent = await _mediator.SendAsync(new AuthorizableEventQuery(eventEditViewModel.Id));

            if (!await authorizableEvent.UserCanEdit())
            {
                return(new ForbidResult());
            }

            var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = eventEditViewModel.CampaignId });

            var errors = _eventEditViewModelValidator.Validate(eventEditViewModel, campaign);

            errors.ForEach(e => ModelState.AddModelError(e.Key, e.Value));

            if (ModelState.IsValid)
            {
                if (fileUpload != null)
                {
                    if (!fileUpload.IsAcceptableImageContentType())
                    {
                        ModelState.AddModelError(nameof(eventEditViewModel.ImageUrl), "You must upload a valid image file for the logo (.jpg, .png, .gif)");
                        return(View(eventEditViewModel));
                    }

                    if (_imageSizeValidator != null && fileUpload.Length > _imageSizeValidator.FileSizeInBytes)
                    {
                        ModelState.AddModelError(nameof(eventEditViewModel.ImageUrl), $"File size must be less than {_imageSizeValidator.BytesToMb():#,##0.00}MB!");
                        return(View("Edit", eventEditViewModel));
                    }

                    var existingImageUrl = eventEditViewModel.ImageUrl;
                    var newImageUrl      = await _imageService.UploadEventImageAsync(campaign.OrganizationId, eventEditViewModel.Id, fileUpload);

                    if (!string.IsNullOrEmpty(newImageUrl))
                    {
                        eventEditViewModel.ImageUrl = newImageUrl;
                        if (existingImageUrl != null && existingImageUrl != newImageUrl)
                        {
                            await _imageService.DeleteImageAsync(existingImageUrl);
                        }
                    }
                }

                var id = await _mediator.SendAsync(new EditEventCommand { Event = eventEditViewModel });

                return(RedirectToAction(nameof(Details), new { area = AreaNames.Admin, id = id }));
            }

            return(View(eventEditViewModel));
        }
コード例 #3
0
        public IActionResult Create()
        {
            var viewModel = new EventEditViewModel()
            {
                Title         = "Add New Event",
                SelectVenues  = _venueRepository.GetSelectListItems(),
                SelectedVenue = 1
            };

            return(View(viewModel));
        }
コード例 #4
0
        public async Task <IActionResult> Edit(EventEditViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            await _EventsService.UpdateEventAsync(model);

            return(RedirectToAction("List"));
        }
コード例 #5
0
        public async Task <IActionResult> Create(int campaignId, EventEditViewModel eventEditViewModel, IFormFile fileUpload)
        {
            var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = campaignId });

            var authorizableCampaign = await _mediator.SendAsync(new AuthorizableCampaignQuery(campaign.Id, campaign.OrganizationId));

            if (!await authorizableCampaign.UserCanManageChildObjects())
            {
                return(new ForbidResult());
            }

            var errors = _eventEditViewModelValidator.Validate(eventEditViewModel, campaign);

            errors.ToList().ForEach(e => ModelState.AddModelError(e.Key, e.Value));

            ModelState.Remove("NewItinerary");

            //TryValidateModel is called explictly because of MVC 6 behavior that supresses model state validation during model binding when binding to an IFormFile.
            //See #619.
            if (ModelState.IsValid && TryValidateModel(eventEditViewModel))
            {
                if (fileUpload != null)
                {
                    if (!fileUpload.IsAcceptableImageContentType())
                    {
                        ModelState.AddModelError(nameof(eventEditViewModel.ImageUrl), "You must upload a valid image file for the logo (.jpg, .png, .gif)");
                        return(View("Edit", eventEditViewModel));
                    }


                    if (_imageSizeValidator != null && fileUpload.Length > _imageSizeValidator.FileSizeInBytes)
                    {
                        ModelState.AddModelError(nameof(eventEditViewModel.ImageUrl), $"File size must be less than {_imageSizeValidator.BytesToMb():#,##0.00}MB!");
                        return(View("Edit", eventEditViewModel));
                    }
                }

                eventEditViewModel.OrganizationId = campaign.OrganizationId;
                var id = await _mediator.SendAsync(new EditEventCommand { Event = eventEditViewModel });

                if (fileUpload != null)
                {
                    // resave now that event has the ImageUrl
                    eventEditViewModel.Id       = id;
                    eventEditViewModel.ImageUrl = await _imageService.UploadEventImageAsync(campaign.OrganizationId, id, fileUpload);

                    await _mediator.SendAsync(new EditEventCommand { Event = eventEditViewModel });
                }

                return(RedirectToAction(nameof(Details), new { area = AreaNames.Admin, id = id }));
            }

            return(View("Edit", eventEditViewModel));
        }
コード例 #6
0
        public async Task <IActionResult> Edit(EventEditViewModel eventEditViewModel, IFormFile fileUpload)
        {
            if (eventEditViewModel == null)
            {
                return(BadRequest());
            }

            var organizationId = await _mediator.SendAsync(new ManagingOrganizationIdByEventIdQuery { EventId = eventEditViewModel.Id });

            if (!User.IsOrganizationAdmin(organizationId))
            {
                return(Unauthorized());
            }

            var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = eventEditViewModel.CampaignId });

            var errors = _eventEditViewModelValidator.Validate(eventEditViewModel, campaign);

            errors.ForEach(e => ModelState.AddModelError(e.Key, e.Value));

            if (ModelState.IsValid)
            {
                if (fileUpload != null)
                {
                    if (fileUpload.IsAcceptableImageContentType())
                    {
                        var existingImageUrl = eventEditViewModel.ImageUrl;
                        var newImageUrl      = await _imageService.UploadEventImageAsync(campaign.OrganizationId, campaign.Id, fileUpload);

                        if (!string.IsNullOrEmpty(newImageUrl))
                        {
                            eventEditViewModel.ImageUrl = newImageUrl;
                            if (existingImageUrl != null)
                            {
                                await _imageService.DeleteImageAsync(existingImageUrl);
                            }
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("ImageUrl", "You must upload a valid image file for the logo (.jpg, .png, .gif)");
                        return(View(eventEditViewModel));
                    }
                }

                var id = await _mediator.SendAsync(new EditEventCommand { Event = eventEditViewModel });

                return(RedirectToAction(nameof(Details), new { area = "Admin", id = id }));
            }

            return(View(eventEditViewModel));
        }
コード例 #7
0
        public async Task <IActionResult> Edit(EventEditViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.RedirectToAction(nameof(Edit)));
            }

            var parsedEvent = this.mapper.Map <Event>(model);

            await this.eventService.EditEvent(parsedEvent);

            return(RedirectToAction(nameof(EventList)));
        }
コード例 #8
0
        public IActionResult SaveEvent(EventEditViewModel model, string returnUrl = null)
        {
            ViewBag.ReturnUrl = returnUrl;

            if (model.Date.Date < DateTime.Now.Date)
            {
                ModelState.AddModelError("Date", "Please provide an actual date");
            }

            if (string.IsNullOrWhiteSpace(model.Name))
            {
                ModelState.AddModelError("Name", "Name is required");
            }

            if (!ModelState.IsValid)
            {
                model = _eventService.ActualizeModel(model);
                return(View(model.Id.HasValue ? "EditEvent" : "AddEvent", model));
            }

            model.OrganizerId = Guid.Parse(User.FindFirst("userId").Value);

            var ok = true;

            if (model.Id.HasValue)
            {
                ok = _eventService.UpdateEvent(model);
                if (ok)
                {
                    _logger.Here().Information("Event updated: {@Event}", model);
                }
            }
            else
            {
                _eventService.AddEvent(model);
                _logger.Here().Information("New event created: {@Event}", model);
            }

            if (!ok)
            {
                return(NotFound());
            }

            if (string.IsNullOrEmpty(returnUrl))
            {
                return(RedirectToAction("Events"));
            }

            return(Redirect(returnUrl));
        }
コード例 #9
0
ファイル: EventService.cs プロジェクト: shepshook/GoFlex
        public bool UpdateEvent(EventEditViewModel model)
        {
            var entity = _unitOfWork.EventRepository.Get(model.Id.Value);

            if (entity == null)
            {
                return(false);
            }

            entity = BuildEntityFromModel(model, entity);
            _unitOfWork.Commit();

            return(true);
        }
コード例 #10
0
        public ActionResult Edit(int id)
        {
            var eventEditModel       = _context.Events.FirstOrDefault(x => x.Id == id);
            EventEditViewModel model = new EventEditViewModel
            {
                Id          = eventEditModel.Id,
                Date        = eventEditModel.Date,
                Description = eventEditModel.Description,
                Image       = eventEditModel.Image,
                Title       = eventEditModel.Title
            };

            return(View(model));
        }
コード例 #11
0
        public async Task <IActionResult> Edit(EventEditViewModel model)
        {
            EventDTO eventDTO = _mapper.Map <EventEditViewModel, EventDTO>(model);

            var result = model.Id == 0 ?
                         await _eventService.CreateEventAsync(eventDTO) :
                         await _eventService.EditEventAsync(eventDTO);

            if (result.Succedeed)
            {
                return(Ok());
            }
            return(BadRequest());
        }
コード例 #12
0
        public IActionResult Edit(long id, [Bind("Title,Description,Date,RecordId,ImagePath,File")] EventEditViewModel vm)
        {
            if (id != vm.RecordId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var evt = this._context.Events.FirstOrDefault(e => e.RecordId == vm.RecordId);

                    evt.Date        = vm.Date;
                    evt.Description = vm.Description;
                    evt.Title       = vm.Title;

                    if (vm.File != null)
                    {
                        var file = vm.File;
                        var parsedContentDisposition =
                            ContentDispositionHeaderValue.Parse(file.ContentDisposition);
                        var filename = Path.Combine(_hostingEnvironment.WebRootPath, "images", "events",
                                                    parsedContentDisposition.FileName.Trim('"'));
                        using (var stream = System.IO.File.OpenWrite(filename))
                        {
                            file.CopyTo(stream);
                        }

                        evt.ImagePath = parsedContentDisposition.FileName.Trim('"');
                    }

                    _context.SaveChanges();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!EventExists(vm.RecordId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(vm));
        }
コード例 #13
0
 public static EventEditDto ToDto(this EventEditViewModel source, string fileName)
 {
     return(new EventEditDto
     {
         Title = source.Title,
         Date = source.Date.ToDateTime(),
         Description = source.Description,
         EndDate = source.EndDate.ToDateTime(),
         Id = source.Id,
         MultiDay = source.MultiDay,
         PrimaryPicture = fileName,
         StartDate = source.StartDate.ToDateTime(),
         Time = source.Time
     });
 }
コード例 #14
0
        public ActionResult Edit(EventEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                var input  = MapperManager.Map <EventInputDto>(model);
                var result = _eventManageService.EditEvent(input);

                if (result.Id > 0)
                {
                    return(RedirectToAction("Index", "Event"));
                }
            }

            return(View(model));
        }
コード例 #15
0
ファイル: EventService.cs プロジェクト: shepshook/GoFlex
        private Event BuildEntityFromModel(EventEditViewModel model, Event entity = null)
        {
            entity ??= new Event();

            entity.Name            = model.Name;
            entity.Description     = !string.IsNullOrWhiteSpace(model.Description) ? model.Description : null;
            entity.DateTime        = model.Date + model.Time;
            entity.CreateTime      = DateTime.Now;
            entity.EventCategoryId = model.CategoryId;
            entity.LocationId      = model.LocationId;
            entity.Photo           = !string.IsNullOrWhiteSpace(model.Photo) ? model.Photo : null;
            entity.OrganizerId     = model.OrganizerId;

            return(entity);
        }
コード例 #16
0
        public ActionResult Edit(int?Id)
        {
            EventEditViewModel viewModel = new EventEditViewModel();

            using (SussexDBEntities db = new SussexDBEntities())
            {
                viewModel.EventCategories = db.Categories.ToList();
                if (Id != null)
                {
                    viewModel.Event                   = db.Events.Where(w => w.EventId == Id).FirstOrDefault();
                    viewModel.MeetingSchedules        = db.MeetingSchedules.Where(w => w.EventId == Id).ToList();
                    viewModel.SelectedEventCategories = db.EventCategories.Where(w => w.EventId == Id).Select(s => s.Category).ToList();
                }
            }
            return(View(viewModel));
        }
コード例 #17
0
        public IActionResult Edit(int id)
        {
            EventEditViewModel evm = new EventEditViewModel();
            var evt = DB.Events.Where(ev => ev.EventId == id)
                      .Include(x => x.Players).ThenInclude(c => c.User).ThenInclude(y => y.Gender)
                      .Include(x => x.Sport)
                      .Include(x => x.Gender)
                      .Include(x => x.SkillLevel)
                      .Include(x => x.Creator);

            evm.Sports           = DB.Sports.ToList();
            evm.SkillLevels      = DB.SkillLevels.ToList();
            evm.PreferredGenders = DB.PreferredGenders.ToList();
            evm.Event            = evt.FirstOrDefault();
            return(View(evm));
        }
コード例 #18
0
ファイル: EditController.cs プロジェクト: DareDev1l/Organizr
        public ActionResult Edit(EventEditViewModel model)
        {
            if (!this.ModelState.IsValid)
            {
                return this.Edit(model.Id);
            }

            var eventToEdit = this.eventsServices.GetById(model.Id);
            eventToEdit.Name = model.Name;
            eventToEdit.Description = model.Description;
            eventToEdit.StartDate = model.StartDate;

            this.eventsServices.Update(eventToEdit);

            return this.Redirect("/Events/" + this.provider.EncodeId(model.Id));
        }
コード例 #19
0
 public ActionResult Edit(EventEditViewModel model)
 {
     if (ModelState.IsValid)
     {
         var edit = _context.Events.FirstOrDefault(x => x.Id == model.Id);
         edit.Image       = model.Image;
         edit.Title       = model.Title;
         edit.Date        = model.Date;
         edit.Description = edit.Description;
         _context.SaveChanges();
         return(RedirectToAction("ListEvents", "Planner"));
     }
     else
     {
         return(View());
     }
 }
コード例 #20
0
        public void ReturnCorrectErrorWhenEndDateTimeIsLessThanStartDateTime()
        {
            var validator      = new EventEditViewModelValidator();
            var parentCampaign = new CampaignSummaryViewModel {
                EndDate = new DateTimeOffset(new DateTime(1999, 2, 1))
            };
            var model = new EventEditViewModel
            {
                StartDateTime = new DateTimeOffset(new DateTime(2000, 1, 1)),
                EndDateTime   = new DateTimeOffset(new DateTime(1999, 1, 1))
            };

            var errors = validator.Validate(model, parentCampaign);

            Assert.True(errors.Exists(x => x.Key.Equals("EndDateTime")));
            Assert.Equal(errors.Find(x => x.Key == "EndDateTime").Value, "End date cannot be earlier than the start date");
        }
コード例 #21
0
        public async Task <IActionResult> Create(int campaignId, EventEditViewModel eventEditViewModel, IFormFile fileUpload)
        {
            var campaign = await _mediator.SendAsync(new CampaignSummaryQuery { CampaignId = campaignId });

            if (campaign == null || !User.IsOrganizationAdmin(campaign.OrganizationId))
            {
                return(Unauthorized());
            }

            var errors = _eventEditViewModelValidator.Validate(eventEditViewModel, campaign);

            errors.ToList().ForEach(e => ModelState.AddModelError(e.Key, e.Value));

            ModelState.Remove("NewItinerary");

            //TryValidateModel is called explictly because of MVC 6 behavior that supresses model state validation during model binding when binding to an IFormFile.
            //See #619.
            if (ModelState.IsValid && TryValidateModel(eventEditViewModel))
            {
                if (fileUpload != null)
                {
                    if (!fileUpload.IsAcceptableImageContentType())
                    {
                        ModelState.AddModelError("ImageUrl", "You must upload a valid image file for the logo (.jpg, .png, .gif)");
                        return(View("Edit", eventEditViewModel));
                    }
                }

                eventEditViewModel.OrganizationId = campaign.OrganizationId;
                var id = await _mediator.SendAsync(new EditEventCommand { Event = eventEditViewModel });

                if (fileUpload != null)
                {
                    // resave now that event has the ImageUrl
                    eventEditViewModel.Id       = id;
                    eventEditViewModel.ImageUrl = await _imageService.UploadEventImageAsync(campaign.OrganizationId, id, fileUpload);

                    await _mediator.SendAsync(new EditEventCommand { Event = eventEditViewModel });
                }

                return(RedirectToAction(nameof(Details), new { area = "Admin", id = id }));
            }

            return(View("Edit", eventEditViewModel));
        }
コード例 #22
0
        public IActionResult Edit(EventEditViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            string uniqueFileName = null;

            if (viewModel.Photos != null && viewModel.Photos.Count > 0)
            {
                foreach (IFormFile photo in viewModel.Photos)
                {
                    var extension = Path.GetExtension(photo.FileName).ToLower();
                    if (extension == ".jpg" || extension == ".jpeg" || extension == ".png")
                    {
                        string uploadsFolder = Path.Combine(_hostingEnvironment.WebRootPath, "images");
                        uniqueFileName = Guid.NewGuid().ToString() + "_" + photo.FileName;
                        string filePath = Path.Combine(uploadsFolder, uniqueFileName);
                        photo.CopyTo(new FileStream(filePath, FileMode.Create));
                    }
                    else
                    {
                        throw new Exception("Dosya türü .JPG , .JPEG veya .PNG olmalıdır..");
                    }
                }
            }
            Event editedEvent = new Event()
            {
                Id            = viewModel.Id,
                Name          = viewModel.Name,
                Description   = viewModel.Description,
                EditorContent = viewModel.EditorContent,
                Slug          = viewModel.Slug,
                ImageUrl      = uniqueFileName,
                StatusId      = viewModel.StatusId,
                Location      = viewModel.Location,
                StartDate     = viewModel.StartDate,
                EndDate       = viewModel.EndDate,
                CampusId      = viewModel.CampusId
            };

            _eventService.Edit(editedEvent);
            return(RedirectToAction("Index"));
        }
コード例 #23
0
        public ActionResult Edit(int Page_ID, int Event_ID, bool?Return_Home)
        {
            if (Return_Home != null)
            {
                ViewBag.Return_Home = true;
                Page page = db.Pages.Find(Page_ID);
                ViewBag.Page_Url = page.URL;
            }
            Event ev = db.Events.Find(Event_ID);

            if (ev == null)
            {
                return(HttpNotFound());
            }
            EventEditViewModel viewMod = new EventEditViewModel(Page_ID, ev);

            return(View(viewMod));
        }
コード例 #24
0
ファイル: EventController.cs プロジェクト: ingted/angora
        public ActionResult Edit(long id)
        {
            var theEvent = _eventService.FindById(id);

            if (theEvent == null || !theEvent.Creator.Id.Equals(User.Identity.GetUserId()))
            {
                return(RedirectToAction("Index", "EventFeed"));
            }

            var model = new EventEditViewModel
            {
                Event           = theEvent,
                DurationHours   = theEvent.EventTime == null ? 0 : theEvent.EventTime.DurationInMinutes / 60,
                DurationMinutes = theEvent.EventTime == null ? 0 : theEvent.EventTime.DurationInMinutes % 60
            };

            return(View(model));
        }
コード例 #25
0
        public async Task UpdateEventAsync(EventEditViewModel model)
        {
            var _event = await GetEventByIdAsync(model.Id);

            _event.Address1    = model.Address1;
            _event.Address2    = model.Address2;
            _event.City        = model.City;
            _event.State       = model.State;
            _event.Location    = model.Location;
            _event.Zip         = model.Zip;
            _event.Title       = model.EventTitle;
            _event.Contactid   = model.ContactId;
            _event.Description = model.Description;
            _event.EventEnd    = model.EventEnd;
            _event.EventStart  = model.EventStart;

            await _EventsRepository.SaveChangesAsync();
        }
コード例 #26
0
        public async Task <IActionResult> Edit(int id, string returnUrl)
        {
            var result = await _mediator.Send(new GetEventEditQuery { Id = id });

            if (result == null)
            {
                return(NotFound());
            }
            var eventTypeResult = await _mediator.Send(new GetEventTypeListQuery());

            var eventSeriesResult = await _mediator.Send(new GetEventSeriesesListQuery());

            EventEditViewModel vm = new EventEditViewModel(result, eventTypeResult.EventTypes.ToList(), eventSeriesResult.EventSerieses.ToList());

            ViewData["Title"] = "Edit Event";
            ViewBag.ReturnUrl = returnUrl;
            return(View(vm));
        }
コード例 #27
0
        public async Task EventDoesNotExist()
        {
            var context = ServiceProvider.GetService <AllReadyContext>();

            var htb = new Organization
            {
                Id        = 123,
                Name      = "Humanitarian Toolbox",
                LogoUrl   = "http://www.htbox.org/upload/home/ht-hero.png",
                WebUrl    = "http://www.htbox.org",
                Campaigns = new List <Campaign>()
            };

            var firePrev = new Campaign
            {
                Id   = 1,
                Name = "Neighborhood Fire Prevention Days",
                ManagingOrganization = htb,
                TimeZoneId           = "Central Standard Time"
            };

            htb.Campaigns.Add(firePrev);

            context.Organizations.Add(htb);
            context.SaveChanges();

            var vm = new EventEditViewModel
            {
                CampaignId = 1,
                TimeZoneId = "Central Standard Time"
            };

            var query = new EditEventCommand {
                Event = vm
            };
            var handler = new EditEventCommandHandler(context);
            var result  = await handler.Handle(query);

            Assert.True(result > 0);

            var data = context.Events.Count(_ => _.Id == result);

            Assert.True(data == 1);
        }
コード例 #28
0
        public void Create_ReturnsEventEditViewModel_WhenModelIsInvalid()
        {
            //Arrange
            var mockEventEditViewModel = new EventEditViewModel {
                Id = 20, EventName = "Test Event"
            };

            _homeController.ModelState.AddModelError("EventDate", "Required");
            var mockEvent = Mock.Of <Event>();
            //Act
            var result = _homeController.Create(mockEventEditViewModel);

            //Assert
            Assert.NotNull(result);
            var viewResult = Assert.IsType <ViewResult>(result);

            Assert.Equal(mockEventEditViewModel, viewResult.ViewData.Model);
            _mockEventRepository.Verify(evnt => evnt.Add(mockEvent), Times.Never);
        }
コード例 #29
0
        public void RetrunCorrectErrorWhenModelsEndDateTimeIsGreaterThanParentCampaignsEndDate()
        {
            var validator      = new EventEditViewModelValidator();
            var parentCampaign = new CampaignSummaryViewModel
            {
                StartDate = new DateTimeOffset(new DateTime(2000, 1, 1)),
                EndDate   = new DateTimeOffset(new DateTime(2001, 1, 1))
            };
            var model = new EventEditViewModel
            {
                StartDateTime = new DateTimeOffset(new DateTime(2001, 1, 1)),
                EndDateTime   = new DateTimeOffset(new DateTime(2001, 2, 1)),
            };

            var errors = validator.Validate(model, parentCampaign);

            Assert.True(errors.Exists(x => x.Key.Equals("EndDateTime")));
            Assert.Equal(errors.Find(x => x.Key == "EndDateTime").Value, "End date cannot be later than the campaign end date " + parentCampaign.EndDate.ToString("d"));
        }
コード例 #30
0
        public ActionResult Edit(int id)
        {
            try
            {
                if (User.IsInRole(AppEnum.RoleEnum.User.ToString()))
                {
                    return(new HttpNotFoundResult());
                }
                var eventEditData       = db.EventDetails.FirstOrDefault(x => x.EventId == id);
                var eventEditViewModels = new EventEditViewModel();

                var eventType = db.EventTypes.ToList();
                eventEditViewModels.EventTypeDropDownVm = new EventTypeDropDownViewModel()
                {
                    EventTypes = eventType
                };

                var eventVenue = db.EventVenues.ToList();
                eventEditViewModels.EventVenueDropDownVm = new EventVenueDropDownViewModel()
                {
                    EventVenues = eventVenue
                };

                if (eventEditData != null)
                {
                    eventEditViewModels.EventId             = eventEditData.EventId;
                    eventEditViewModels.EventTitle          = eventEditData.EventTitle;
                    eventEditViewModels.EventStarTime       = eventEditData.EventStarTime;
                    eventEditViewModels.EventEndTime        = eventEditData.EventEndTime;
                    eventEditViewModels.EventMaxBookingTime = eventEditData.EventMaxBookingTime;
                    eventEditViewModels.EventTypeId         = eventEditData.EventTypeId;
                    eventEditViewModels.EventVenueId        = eventEditData.EventVenueId;
                    eventEditViewModels.IsDeleted           = eventEditData.IsDeleted;
                }
                return(View(eventEditViewModels));
            }
            catch (Exception)
            {
                return(View("Error"));
            }
        }
コード例 #31
0
        public ActionResult Edit(EventEditViewModel eventEditViewModel)
        {
            DoEditEventValidation(eventEditViewModel.Event);

            if (ModelState.IsValid)
            {
                unitOfWork.context.Events.Attach(eventEditViewModel.Event);
                unitOfWork.context.Entry(eventEditViewModel.Event).Collection(m => m.EventCategories).Load();

                int[] selectedCategories = eventEditViewModel.Categories.Where(x => x.Selected).Select<SelectListItem, int>(x => Convert.ToInt32(x.Value.ToString())).ToArray<int>();

                eventEditViewModel.Event.EventCategories.Clear();
                eventEditViewModel.Event.EventCategories = unitOfWork.EventCategoryRepository.Get(x => selectedCategories.Contains(x.CategoryID)).ToList();
                unitOfWork.EventRepository.Update(eventEditViewModel.Event);

                unitOfWork.Save();
                return RedirectToAction("Index");
            }

            return View(EventEditorSetupEdit(eventEditViewModel));
        }
コード例 #32
0
        public void Create_RedirectsToActionIndex_WhenModelIsValid()
        {
            //Arrange
            var mockEventEditViewModel = new EventEditViewModel()
            {
                Id            = 20,
                EventName     = "Test Event Name",
                EventDate     = DateTime.Parse("2018-08-14"),
                SelectedVenue = 1
            };

            //Act
            var result = _homeController.Create(mockEventEditViewModel);

            //Assert
            Assert.NotNull(result);
            var redirectResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Null(redirectResult.ControllerName);
            Assert.Equal("Index", redirectResult.ActionName);
        }
コード例 #33
0
 public ActionResult Edit(int eventID)
 {
     EventEditViewModel eventEditViewModel = new EventEditViewModel();
     eventEditViewModel.Event = unitOfWork.EventRepository.GetByID(eventID);
     return View(EventEditorSetupEdit(eventEditViewModel));
 }
コード例 #34
0
 private EventEditViewModel EventEditorSetupEdit(EventEditViewModel eventEditViewModel)
 {
     eventEditViewModel.ReoccurrenceFrames = unitOfWork.EventReoccurrenceFrameRepository.ReoccurrenceFrameKeyValueList();
     eventEditViewModel.Categories = unitOfWork.EventCategoryRepository.CategoriesSelectList(eventEditViewModel.Event.EventCategories);
     return eventEditViewModel;
 }