public static GetUserAsync ( long id ) : Task |
||
id | long | |
return | Task |
private static async Task <TwitterStatus> LoadDirectMessageAsync([NotNull] DatabaseStatus dbstatus) { if (dbstatus == null) { throw new ArgumentNullException("dbstatus"); } if (dbstatus.InReplyToOrRecipientUserId == null) { throw new ArgumentException("dbstatus.InReplyToUserOrRecipientId is must not be null."); } var id = dbstatus.Id; var user = UserProxy.GetUserAsync(dbstatus.UserId).ConfigureAwait(false); var recipient = UserProxy.GetUserAsync(dbstatus.InReplyToOrRecipientUserId.Value).ConfigureAwait(false); var se = DatabaseUtil.RetryIfLocked(() => Database.StatusEntityCrud.GetEntitiesAsync(id)).ConfigureAwait(false); try { return(Mapper.Map(dbstatus, await se, await user, await recipient)); } catch (ArgumentNullException anex) { throw new DatabaseConsistencyException( "Lacking required data in database.(mode: DM, status ID " + dbstatus.Id + ", user ID " + dbstatus.UserId + ")", anex); } }
private static async Task <TwitterStatus> LoadDirectMessageAsync([NotNull] DatabaseStatus dbstatus) { if (dbstatus == null) { throw new ArgumentNullException("dbstatus"); } if (dbstatus.InReplyToOrRecipientUserId == null) { throw new ArgumentException("dbstatus.InReplyToUserOrRecipientId is must not be null."); } var id = dbstatus.Id; var user = UserProxy.GetUserAsync(dbstatus.UserId); var recipient = UserProxy.GetUserAsync(dbstatus.InReplyToOrRecipientUserId.Value); var se = Database.StatusEntityCrud.GetEntitiesAsync(id); try { return(Mapper.Map(dbstatus, await DatabaseUtil.RetryIfLocked(async() => await se), await user, await recipient)); } catch (ArgumentNullException anex) { throw new DatabaseConsistencyException( "データベースから必要なデータを読み出せませんでした。(モード: DM, ステータスID " + dbstatus.Id + ", ユーザID " + dbstatus.UserId + ")", anex); } }
private static async Task <TwitterStatus> LoadPublicStatusAsync([CanBeNull] DatabaseStatus dbstatus) { if (dbstatus == null) { throw new ArgumentNullException(nameof(dbstatus)); } var id = dbstatus.Id; var user = DatabaseUtil.RetryIfLocked(() => UserProxy.GetUserAsync(dbstatus.UserId)).ConfigureAwait(false); var se = DatabaseUtil.RetryIfLocked(() => Database.StatusEntityCrud.GetEntitiesAsync(id)).ConfigureAwait(false); var favorers = DatabaseUtil.RetryIfLocked(() => Database.FavoritesCrud.GetUsersAsync(id)).ConfigureAwait(false); var retweeters = DatabaseUtil.RetryIfLocked(() => Database.RetweetsCrud.GetUsersAsync(id)).ConfigureAwait(false); try { if (dbstatus.RetweetOriginalId != null || dbstatus.QuoteId != null) { var orig = dbstatus.RetweetOriginalId == null ? null : await GetStatusAsync(dbstatus.RetweetOriginalId.Value).ConfigureAwait(false); var quote = dbstatus.QuoteId == null ? null : await GetStatusAsync(dbstatus.QuoteId.Value).ConfigureAwait(false); return(Mapper.Map(dbstatus, await se, await favorers, await retweeters, orig, quote, await user)); } return(Mapper.Map(dbstatus, await se, await favorers, await retweeters, await user)); } catch (ArgumentNullException anex) { throw new DatabaseConsistencyException( "Lacking required data in database.(mode: PS, status ID " + dbstatus.Id + ", user ID " + dbstatus.UserId + ")", anex); } }
private static async Task <TwitterStatus> LoadPublicStatusAsync([NotNull] DatabaseStatus dbstatus) { if (dbstatus == null) { throw new ArgumentNullException("dbstatus"); } var id = dbstatus.Id; var user = DatabaseUtil.RetryIfLocked(async() => await UserProxy.GetUserAsync(dbstatus.UserId)); var se = DatabaseUtil.RetryIfLocked(async() => await Database.StatusEntityCrud.GetEntitiesAsync(id)); var favorers = DatabaseUtil.RetryIfLocked(async() => await Database.FavoritesCrud.GetUsersAsync(id)); var retweeters = DatabaseUtil.RetryIfLocked(async() => await Database.RetweetsCrud.GetUsersAsync(id)); try { if (dbstatus.RetweetOriginalId != null) { var orig = await GetStatusAsync(dbstatus.RetweetOriginalId.Value); if (orig != null) { return(Mapper.Map(dbstatus, await se, await favorers, await retweeters, orig, await user)); } } return(Mapper.Map(dbstatus, await se, await favorers, await retweeters, await user)); } catch (ArgumentNullException anex) { throw new DatabaseConsistencyException( "データベースから必要なデータを読み出せませんでした。(モード: PS, ステータスID " + dbstatus.Id + ", ユーザID " + dbstatus.UserId + ")", anex); } }