public void CanGetAllSpecialistsCreatedByAPlayer()
        {
            String specName = "MyCustomSpecialist";

            submitCustomSpecialist(specName);

            String secondSpecName = "MyCustomSpecialist2";

            submitCustomSpecialist(secondSpecName);


            GetPlayerCustomSpecialistsResponse playerSpecsResponse = client.GetPlayerCustomSpecialists(new GetPlayerCustomSpecialistsRequest()
            {
                PlayerId = authHelper.getAccountId("userOne")
            });

            Assert.IsTrue(playerSpecsResponse.PlayerSpecialists.Count == 2);
            Assert.IsTrue(playerSpecsResponse.PlayerSpecialists.Count(it => it.SpecialistName == specName) == 1);
            Assert.IsTrue(playerSpecsResponse.PlayerSpecialists.Count(it => it.SpecialistName == secondSpecName) == 1);
        }
        public override async Task <GetPlayerCustomSpecialistsResponse> GetPlayerCustomSpecialists(GetPlayerCustomSpecialistsRequest request, ServerCallContext context)
        {
            DbUserModel user = context.UserState["user"] as DbUserModel;

            if (user == null)
            {
                return new GetPlayerCustomSpecialistsResponse()
                       {
                           Status = ResponseFactory.createResponse(ResponseType.UNAUTHORIZED)
                       }
            }
            ;

            // Get the requested user from their id
            DbUserModel player = await DbUserModel.GetUserFromGuid(request.PlayerId);

            if (player == null)
            {
                return(new GetPlayerCustomSpecialistsResponse()
                {
                    Status = ResponseFactory.createResponse(ResponseType.PLAYER_DOES_NOT_EXIST)
                });
            }
            List <SpecialistConfigurationModel> results = await player.GetSpecialistConfigurations();

            GetPlayerCustomSpecialistsResponse response = new GetPlayerCustomSpecialistsResponse()
            {
                Status = ResponseFactory.createResponse(ResponseType.SUCCESS),
            };

            foreach (SpecialistConfigurationModel model in results)
            {
                response.PlayerSpecialists.Add(model.SpecialistConfig);
            }

            return(response);
        }