GetUserAsync() public static method

public static GetUserAsync ( long id ) : Task
id long
return Task
Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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);
            }
        }