private IEnumerator GetAllAvatarsRoutine(int maxItems, AsyncRequest <GalleryAvatar[]> request) { var avatarsRequest = avatarProvider.GetAllAvatarsAsync(maxItems); yield return(AwaitRoutine(avatarsRequest, null)); if (avatarsRequest.IsError) { yield break; } GalleryAvatar[] avatars = new GalleryAvatar[avatarsRequest.Result.Length]; for (int i = 0; i < avatars.Length; i++) { string avatarCode = avatarsRequest.Result[i]; string avatarName = ReadAvatarNameByCode(avatarCode); avatars[i] = new GalleryAvatar() { name = avatarName, code = avatarCode, state = GetAvatarState(avatarCode) }; } request.Result = avatars; request.IsDone = true; }