Exemplo n.º 1
0
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            Event _event = await _db.Events.FindAsync(id);

            if (_event == null)
            {
                return(NotFound());
            }
            List <EventSpeaker> eSpeaker = _db.EventSpeakers.Where(p => p.EventId == _event.Id).ToList();
            List <Speaker>      speakers = new List <Speaker>();

            foreach (var item in eSpeaker)
            {
                speakers.Add(_db.Speakers.FirstOrDefault(p => p.Id == item.SpeakerId));
            }

            BackEndProject.Areas.Admin.ViewModels.EventEditVM eventVM = new ViewModels.EventEditVM
            {
                Image       = _event.Image,
                Content     = _event.Content,
                Header      = _event.Header,
                Date        = _event.Date,
                Interval    = _event.Interval,
                Definition  = _event.Definition,
                Location    = _event.Location,
                Speakers    = speakers,
                AllSpeakers = _db.Speakers.ToList()
            };
            return(View(eventVM));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> EditPost(int?id, ViewModels.EventEditVM eventVM, IFormFile File)
        {
            if (id == null)
            {
                return(NotFound());
            }
            Event _event = await _db.Events.FindAsync(id);

            if (_event == null)
            {
                return(NotFound());
            }
            List <EventSpeaker> event_speaker        = _db.EventSpeakers.Where(p => p.EventId == _event.Id).ToList();
            List <EventSpeaker> current_EventSpeaker = _db.EventSpeakers.Where(p => p.EventId == _event.Id).ToList();
            List <Speaker>      current_speakers     = new List <Speaker>();

            foreach (var item in current_EventSpeaker)
            {
                current_speakers.Add(_db.Speakers.FirstOrDefault(p => p.Id == item.SpeakerId));
            }
            eventVM.AllSpeakers = _db.Speakers.ToList();
            eventVM.Speakers    = current_speakers;
            eventVM.Image       = _event.Image;
            if (!ModelState.IsValid)
            {
                return(View(eventVM));
            }


            string keys = Request.Form["speakers"];
            List <EventSpeaker> new_EventSpeaker = new List <EventSpeaker>();

            if (keys != null)
            {
                string[]   _keys = keys.Split(',');
                List <int> ids   = new List <int>();
                foreach (var item in _keys)
                {
                    ids.Add(Int32.Parse(item));
                }
                foreach (int item in ids)
                {
                    new_EventSpeaker.Add(new EventSpeaker
                    {
                        EventId   = _event.Id,
                        SpeakerId = item
                    });
                }
                current_EventSpeaker = new_EventSpeaker;
                foreach (var item in event_speaker)
                {
                    _db.EventSpeakers.Remove(item);
                }
                foreach (var item in current_EventSpeaker)
                {
                    _db.EventSpeakers.Add(item);
                }
            }
            if (File != null)
            {
                if (!File.isImage())
                {
                    ModelState.AddModelError(string.Empty, "Choose photo type");
                    return(View(eventVM));
                }
                Helpers.Helper.DeleteIMG(_env.WebRootPath, "img/event", _event.Image);
                _event.Image = await File.SaveImg(_env.WebRootPath, "img/event");
            }
            _event.Header     = eventVM.Header;
            _event.Date       = eventVM.Date;
            _event.Interval   = eventVM.Interval;
            _event.Location   = eventVM.Location;
            _event.Definition = eventVM.Definition;
            _event.Content    = eventVM.Content;
            await _db.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }