static Dictionary<string, object> getValue(PartnerStaffMember sm) { Dictionary<string, object> data = new Dictionary<string, object>(); data["Name"] = sm.Name; data["Address"] = sm.Address; data["Phone"] = sm.Phone; data["Title"] = sm.Title; data["StaffTypeId"] = sm.StaffTypeId; data["BirthYear"] = sm.BirthYear; data["BirthMonth"] = sm.BirthMonth; data["BirthDay"] = sm.BirthDay; data["GenderId"] = sm.GenderId; data["InternalPartnerEmployeeId"] = sm.InternalPartnerEmployeeId; data["Email"] = sm.Email; return data; }
public ActionResult Create([Bind(Include = "Id,Name,GenderId,Address,Phone,Email,Title,BirthDay,BirthMonth,BirthYear,StaffTypeId,InternalPartnerEmployeeId,UserName,Password,Password2")] PartnerStaffMember_VModel partnerstaffmemberModel) { if (ModelState.IsValid) { /* Old code partnerstaffmember.Id = Guid.NewGuid(); db.PartnerStaffMembers.Add(partnerstaffmember); */ // 1st check if such user exists // 2nd Create the system user UserManager<ApplicationUser> um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())); ApplicationUser user = new ApplicationUser() { UserName = partnerstaffmemberModel.UserName }; Guid uguid = Guid.NewGuid(); user.Id = uguid.ToString(); IdentityResult result = um.Create(user, partnerstaffmemberModel.Password); if (result.Succeeded) { var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())); UserManager.AddToRole(user.Id, Constants.STAFF_MEMBER); // 3rd Create the staff member PartnerStaffMember smInfo = new PartnerStaffMember(); smInfo.Id = uguid; smInfo.Name = partnerstaffmemberModel.Name; smInfo.GenderId = partnerstaffmemberModel.GenderId; smInfo.StaffTypeId = partnerstaffmemberModel.StaffTypeId; smInfo.BirthDay = partnerstaffmemberModel.BirthDay; smInfo.BirthMonth = partnerstaffmemberModel.BirthMonth; smInfo.BirthYear = partnerstaffmemberModel.BirthYear; smInfo.Address = partnerstaffmemberModel.Address; smInfo.Email = partnerstaffmemberModel.Email; smInfo.InternalPartnerEmployeeId = partnerstaffmemberModel.InternalPartnerEmployeeId; smInfo.Phone = partnerstaffmemberModel.Phone; smInfo.Title = partnerstaffmemberModel.Title; // Assign to the same company as the Partner Admin Guid curUserId = AccountHelper.GetCurUserId(); Guid companyId = db.PartnerAdmins.Find(curUserId).PartnerCompanyId; smInfo.PartnerCompanyId = companyId; db.PartnerStaffMembers.Add(smInfo); try { db.SaveChanges(); } catch (DbEntityValidationException ex) { // Remove the system user Membership.DeleteUser(user.UserName); // ViewBag.GenderId = new SelectList(db.Genders, "Id", "Title", partnerstaffmemberModel.GenderId); ViewBag.StaffTypeId = new SelectList(db.StaffTypes, "Id", "Title", partnerstaffmemberModel.StaffTypeId); return View(partnerstaffmemberModel); } HistoryHelper.StartHistory(smInfo); return RedirectToAction("Index"); } } ViewBag.GenderId = new SelectList(db.Genders, "Id", "Title", partnerstaffmemberModel.GenderId); ViewBag.StaffTypeId = new SelectList(db.StaffTypes, "Id", "Title", partnerstaffmemberModel.StaffTypeId); return View(partnerstaffmemberModel); }