/// <summary> /// Updates the user account. /// </summary> /// <param name="model">The model.</param> /// <param name="isApproved">if set to <c>true</c> [is approved].</param> /// <returns> /// An AccountTransactionStatus struct. /// </returns> public AccountTransactionStatus UpdateUserAccount(UserAddModel model, bool isApproved = true) { // Try to find user. AccountTransactionStatus status = new AccountTransactionStatus { HasUpdatedMembership = false, HasUpdatedStateAssignments = false, HasUpdatedRoles = false, HasUpdatedProfile = false }; var container = this.FindUser(model.UserName); if (container.IsEmpty) { var logInfo = new LogInformation { ClassName = "AccountManager", MethodName = "UpdateUserAccount", ArgumentsPassedIn = new string[] { JsonConvert.SerializeObject(model), isApproved.ToString() }, ErrorMessage = "User was not found or does not exist." }; this.logger.Error(JsonConvert.SerializeObject(logInfo)); } else { // perform updates status.HasUpdatedMembership = this.UpdateUser(container.User, model, container.Providers.Membership, isApproved); status.HasUpdatedProfile = this.UpdateUserProfile(model.UserName, model); status.HasUpdatedRoles = this.UpdateUserRoles(model.UserName, model.RoleSelections, container.Providers.Role); status.HasUpdatedStateAssignments = this.UpdateUserStateAssignments(model.UserName, model.CheckboxStateSelections, model.RadioSelectedState, container.Providers.Role); } return(status); }
internal protected AccountTransaction( string requestId, AccountTransactionType type, AccountTransactionStatus status, decimal amount, DateTime?transactionDate = null, string externalId = null) { Status = status; Type = type; RequestId = requestId; TransactionUN = externalId; Amount = amount; TransactionDate = transactionDate ?? DateTime.UtcNow; ValidFrom = TransactionDate; }
/// <summary> /// Deletes the user account. /// </summary> /// <param name="userName">Name of the user.</param> /// <param name="adminName">Name of the admin deleting the user.</param> /// <returns>An AccountTransactionStatus struct.</returns> public AccountTransactionStatus DeleteUserAccount(string userName, string adminName) { AccountTransactionStatus status = new AccountTransactionStatus { HasUpdatedMembership = false, HasUpdatedStateAssignments = false, HasUpdatedRoles = false, HasUpdatedProfile = false }; if (userName.Equals(adminName)) { var logInfo = new LogInformation { ClassName = "AccountManager", MethodName = "UpdateUserAccount", ArgumentsPassedIn = new string[] { userName, adminName }, ErrorMessage = "Administrator tried to delete self." }; this.logger.Error(JsonConvert.SerializeObject(logInfo)); return(status); } var container = this.FindUser(userName); if (container.IsEmpty) { var logInfo = new LogInformation { ClassName = "AccountManager", MethodName = "UpdateUserAccount", ArgumentsPassedIn = new string[] { userName, adminName }, ErrorMessage = "User was not found or does not exist." }; this.logger.Error(JsonConvert.SerializeObject(logInfo)); } else { status.HasUpdatedStateAssignments = true; status.HasUpdatedRoles = this.DeleteUserRoles(userName, container.Providers.Role); status.HasUpdatedProfile = this.DeleteUserProfile(userName); status.HasUpdatedMembership = this.DeleteUser(container.User, container.Providers); } return(status); }
/// <summary> /// Creates the user account. /// An account has up to four components: /// 1] Membership: credentials. /// 2] Profile. /// 3] Roles. /// 4] When applicable, state assignments. /// </summary> /// <param name="model">The model.</param> /// <param name="isApproved">if set to <c>true</c> [is approved].</param> /// <returns> /// An AccountTransactionStatus struct. /// </returns> public AccountTransactionStatus CreateUserAccount(UserAddModel model, bool isApproved = true) { var application = Application.EvalEngine; AccountTransactionStatus status = new AccountTransactionStatus { HasUpdatedMembership = false, HasUpdatedStateAssignments = false, HasUpdatedRoles = false, HasUpdatedProfile = false }; var providersNames = GetProviderNamesFor(application); var userName = this.CreateUser(model, providersNames.Membership, isApproved); if (userName != null) { status.HasUpdatedMembership = true; status.HasUpdatedProfile = this.UpdateUserProfile(userName, model); status.HasUpdatedRoles = this.UpdateUserRoles(userName, model.RoleSelections, providersNames.Role); status.HasUpdatedStateAssignments = this.UpdateUserStateAssignments(userName, model.CheckboxStateSelections, model.RadioSelectedState, providersNames.Role); } return(status); }
/// <summary> /// Accounts the transaction was successful. /// </summary> /// <param name="status">The status.</param> /// <returns><c>true</c> if all the components of a user account were updated successfully. <c>false</c> otherwise.</returns> public static bool AccountTransactionWasSuccessful(AccountTransactionStatus status) { return(status.HasUpdatedMembership && status.HasUpdatedProfile && status.HasUpdatedRoles && status.HasUpdatedStateAssignments); }