public async Task <IActionResult> AddChapter([Bind("ApplicationUserId,ChapterId,WhenJoined,WhenExpires")] MemberAddChapterViewModel viewModel) { var user = await _userManager.GetUserAsync(HttpContext.User); var chapter = await _context.Chapters.FirstOrDefaultAsync(c => c.Id == viewModel.ChapterId); ViewBag.User = user.FirstName + " " + user.LastName; var model = new MemberChapter { ApplicationUserId = viewModel.ApplicationUserId, ChapterId = viewModel.ChapterId, WhenJoined = viewModel.WhenJoined, WhenExpires = viewModel.WhenExpires }; _context.Add(model); var note = new ApplicationUserNote { ApplicationUserId = viewModel.ApplicationUserId, AddedBy = user?.FirstName + " " + user?.LastName, WhenAdded = DateTime.Now, Note = "Joined chapter " + chapter.Name }; _context.Add(note); await _context.SaveChangesAsync(); return(RedirectToAction("Details", new { id = viewModel.ApplicationUserId })); }
public async Task <IActionResult> AddChapter(string id) { var user = await _userManager.GetUserAsync(HttpContext.User); ViewBag.User = user.FirstName + " " + user.LastName; var member = await _context.ApplicationUser.SingleOrDefaultAsync(m => m.Id == id); var allChapters = _context.Chapters.OrderBy(c => c.Name); var currentChapters = _context.MemberChapters.Where(c => c.ApplicationUserId == id && c.WhenExpires >= DateTime.Now); var chapters = _context.Chapters.Where(x => !currentChapters.Select(cc => cc.ChapterId).Contains(x.Id)).OrderBy(cc => cc.Name).ToList(); var chapterSelect = new List <SelectListItem>(); foreach (var chapter in chapters) { chapterSelect.Add(new SelectListItem { Value = chapter.Id.ToString(), Text = chapter.Name }); } var viewModel = new MemberAddChapterViewModel { ApplicationUserId = id, WhenJoined = DateTime.Now, WhenExpires = DateTime.Now.AddYears(1), Chapters = chapterSelect, MemberName = member.ContactName == "Legal Name" ? member.FirstName + " " + member.LastName : member.Pseudonym }; ViewBag.CommonName = member.CommonName; return(View(viewModel)); }