/// <summary> /// Creates the list of models selected by the system users /// </summary> /// <param name="result"></param> /// <returns></returns> private static List <RoleModel> BindRoleModels(ValueProviderResult result) { var rawValue = result.RawValue as string[]; if (rawValue == null || rawValue.Length == 0) { return(null); } List <RoleModel> models = ManageRoleModelHelper.GetRoleModels(rawValue); return(models); }
public static bool Register(this UserModel model, out Status status) { try { using (var db = new DbContextHelper()) { if (model.EmailExists()) { status = Status.DuplicateEmail; return(false); } var user = db.Users.Create(); user.Roles = new List <Role>(); // TODO: Get Facebook app role for current user // If administrator or developer grant full access if (false) { user.Roles.Add(ManageRoleModelHelper.GetRole(Role.ADMINISTRATOR_ID, db)); user.Roles.Add(ManageRoleModelHelper.GetRole(Role.CONTENT_APPROVER_ID, db)); user.Roles.Add(ManageRoleModelHelper.GetRole(Role.CONTENT_PUBLISHER_ID, db)); user.Roles.Add(ManageRoleModelHelper.GetRole(Role.MINISTRY, db)); } else { user.Roles.Add(ManageRoleModelHelper.GetRole(Role.BASIC_ID, db)); } user.IdKey = Guid.NewGuid(); user.FacebookId = model.FacebookId; user.Link = model.Link; user.FirstName = model.FirstName; user.LastName = model.LastName; user.ScreenName = model.ScreenName; user.AccessToken = model.AccessToken; user.UserStatusEnum = UserStatus.Active; user.Created = DateTime.Now; user.LastAccessed = DateTime.Now; user.Email = model.Email; user.ScreenName = model.Email; user = db.Users.Add(user); db.SaveChanges(); model.Id = user.Id; model.IdKey = user.IdKey; model.UserIdKey = user.IdKey; List <Role> roles = user.Roles as List <Role>; model.Roles = roles.GetRoleModelsFromRoles(); model.CreateAuthorizationTicket(); status = Status.Success; return(true); } } catch (Exception ex) { LogHelper.LogFatalError("UserModelHelper.Register", ex); status = Status.SystemException; } return(false); }