public IHttpActionResult RegisterIndividual([FromBody] RegisterIndividualModel model) { if (model.IsMalaysian) { ModelState.Remove("model.PassportNo"); ModelState.Remove("model.CitizenshipId"); ModelState.Remove("model.PostCodeNonMalaysian"); ModelState.Remove("model.State"); } else { ModelState.Remove("model.ICNo"); ModelState.Remove("model.PostCodeMalaysian"); ModelState.Remove("model.StateId"); } if (ModelState.IsValid) { var countryCode = db.Country.Where(c => c.Id == model.CountryId && c.Display).FirstOrDefault(); if (countryCode == null) { return(InternalServerError()); } Authentication.GeneratePassword(model.Password); //get default role var roles = db.RoleDefault.Where(r => r.DefaultRoleType == DefaultRoleType.DefaultIndividual).ToList(); List <UserRole> userroles = new List <UserRole>(); foreach (var role in roles) { userroles.Add(new UserRole { Role = role.Role }); } var account = new UserAccount { LoginId = model.Email, IsEnable = false, HashPassword = Authentication.HashPassword, Salt = Authentication.Salt, LoginAttempt = 0, UserRoles = userroles }; var individual = new IndividualProfile { IsMalaysian = model.IsMalaysian, CitizenshipId = model.CitizenshipId, Address1 = model.Address1, Address2 = model.Address2, PostCode = model.IsMalaysian ? model.PostCodeMalaysian : model.PostCodeNonMalaysian, City = model.City, StateName = model.State, StateId = model.StateId, CountryId = model.CountryId }; var user = new User { UserType = UserType.Individual, Name = model.Name, Email = model.Email, ICNo = model.IsMalaysian ? model.ICNo : model.PassportNo, MobileNo = model.MobileNo, CountryCode = countryCode.CountryCode1, Display = true, CreatedBy = null, CreatedDate = DateTime.Now, UserAccount = account, IndividualProfile = individual }; db.User.Add(user); ActivateAccount activateAccount = new ActivateAccount { UID = Authentication.RandomString(50, true),//random alphanumeric UserId = user.Id, CreatedDate = DateTime.Now, IsActivate = false }; db.ActivateAccount.Add(activateAccount); db.SaveChanges(); return(Ok(new { UserId = user.Id, UID = activateAccount.UID })); } return(BadRequest(ModelState)); }
public IHttpActionResult Post([FromBody] CreateIndividualModel model) { if (model.IsMalaysian) { ModelState.Remove("model.PassportNo"); ModelState.Remove("model.CitizenshipId"); ModelState.Remove("model.PostCodeNonMalaysian"); ModelState.Remove("model.State"); } else { ModelState.Remove("model.ICNo"); ModelState.Remove("model.PostCodeMalaysian"); ModelState.Remove("model.StateId"); } if (ModelState.IsValid) { var countryCode = db.Country.Where(c => c.Id == model.CountryId && c.Display).FirstOrDefault(); if (countryCode == null) { return(InternalServerError()); } var password = "******"; if (FEPHelperMethod.CurrentSystemMode() != SystemMode.Development) { password = Authentication.RandomString(10, true); } Authentication.GeneratePassword(password); var account = new UserAccount { LoginId = model.Email, IsEnable = false, HashPassword = Authentication.HashPassword, Salt = Authentication.Salt, LoginAttempt = 0 }; var individual = new IndividualProfile { IsMalaysian = model.IsMalaysian, CitizenshipId = model.CitizenshipId, Address1 = model.Address1, Address2 = model.Address2, PostCode = model.IsMalaysian ? model.PostCodeMalaysian : model.PostCodeNonMalaysian, City = model.City, StateName = model.State, StateId = model.StateId, CountryId = model.CountryId }; var user = new User { UserType = UserType.Individual, Name = model.Name, Email = model.Email, ICNo = model.IsMalaysian ? model.ICNo : model.PassportNo, MobileNo = model.MobileNo, CountryCode = countryCode.CountryCode1, Display = true, CreatedBy = null, CreatedDate = DateTime.Now, UserAccount = account, IndividualProfile = individual }; foreach (var roleid in model.RoleIds) { var userrole = new UserRole { RoleId = roleid, UserAccount = account, }; db.UserRole.Add(userrole); } db.User.Add(user); ActivateAccount activateaccount = new ActivateAccount { UID = Authentication.RandomString(50, true),//random alphanumeric UserId = user.Id, CreatedDate = DateTime.Now, IsActivate = false }; db.ActivateAccount.Add(activateaccount); db.SaveChanges(); return(Ok(new { UserId = user.Id, Password = password, UID = activateaccount.UID })); } return(BadRequest(ModelState)); }