コード例 #1
0
ファイル: DataLoader.cs プロジェクト: LDC7/RuthlessBoreas
        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);
        }
コード例 #2
0
        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();
        }