Пример #1
0
        public async Task <IActionResult> GetCharacterGuildList([NotNull][FromServices] IGuildCharacterMembershipRepository guildCharacterMembershipRepository,
                                                                [FromServices] ISocialServiceToGameServiceClient socialToGameClient)
        {
            if (guildCharacterMembershipRepository == null)
            {
                throw new ArgumentNullException(nameof(guildCharacterMembershipRepository));
            }

            CharacterSessionDataResponse session = await socialToGameClient.GetCharacterSessionDataByAccount(ClaimsReader.GetAccountIdInt(User));

            if (!session.isSuccessful)
            {
                return(BuildFailedResponseModel(CharacterGuildMembershipStatusResponseCode.GeneralServerError));
            }

            //No guild check
            if (!await guildCharacterMembershipRepository.ContainsAsync(session.CharacterId))
            {
                return(BuildFailedResponseModel(CharacterGuildMembershipStatusResponseCode.NoGuild));
            }

            var playerGuildMembership = await guildCharacterMembershipRepository.RetrieveAsync(session.CharacterId);

            int[] roster = await guildCharacterMembershipRepository.GetEntireGuildRosterAsync(playerGuildMembership.GuildId);

            return(BuildSuccessfulResponseModel(new CharacterGuildListResponseModel(roster)));
        }