public async Task <GenericResponse <GenericPayload> > SignUp(SignUpRequest newUser) { var response = new GenericResponse <GenericPayload>(); try { using (_userRepository) { response.Status = HttpStatusCode.OK; response.Message = "Success"; var payload = new GenericPayload() { IsSuccess = false, }; var isCreated = await TryCreateUser(_userRepository, newUser); payload.IsSuccess = isCreated; payload.SpecificMessage = isCreated ? "User created" : $"Unable to create user {newUser.UserEmail}"; response.Payload = payload; } } catch (Exception ex) { response.Status = HttpStatusCode.InternalServerError; response.Message = "Failed"; } return(response); }
private void OnDataReceived(ConnectionService con, ref NetworkMessage data) { if (data.tag == (int)UsersPluginRequestTags.TryLoginRequest) { data.DecodeData(); var requestPayload = data.data as GenericPayload <TryLoginRequestModel>; if (requestPayload == null) { Interface.LogError("Could not parse the payload"); return; } using (UsersManager manager = new UsersManager()) { var payload = new GenericPayload <TryLoginResponseModel>(); GameUser user = null; bool isSuccess = manager.TryLogin(requestPayload.Value.Username, requestPayload.Value.Password, out user); payload.Value = new TryLoginResponseModel { IsSuccess = isSuccess, Username = user == null ? string.Empty : user.Username, }; con.SendReply((int)UsersPluginResponseTags.TryLoginResponse, data.subject, payload); } } }
public void Action_Should_Be_Equal() { // Arrange var action = "test"; _sut = new GenericPayload { Action = action }; // Assert _sut.Action.Should().Be(action); }
public void TryLogin() { if (m_Connection.isConnected && IsLoginBtnInteractable) { IsLoginBtnInteractable = false; var payload = new GenericPayload <TryLoginRequestModel> { Value = new TryLoginRequestModel { Username = Username, Password = Password } }; m_Connection.SendMessageToServer((int)UsersPluginRequestTags.TryLoginRequest , 0 , payload); } }
//new Thread(async() // => await HeartbeatSerivce()).Start(); public async Task HeartbeatSerivce(int bufferSize = 1024, bool isDebugging = false) { ClientWebSocket ws = new ClientWebSocket(); CancellationToken ct = new CancellationToken(); ArraySegment <byte> receiveBuffer = new ArraySegment <byte>(new byte[bufferSize]); ArraySegment <byte> sendBuffer = new ArraySegment <byte>(new byte[bufferSize]); await ws.ConnectAsync(new Uri("wss://gateway.discord.gg/?encoding=json&v=6"), ct); while (ws.State == WebSocketState.Connecting) { Thread.Sleep(10); } bool hasHeartbeat = false; int heartbeatInterval = 0; long previousHeartbeat = DateTimeOffset.Now.ToUnixTimeMilliseconds(); GenericPayload lastPayload = new GenericPayload(); while (ws.State == WebSocketState.Open) { if (hasHeartbeat == false) { await ws.ReceiveAsync(receiveBuffer, ct); string jsonData = Encoding.ASCII.GetString(receiveBuffer.ToArray()).Replace(" ", ""); GatewayPayload gateway = JsonConvert.DeserializeObject <GatewayPayload>(jsonData, JsonSettings); HeartbeatPayload heartbeat = JsonConvert.DeserializeObject <HeartbeatPayload>(gateway.d.ToString(), JsonSettings); lastPayload = new GenericPayload() { op = gateway.op, d = gateway.s, }; heartbeatInterval = heartbeat.heartbeat_interval; hasHeartbeat = true; } else { if (previousHeartbeat + heartbeatInterval - 1500 <= DateTimeOffset.Now.ToUnixTimeMilliseconds()) { GenericPayload payload = new GenericPayload() { op = 1, d = lastPayload.d }; string jsonData = JsonConvert.SerializeObject(payload); byte[] data = Encoding.ASCII.GetBytes(jsonData); sendBuffer = new ArraySegment <byte>(data); await ws.SendAsync(sendBuffer, WebSocketMessageType.Text, true, ct); Console.WriteLine("HEARTBEAT"); await ws.ReceiveAsync(receiveBuffer, ct); data = receiveBuffer.ToArray(); int i = 0; for (i = data.Length - 1; data[i] == 0; i--) { ; } byte[] responseData = new byte[i]; Buffer.BlockCopy(data, 0, responseData, 0, responseData.Length); jsonData = Encoding.ASCII.GetString(responseData); Console.WriteLine(jsonData); previousHeartbeat = DateTimeOffset.Now.ToUnixTimeMilliseconds(); } } receiveBuffer = new ArraySegment <byte>(new byte[bufferSize]); Thread.Sleep(1); } }