public User Get(int userId)
        {
            User user = null;
            var comm = GetCommand("SPUsersGet");
            comm.AddParameter<int>(this.Factory, "UserId", userId);

            var dr = GetFirstRow(comm);
            if (dr != null)
            {
                user = ParseUserInfo(dr);
                user.ExternalProfileUrl = dr.GetString("UserExternalProfileUrl");
                user.Email = dr.GetString("UserEmail");
                user.EmailPolicy = (EmailPolicy)(dr.GetNullable<int?>("UserEmailPolicy") ?? (int)EmailPolicy.None);
                user.Photo = dr.GetString("UserPhoto");
                user.Website = dr.GetString("UserWebsite");
                user.BirthDate = dr.GetNullableStruct<DateTime>("UserBirthDate");
                user.Warned = (!dr.IsNull("WarningStart")) && dr.GetNullableStruct<bool>("WarningRead") != true;
                user.Suspended = (!dr.IsNull("SuspendedStart")) && (dr.IsNull("SuspendedEnd") || dr.GetNullableStruct<DateTime>("SuspendedEnd") >= DateTime.UtcNow);
                user.Banned = !dr.IsNull("BannedStart");
                user.SuspendedEnd = dr.GetNullableStruct<DateTime>("SuspendedEnd");
                user.ModeratorReason = dr.GetNullableStruct<ModeratorReason>("ModeratorReason");
                user.ModeratorReasonMessage = dr.GetString("ModeratorReasonFull");

            }

            //se obtiene el perfil desde construnario
            UserProfileAcces profileaccess = new UserProfileAcces(MysqlconnectionString);
            user.Construnario_Profile = profileaccess.Get_UserProfile(dr.Get<string>("userproviderid"));

            return user;
        }