Как обновить дотнетную картинку пользователя в профиле кода? - PullRequest
4 голосов
/ 14 октября 2011

Я создаю свой собственный модуль "user profile", где в качестве одного из параметров пользователь может изменить свое изображение профиля dnn по умолчанию. У меня проблемы с этим "в коде". Я использую c#.

Это то, что я имею до сих пор:

UserInfo myDnnUser = this.UserInfo;
myDnnUser.Profile.InitialiseProfile(PortalId);

myDnnUser.Profile.SetProfileProperty("Photo", "new filename");
myDnnUser.Profile.SetProfileProperty("PhotoURL", "new url");

ProfileController.UpdateUserProfile(myDnnUser);

Но это не работает, и когда я просматриваю таблицу "Файл", которую использует dnn, это все еще то же самое (старое) имя файла.

Есть идеи?

1 Ответ

8 голосов
/ 14 октября 2011

Здесь задействованы три таблицы: UserProfile, ProfilePropertyDefinition и Files.

UserProfile хранит PropertyValues ​​для ProfilePropertyDefinitions.

Ожидаемое PropertyValue для «Photo» PropertyName - это ссылка FileID на таблицу файлов, а не имя файла. Перед установкой фотографии необходимо получить идентификатор файла:

    var objFiles = new FileController();
    FileInfo objFile = objFiles.GetFile("filepath", PortalID);
    myDnnUser.Profile.Photo = objFile.FileId;
    ProfileController.UpdateUserProfile(myDnnUser);

PhotoURL - это свойство только для чтения, которое получает URL-адрес для свойства Photo для UserProfile.

...