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);
        }