public async Task <IActionResult> Create(MeetingViewModel meeting) { if (ModelState.IsValid) { var users = Request.Form.ToList(); var meetingModel = new Meeting() { Title = meeting.Title, DateAndTime = meeting.DateAndTime, IsVirtual = meeting.IsVirtual, ClientId = meeting.ClientId }; var result = _context.Add(meetingModel); await _context.SaveChangesAsync(); foreach (var user in users[1].Value.ToList()) { var me = new MeetingsForUser() { UserId = user, MeetingId = meetingModel.Id }; _context.MeetingsForUser.Add(me); } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["ClientId"] = new SelectList(_context.Clients, "Id", "Name", meeting.ClientId); return(View(meeting)); }
public async Task <IActionResult> Edit(string id, MeetingViewModel meeting) { if (id != meeting.Id) { return(NotFound()); } var meetingModel = new Meeting(); if (ModelState.IsValid) { try { meetingModel = new Meeting() { Id = id, Title = meeting.Title, DateAndTime = meeting.DateAndTime, IsVirtual = meeting.IsVirtual, ClientId = meeting.ClientId }; var result = _context.Update(meetingModel); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MeetingExists(id)) { return(NotFound()); } else { throw; } } var users = Request.Form.ToList(); foreach (var user in users[2].Value.ToList()) { var me = new MeetingsForUser() { UserId = user, MeetingId = meetingModel.Id }; var meetingsForUser = (from mu in _context.MeetingsForUser where mu.MeetingId == id && mu.UserId == user select new MeetingsForUser { Id = mu.Id, MeetingId = mu.MeetingId, UserId = mu.UserId }).ToList(); if (meetingsForUser.Count == 0) { _context.MeetingsForUser.Add(me); _context.SaveChangesAsync(); } } return(RedirectToAction(nameof(Index))); } ViewData["ClientId"] = new SelectList(_context.Clients, "Id", "Name", meeting.ClientId); return(View(meeting)); }