public async Task <NewMemberToClanResponseModel> AddMemberToClan(NewMemberToClanRequestModel model)
        {
            var result = await _sqlManager.ExecuteDataCommand("[Common].[AddMemberToClan]",
                                                              CommandType.StoredProcedure,
                                                              null,
                                                              new[]
            {
                model.PlayerId.ToSqlParameter("PlayerId"),
                model.ClanId.ToSqlParameter("ClanId"),
                ((byte)model.ClanFunction).ToSqlParameter("Function"),
                DateTime.Now.ToSqlParameter("DateOfJoin")
            });

            var elements = result.Elements.First().Rows.First().Elements;


            var response = new NewMemberToClanResponseModel()
            {
                playerHasClan = Convert.ToBoolean(elements[0]),
                ExistsClan    = Convert.ToBoolean(elements[1]),
                IsSuccess     = Convert.ToBoolean(elements[2])
            };

            return(response);
        }
        public async Task <UserRegisterResponseModel> Register(UserRegisterRequestModel newPlayer)
        {
            UserRegisterResponseModel returnValue = new UserRegisterResponseModel {
                IsSuccess = true, PlayerId = -1
            };

            if (_context.PlayerIdentity.AnyAsync(t => t.Login == newPlayer.Login || t.Nick == newPlayer.NickName || t.Email == newPlayer.Email).Result)
            {
                returnValue.IsSuccess  = false;
                returnValue.StatusCode = 456;
                return(returnValue);
            }

            List <SqlParameter> parameters = new List <SqlParameter>();

            StringBuilder hashPassword   = new StringBuilder(_encrypter.Encrypted(newPlayer.Password));
            string        generateString = default;
            string        salt           = _encrypter.Encrypted(generateString.GenerateRandomString(40));

            hashPassword.Append(salt);

            var playerHash = newPlayer.GetHashCode();

            var loginParam      = newPlayer.Login.ToSqlParameter("Login");
            var passwordParam   = hashPassword.ToString().ToSqlParameter("Password");
            var nickNameParam   = newPlayer.NickName.ToSqlParameter("NickName");
            var emailParam      = newPlayer.Email.ToSqlParameter("Email");
            var saltHashParam   = salt.ToSqlParameter("SaltHash");
            var retValParam     = true.ToSqlParameter("ReturnValue");
            var playerHashParam = playerHash.ToString().ToSqlParameter("PlayerHash");

            parameters.Add(loginParam);
            parameters.Add(passwordParam);
            parameters.Add(nickNameParam);
            parameters.Add(emailParam);
            parameters.Add(saltHashParam);
            parameters.Add(retValParam);
            parameters.Add(playerHashParam);

            var dataSet = await _sqlManager.ExecuteDataCommand("[Common].[RegisterNewPlayer]", CommandType.StoredProcedure, null, parameters.ToArray());

            var id = dataSet.Elements.First().Rows.First().Elements.First();

            returnValue.NickName = newPlayer.NickName;
            returnValue.PlayerId = (int)id;
            //await _emailService.SendEmailToUser(newPlayer.Email,"",EmailType.Welcome, new EmailData(){NickName = returnValue.NickName, PlayerId  = returnValue.PlayerId, PlayerHash = playerHash .ToString()});
            // return error code
            return(returnValue);
        }
        public async Task <IEnumerable <ClanRankingResponseModel> > GetClanRanking(RankingRequestData rankingModel)
        {
            var result = await _sqlManager.ExecuteDataCommand("[Web].[GetClanRanking]", CommandType.StoredProcedure, null, GetSqlParameters(rankingModel));

            return(await GetClanRankingData(result));
        }