Beispiel #1
0
    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;
        }
    }
Beispiel #2
0
    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);
        }