protected void FormViewUser_ItemUpdating(object sender, FormViewUpdateEventArgs e) { TextBox txtUser = (TextBox)formViewUser.FindControl("txtUser"); UserActionStatus status = Validate(txtUser.Text, actionType.update); if (status == UserActionStatus.Success) { User user = new UserBLL().GetUserByUserID((Guid)e.Keys["UserId"]); using (DatabaseContext _DatabaseContext = new DatabaseContext()) { int roleID = Convert.ToInt32(((DropDownList)formViewUser.FindControl("ddlRoles")).SelectedValue); int groupID = Convert.ToInt32(((DropDownList)formViewUser.FindControl("ddlGroups")).SelectedValue); Role_Users role_Users = _DatabaseContext.Role_Users.First(instance => instance.UserID == user.UserID); Role role = _DatabaseContext.Roles.First(instance => instance.RoleID == roleID); role_Users.RoleID = role.RoleID; role_Users.RoleReference.EntityKey = role.EntityKey; Group_Users group_Users = _DatabaseContext.Group_Users.First(instance => instance.UserID == user.UserID); Group group = _DatabaseContext.Groups.First(instance => instance.GroupID == groupID); group_Users.GroupID = group.GroupID; group_Users.GroupReference.EntityKey = group.EntityKey; _DatabaseContext.SaveChanges(); } Type myType = (typeof(User)); PropertyInfo[] props = myType.GetProperties(); string[] arrNewValues = new string[e.NewValues.Keys.Count]; e.NewValues.Keys.CopyTo(arrNewValues, 0); foreach (var prop in props) { if (("System.String,System.Int,System.DateTime,System.Guid").IndexOf((prop.PropertyType).FullName) >= 0) // Si la propiedad es de tipo Guid, String, Int o DateTime { if (!arrNewValues.Contains(prop.Name)) { e.NewValues[prop.Name] = prop.GetValue(user, null); } } } User editor = new UserBLL().GetUserByUserName((HttpContext.Current.User.Identity).Name); e.NewValues["EditorUserId"] = editor.UserID.ToString(); e.NewValues["EditedDate"] = DateTime.Now; } else { ltlMessage.Text = MessageFormatter.GetFormattedErrorMessage(GetErrorMessage(status)); e.Cancel = true; } }
public string GetErrorMessage(UserActionStatus status) { switch (status) { case UserActionStatus.Duplicate: return("User Name already exists. Please enter a different one."); default: return("Error"); } }
public async Task <bool> SetUserActionStatus(int id, UserActionStatus actionStatus) { var action = await _database.GetAsync <UserAction>(id); if (action is null) { return(false); } action.Status = actionStatus; return(await _database.UpdateAsync(action) > 0); }