public static User userFromVMCreatingUser(VMCreatingUser vmUser) { User user = new User() { FirstName = vmUser.FirstName, LastName = vmUser.LastName, Email = vmUser.Email, ContactInfoes = contactInfoListFromVMContactInfoList(vmUser.ContactInfos), Educations = educationListFromVMEducationList(vmUser.Education), Links = linkListFromVMLinkList(vmUser.Links), Id = vmUser.UserId, }; return user; }
public ActionResult AccountCreation(VMCreatingUser model) { bool isValidInput = true; List<ContactInfo> contacts = new List<ContactInfo>(); if (!AllContactInfosVerified(out contacts)) { isValidInput = false; } List<Education> educations = new List<Education>(); if (!AllEducationsVerified(out educations)) { isValidInput = false; } List<Link> links = new List<Link>(); if (!AllLinksVerified(out links)) { isValidInput = false; } if (ModelState.IsValid) { if (!model.Email.Equals(model.ConfirmationEmail)) { isValidInput = false; ModelState.AddModelError("ConfirmationEmail", "Email and Confirmation Email do not match."); } if (model.Password.Count() < 6) { isValidInput = false; ModelState.AddModelError("Password", "Your Password must be at least six characters long."); } else if (!model.Password.Equals(model.ConfirmationPassword)) { isValidInput = false; ModelState.AddModelError("ConfirmationPassword", "Password and Confirmation Password do not match."); } } if (isValidInput && ModelState.IsValid) { try { string confirmationToken = WebSecurity.CreateUserAndAccount(model.Email, model.Password, new { model.FirstName, model.LastName },true); VMEditAccountSettings settings = new VMEditAccountSettings() { EmailAdminMessage = false, EmailCollaborationAddition = false, EmailCollaborationRemoval = false, EmailCollaborationRequest = false, EmailDailyViewReport = false, ProfileVisibility = false, UserID = db.retrieveUserByEmail(model.Email).Id }; db.addUserSettings(Translator.UserSettingFromVMEditAccountSettings(settings)); dynamic email = new Email("RegEmail"); email.To = model.Email; email.UserName = model.FirstName; email.ConfirmationToken = confirmationToken; try { email.Send(); } catch (Exception e) { } int NewUserId = db.retrieveUserByEmail(model.Email).Id; foreach (ContactInfo c in contacts) { db.addContactInfo(c, NewUserId); } foreach (Education e in educations) { db.addEducation(e, NewUserId); } foreach (Link l in links) { db.addLink(l, NewUserId); } System.Web.Security.Roles.AddUserToRole(model.Email, "User"); return RedirectToAction("RegistratoinStepTwo", "User"); } catch (MembershipCreateUserException e) { ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); } } User u = new User(); u.FirstName = model.FirstName; u.LastName = model.LastName; u.Email = model.Email; u.ContactInfoes = contacts; u.Links = links; u.Educations = educations; return View(new VMCreatingUser(u)); }