/// <summary> /// 获取头像的路径 /// </summary> /// <param name="personId">PersonID</param> /// <returns></returns> public async Task<string> GetActiveAvatarUrlAsync(long personId) { using (KoalaBlogDbContext dbContext = new KoalaBlogDbContext()) { AvatarHandler avatarHandler = new AvatarHandler(dbContext); var activeAvatar = await avatarHandler.GetActiveAvatarByPersonId(personId); return activeAvatar.AvatarPath; } }
/// <summary> /// 根据UserName获取KoalaBlogIdentityObject /// </summary> /// <param name="userName"></param> /// <returns></returns> public async Task<KoalaBlogIdentityObject> GetIdentityObjectAsync() { using (KoalaBlogDbContext dbContext = new KoalaBlogDbContext()) { UserAccountXPersonHandler uaxpHandler = new UserAccountXPersonHandler(dbContext); if(CurrentThreadIdentityObject != null) { //1. 根据用户名获取UserAccountXPerson对象。 UserAccountXPerson uaxp = await uaxpHandler.LoadByUserNameAsync(CurrentThreadIdentityObject.UserName); if (uaxp != null) { KoalaBlogIdentityObject identityObject = new KoalaBlogIdentityObject(); if (uaxp.UserAccount != null) { identityObject.UserID = uaxp.UserAccount.ID; identityObject.UserName = uaxp.UserAccount.UserName; identityObject.Email = uaxp.UserAccount.Email; identityObject.Status = uaxp.UserAccount.Status; } if (uaxp.Person != null) { AvatarHandler avatarHandler = new AvatarHandler(dbContext); Avatar avatar = await avatarHandler.GetActiveAvatarByPersonId(uaxp.Person.ID); identityObject.PersonID = uaxp.Person.ID; identityObject.PersonNickName = uaxp.Person.NickName; identityObject.Introduction = uaxp.Person.Introduction; if (avatar != null) { identityObject.AvatarUrl = avatar.AvatarPath; } } return identityObject; } else { UserAccountHandler uaHandler = new UserAccountHandler(dbContext); //2. 如果UserAccountXPerson对象为空,意味着可能是用户注册还没完成,则根据用户名获取UserAccount对象,赋值IdentityObject通用Property。 UserAccount userAccount = await uaHandler.GetByUserNameAsync(CurrentThreadIdentityObject.UserName); if (userAccount != null) { KoalaBlogIdentityObject identityObject = new KoalaBlogIdentityObject() { UserID = userAccount.ID, UserName = userAccount.UserName, Email = userAccount.Email, Status = userAccount.Status }; return identityObject; } } } return null; } }