public async Task <IActionResult> Inuvation() { var userId = await GetUserId(); var body = await Request.Body.ToStringAsync(); var id = GetConnectionId(); var command = new ParseClientInfoCommand { Identifier = id, RawClientInfo = body, UserId = userId, Game = Game.Rs3, IsXor = true }; var client = await Mediator.Send(command); if (client == null) { return(BadRequest("Client data returned null after parsing.")); } client.Game = Game.Rs3; try { await _mediator.Send(new SaveClientInfoBulkCommand { Clients = new[] { client } }); } catch (Exception) { // ignored } var hasAccess = await Mediator.Send(new HasGroupQuery(userId, GroupConstants.InuvationId, GroupConstants.InuvationMaintainerId)); if (!hasAccess) { return(Unauthorized("You do not have access to Inuvation.")); } var xor = StringExtensions.Xor(client.Hash, _configuration.GetValue <string>("Encryption:XorInuvation")); var base64 = Convert.ToBase64String(xor); return(Ok(base64)); }
public async Task <IActionResult> Update() { var userId = await GetUserId(); var body = await Request.Body.ToStringAsync(); var id = GetConnectionId(); var command = new ParseClientInfoCommand { Identifier = id, RawClientInfo = body, UserId = userId, IsXor = true }; var client = await Mediator.Send(command); if (client == null) { return(BadRequest("Client data returned null after parsing.")); } client.Game = Game.Osrs; try { await _mediator.Send(new SaveClientInfoBulkCommand { Clients = new[] { client } }); } catch (Exception) { // ignored } var over = await Mediator.Send(new IsClientOverLimitQuery { Tag = id, UserId = userId }); if (over) { return(BadRequest("You are currently over your instance limit.")); } var xor = StringExtensions.Xor(client.Hash, _configuration.GetValue <string>("Encryption:Xor")); var base64 = Convert.ToBase64String(xor); return(Ok(base64)); }