public async Task <ActionResult> Edit(UserPublicInfoModel teacher, int[] subjects) { try { var _user = await e.USER.FindAsync(teacher.user_id); _user.first_name = teacher.first_name; _user.last_name = teacher.last_name; _user.date_of_birth = DateTime.Parse(teacher.date_of_birth); _user.gender_id = teacher.gender_id; _user.joining_date = DateTime.Parse(teacher.joining_date); _user.phone = teacher.phone; _user.address = teacher.address; _user.profile_image = teacher.profile_image == null ? "" : teacher.profile_image; foreach (var s in subjects) { var _user_subject = await e.USER_SUBJECT.FirstOrDefaultAsync(i => i.user_id == teacher.user_id && i.subject_id == s); if (_user_subject == null) { e.USER_SUBJECT.Add(new USER_SUBJECT() { subject_id = s, user_id = _user.user_id }); await e.SaveChangesAsync(); } } return(View("Index")); } catch (Exception e) { return(Redirect(Mainfest.Bad)); } }
public ClaimsPrincipal GetClaimsPrincipal(UserPublicInfoModel model) { var user = db.Users.SingleOrDefault(x => x.Id == model.Id); if (user == null) { throw new Exception("User not found."); } var claims = new List <Claim>() { new Claim(ClaimTypes.NameIdentifier, model.UrlPart), new Claim(ClaimTypes.Name, model.DisplayName), new Claim(ClaimTypes.Email, user.EmailAddress) }; var cid = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); return(new ClaimsPrincipal(cid)); }