public static async Task LoadInitializeData() { var serversData = ServersData.Get(); var charactersData = CharactersIdentityData.Get(); StorageService.SetServers((await serversData).Select(data => new WowServer(data))); foreach (var identity in await charactersData) { StorageService.AddCharacter(new Character(identity)); } StorageService.SortedCharacterIds = StorageService.Characters.Select(character => character.Id); }
private static void UserInputRecieved(object sender, ReceiveCompletedEventArgs e) { MessageQueue mQ = (MessageQueue)sender; Message m = mQ.EndReceive(e.AsyncResult); try { switch (Enum.Parse(typeof(TokenRequestType), m.Label)) { case TokenRequestType.CreateToken: { //UserModel originModel = MSMQHelper.GetMessageBody<UserModel>(m); UserModel userModel = MSMQHelper.GetMessageBody <UserModel>(m); Console.WriteLine("UserModel received!"); MSMQHelper.SendMessage(beaconInputMQ, "ServersData", "ServersData", beaconResponseMQ); ServersData data = MSMQHelper.GetMessageBody <ServersData>(MSMQHelper.ReceiveMessage(beaconResponseMQ, new TimeSpan(0, 0, 5))); JWTPayload payload = new JWTPayload() { UserID = userModel.UserID, ServersInfo = data }; userModel.Token = JWTManager.CreateJWT(JWTManager.CreateClaims <JWTPayload>(payload), 5).RawData; userModel.TokenResponse = TokenResponse.Created; Message userResponse = new Message() { Formatter = new JsonMessageFormatter(), Body = JsonConvert.SerializeObject(userModel), Label = userModel.UserID }; MSMQHelper.SendMessage(m.ResponseQueue, userResponse); Console.WriteLine("Token send to {0}", m.ResponseQueue.Path); break; } case TokenRequestType.VerifyToken: { UserModel userModel = MSMQHelper.GetMessageBody <UserModel>(m); if (JWTManager.VerifyToken(userModel.Token)) { userModel.TokenResponse = TokenResponse.Valid; userModel.Message = "Token Valid, Connecting to Server!"; Console.WriteLine("\n=======TOKEN======"); Console.WriteLine(userModel.Token); Console.WriteLine("=======TOKEN======\n"); Message userResponse = new Message() { Formatter = new JsonMessageFormatter(), Body = JsonConvert.SerializeObject(userModel), Label = userModel.UserID }; MSMQHelper.SendMessage(m.ResponseQueue, userResponse); Console.WriteLine("Token was valid!"); Console.WriteLine("Response send to {0}", m.ResponseQueue.Path); } else { userModel.TokenResponse = TokenResponse.Invalid; userModel.Message = "Session Token no longer valid!\n Please login, using credentials."; Message userResponse = new Message() { Formatter = new JsonMessageFormatter(), Body = JsonConvert.SerializeObject(userModel), Label = userModel.UserID }; MSMQHelper.SendMessage(m.ResponseQueue, userResponse); Console.WriteLine("Token was invalid!"); Console.WriteLine("Response send to {0}", m.ResponseQueue.Path); } break; } } } catch (Exception error) { Console.WriteLine("Couldn't read message!"); Console.WriteLine(error); Console.WriteLine(error.Message); UserModel userModel = new UserModel() { UserID = JsonConvert.DeserializeObject <UserModel>(m.Body.ToString()).UserID, RequestType = RequestTypes.Error, TokenResponse = TokenResponse.Invalid, Message = "Token Request Failed: " + error.Message }; Message userResponse = new Message() { Formatter = new JsonMessageFormatter(), Body = JsonConvert.SerializeObject(userModel), Label = userModel.UserID }; MSMQHelper.SendMessage(m.ResponseQueue, userResponse); } mQ.BeginReceive(); }