// // GET: /Researchgroup/AddMember public ActionResult AddResearchgroupMember(int researchgroupid = 0) { Researchgroup researchgroup = db.Researchgroups.Find(researchgroupid); if (researchgroup == null) { return(HttpNotFound()); } ResearchgroupMemberViewModel RGMemberVM = new ResearchgroupMemberViewModel() { ResearchgroupID = researchgroup.ResearchgroupID, InstitutionID = researchgroup.InstitutionInstitutionID }; var users = db.UserProfiles .Where(c => c.Status == "Current" && db.Careerhistories.Where(ch => ch.InstitutionInstitutionID == RGMemberVM.InstitutionID && ch.Status == "Current" && (ch.EndTime == null || ch.EndTime > DateTime.Now)).Select(ch => ch.UserProfileUserId).Contains(c.UserId)) .ToList() .OrderBy(c => c.UserName) .Select(s => new { UserId = s.UserId, Name = string.Format("{0} {1} ({2})", s.ForeName, s.SurName, s.Email) }); ViewBag.UserList = new SelectList(users.AsEnumerable(), "UserId", "Name"); ViewBag.ResearchgroupRoleList = new SelectList(db.Options.Where(o => o.OptionFields.OptionFieldName == "User Role In Research group" && o.Status == "Current").AsEnumerable(), "OptionID", "OptionValue"); return(View(RGMemberVM)); }
public ActionResult AddResearchgroupMember(ResearchgroupMemberViewModel RGMemberVM) { if (ModelState.IsValid) { if (RGMemberVM.StartTime > RGMemberVM.EndTime) { ModelState.AddModelError(string.Empty, "Start date must be before end date"); var users = db.UserProfiles .Where(c => c.Status == "Current" && db.Careerhistories.Where(ch => ch.InstitutionInstitutionID == RGMemberVM.InstitutionID && ch.Status == "Current" && (ch.EndTime == null || ch.EndTime > DateTime.Now)).Select(ch => ch.UserProfileUserId).Contains(c.UserId)) .ToList() .OrderBy(c => c.UserName) .Select(s => new { UserId = s.UserId, Name = string.Format("{0} {1} ({2})", s.ForeName, s.SurName, s.Email) }); ViewBag.UserList = new SelectList(users.AsEnumerable(), "UserId", "Name"); ViewBag.ResearchgroupRoleList = new SelectList(db.Options.Where(o => o.OptionFields.OptionFieldName == "User Role In Research group" && o.Status == "Current").AsEnumerable(), "OptionID", "OptionValue"); return(View(RGMemberVM)); } UserInResearchgroup userinresearchgroup = new UserInResearchgroup(); userinresearchgroup.UserProfileUserId = RGMemberVM.UserID; userinresearchgroup.UserRoleinResearchgroupID = RGMemberVM.UserRoleInResearchgroupID; userinresearchgroup.ResearchgroupResearchgroupID = RGMemberVM.ResearchgroupID; userinresearchgroup.StartTime = RGMemberVM.StartTime; userinresearchgroup.EndTime = RGMemberVM.EndTime; userinresearchgroup.LastUpdatedBy = (int)Membership.GetUser().ProviderUserKey; userinresearchgroup.CreatedBy = (int)Membership.GetUser().ProviderUserKey; userinresearchgroup.CreatedOn = DateTimeOffset.Now; db.UserInResearchgroups.Add(userinresearchgroup); db.SaveChanges(); return(RedirectToAction("ResearchgroupMembers", new { researchgroupid = RGMemberVM.ResearchgroupID })); } var userlist = db.UserProfiles .Where(c => c.Status == "Current" && db.Careerhistories.Where(ch => ch.InstitutionInstitutionID == RGMemberVM.InstitutionID && ch.Status == "Current" && (ch.EndTime == null || ch.EndTime > DateTime.Now)).Select(ch => ch.UserProfileUserId).Contains(c.UserId)) .ToList() .OrderBy(c => c.UserName) .Select(s => new { UserId = s.UserId, Name = string.Format("{0} {1} ({2})", s.ForeName, s.SurName, s.Email) }); ViewBag.UserList = new SelectList(userlist.AsEnumerable(), "UserId", "Name"); return(View(RGMemberVM)); }