Exemplo n.º 1
0
        private void SetResult(JavascriptMethodEventArgs e, IJSCBridgeCache bridge, Task<object> resulttask)
        {
            WebCore.QueueWork(()=>
                {
                    if ( e.Arguments.Length<2)
                        return;

                    JSObject promise =  e.Arguments[1];

                    if (!resulttask.IsFaulted)
                    {
                        bridge.RegisterInSession(resulttask.Result, (bridgevalue) =>
                        {
                            promise.Invoke("fullfill", bridgevalue.GetJSSessionValue());
                        });
                    }
                    else
                    {
                        string error = (resulttask.IsCanceled) ? "Cancelled" : 
                            ( (resulttask.Exception==null) ? "Faulted" : resulttask.Exception.Flatten().InnerException.Message);

                        promise.Invoke("reject", error);
                    }
                });
        }
Exemplo n.º 2
0
        public JSValue _aweHandler(object sender, JavascriptMethodEventArgs args)
        {
            if (handler == null)
                return null;

            // convert input arguments from JSValue to delegate argument parameters
            object[] _args = new object[args.Arguments.Length];
            for (int i = 0; i < args.Arguments.Length; ++i)
            {
                ParameterInfo paramInfo = handler.Method.GetParameters()[i];
                _args[i] = Convert.ChangeType(args.Arguments[i], paramInfo.ParameterType);
            }

            // convert return value to JSValue
            Type retType = handler.Method.ReturnType;
            object[] ret = new object[1];
            ret[0] = handler.DynamicInvoke(_args);
            foreach (ConstructorInfo cInfo in typeof(JSValue).GetConstructors())
            {
                if (cInfo.GetParameters().Length == 1 && cInfo.GetParameters()[0].ParameterType == retType)
                    return (JSValue)cInfo.Invoke(ret);
            }

            return null;
        }
Exemplo n.º 3
0
        private void SubmitMessage(object sender, JavascriptMethodEventArgs e)
        {
            var chatText = UiManager.webView.ExecuteJavascriptWithResult("document.getElementById('txt-chattext').value");
            UiManager.webView.ExecuteJavascript("document.getElementById('txt-chattext').value = '';");

            var packet = new ChatPacket(chatText, ChatChannel.Map);
            NetworkManager.Instance.SendPacket(packet);
        }
Exemplo n.º 4
0
        public static void UpdateSelectBar(JavascriptMethodEventArgs args)
        {
            int position = (int)args.Arguments[0] - 30;
            string[] temp = args.Arguments[1].ToString().Split('/');
            string imageName = temp[temp.Length - 1];
            int amount = int.Parse(args.Arguments[2]);

            Selector.SetBlockAt(position, imageName, amount);
        }
        private void CancelCharacterSelection(object sender, JavascriptMethodEventArgs e)
        {
            if (!Object.ReferenceEquals(WinterEngineService.NetworkClient, null))
            {
                WinterEngineService.NetworkClient.Disconnect();
            }

            RaiseChangeScreenEvent(new TypeOfEventArgs(typeof(ServerListScreen)));
        }
Exemplo n.º 6
0
        private void HandleLogin(object sender, JavascriptMethodEventArgs e)
        {
            var username = UiManager.webView.ExecuteJavascriptWithResult("document.getElementById('txt-username').value");
            var password = UiManager.webView.ExecuteJavascriptWithResult("document.getElementById('txt-password').value");
            password = HashHelper.CalculateSha512Hash(password);

            var packet = new LoginRequestPacket(username, password);
            NetworkManager.Instance.SendPacket(packet);
        }
Exemplo n.º 7
0
 public void Width(object sender, JavascriptMethodEventArgs e)
 {
     e.Result = new JSValue(_window.Width);
     if (e.Arguments.Length == 0)
     {
         return;
     }
     if (e.Arguments[0].IsNumber)
     {
         e.Result = new JSValue(_window.Width = (float)e.Arguments[0]);
     }
 }
Exemplo n.º 8
0
 public void Alert(object sender, JavascriptMethodEventArgs e)
 {
     try
     {
         string caption = e.Arguments.Length >= 2 ? e.Arguments[0].ToString() : "";
         string message = e.Arguments.Length >= 2 ? e.Arguments[1].ToString() : e.Arguments.Length == 1 ? e.Arguments[0].ToString() : "";
         e.Result = new JSValue((int)(MessageBox.Show(_window, message, caption)));
     }
     catch (Exception)
     {
         e.Result = JSValue.Undefined;
     }
 }
Exemplo n.º 9
0
        public void OnRequestBuddies(object sender, JavascriptMethodEventArgs e)
        {
            JSValue[] buddyList = new JSValue[Client.AllPlayers.Count];

            int i = 0;
            foreach (var x in Client.AllPlayers)
            {
                JSObject buddy = new JSObject();
                buddy["name"] = new JSValue(x.Value.Username);
                buddy["summonerId"] = new JSValue(x.Key.Replace("sum", ""));
                buddy["isMutualFriend"] = new JSValue(true);
                buddyList[i++] = buddy;
            }

            e.Result = new JSValue(buddyList);
        }
Exemplo n.º 10
0
 public void HashString(object sender, JavascriptMethodEventArgs e)
 {
     if (e.Arguments == null || e.Arguments.Length == 0)
     {
         e.Result = JSValue.Null;
         return;
     }
     try
     {
         e.Result = new JSValue(Helpers.CommonHelper.GetHash(e.Arguments[0].ToString()));
     }
     catch (Exception)
     {
         e.Result = JSValue.Null;
     }
 }
Exemplo n.º 11
0
        private void New(object sender, JavascriptMethodEventArgs e)
        {
            this.ScenarioSelected = (string)e.Arguments[0];

            var StructuresfileName = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\SkyLands\\" + this.ScenarioSelected + "\\";

            System.IO.Directory.CreateDirectory(StructuresfileName);

            StreamWriter s = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\SkyLands\\" + this.ScenarioSelected + "\\structures.scenario", true);
            s.Close();

            s = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\SkyLands\\scenarios.txt", true);
            s.WriteLine(this.ScenarioSelected);
            s.Close();

            Visible = false;
            new StructuresMenu(this.mStateMgr, this.ScenarioSelected);
        }
Exemplo n.º 12
0
        public void OnItemClick(object sender, JavascriptMethodEventArgs e)
        {
            if (e.Arguments.Length <= 0)
                return;

            string champion = e.Arguments[0];
            string skin = e.Arguments[1];
            int championId = Convert.ToInt32(champion.Replace("champions_", ""));
            if (skin != "null")
            {
                int skinId = Convert.ToInt32(skin.Replace("championsskin_", ""));
                Client.OverlayContainer.Content = new ChampionDetailsPage(championId, skinId).Content;
            }
            else
                Client.OverlayContainer.Content = new ChampionDetailsPage(championId).Content;

            Client.OverlayContainer.Visibility = Visibility.Visible;
        }
Exemplo n.º 13
0
 public void OnItemClick(object sender, JavascriptMethodEventArgs e)
 {
     if (e.Arguments.Length > 0)
     {
         string Champion = e.Arguments[0];
         string Skin = e.Arguments[1];
         int ChampionId = Convert.ToInt32(Champion.Replace("champions_", ""));
         if (Skin != "null")
         {
             int SkinID = Convert.ToInt32(Skin.Replace("championsskin_", ""));
             Client.OverlayContainer.Content = new ChampionDetailsPage(ChampionId, SkinID).Content;
         }
         else
         {
             Client.OverlayContainer.Content = new ChampionDetailsPage(ChampionId).Content;
         }
         Client.OverlayContainer.Visibility = Visibility.Visible;
     }
 }
Exemplo n.º 14
0
        private void JSHandler(object sender, JavascriptMethodEventArgs args)
        {
            //Figure out proper time, converted to local time zone from EST
            string startTimeE = args.Arguments[1];
            int    mod        = 0;

            startTimeE = startTimeE.Split(new char [] { '-' })[0];
            if (startTimeE.Substring(startTimeE.Length - 3) == "PM ")
            {
                mod = 12;
            }
            startTimeE = startTimeE.Substring(0, startTimeE.Length - 3);
            int startTime = int.Parse(startTimeE);

            startTime += mod;
            DateTime time = TimeZoneInfo.ConvertTime(new DateTime(DateTime.Now.Year, DateTime.Now.Month, int.Parse(args.Arguments[2]), startTime, 0, 0), TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"), TimeZoneInfo.Local);

            events.Add(args.Arguments[0], time);
        }
Exemplo n.º 15
0
        // Synchronous JavaScript methods' handler.
        private JSValue OnCustomJavascriptMethod(object sender, JavascriptMethodEventArgs e)
        {
            // We can have the same handler handling many remote methods.
            // Check here the method that is calling the handler.
            switch (e.MethodName)
            {
            case "myMethod":
                // Print the text passed.
                Debug.Print(e.Arguments[0]);
                // Synchronously return a response.
                return("Message Received!");

            default:
                Debug.Print(String.Format(
                                "OnCustomJavascriptMethod is called for unknown method: {0}", e.MethodName));
                // We are not bound to this method. Return 'undefined'.
                return(JSValue.Undefined);
            }
        }
Exemplo n.º 16
0
        private void New(object sender, JavascriptMethodEventArgs e)
        {
            string name = (string)e.Arguments[0];

            this.mStateMgr.StoryInfo.name       = name.Split('-')[0];
            this.mStateMgr.StoryInfo.pathToFile = "";

            this.scenarios.Add(name);
            this.update();

            //adding event file

            StreamWriter s = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\SkyLands\\" + this.scenarioName + "\\" + this.scenarioName + ".event", true);

            s.Close();

            this.mStateMgr.RequestStatePush(typeof(StoryEditorState));
            Visible = false;
        }
Exemplo n.º 17
0
 private void saveSmurfs(object sender, JavascriptMethodEventArgs e)
 {
     if (e.Arguments[0].IsArray)
     {
         JSValue          smurfArray   = e.Arguments[0];
         List <SmurfData> smurfListOut = new List <SmurfData>();
         foreach (JSObject smrf in (JSValue[])smurfArray)
         {
             SmurfData smurf = new SmurfData();
             smurf.id           = smrf["id"];
             smurf.username     = smrf["username"];
             smurf.password     = smrf["password"];
             smurf.region       = (LoLLauncher.Region)Enum.Parse(typeof(LoLLauncher.Region), smrf["region"]);
             smurf.queue        = smrf["queue"];
             smurf.desiredLevel = double.Parse(smrf["desiredLevel"].ToString());
             smurfListOut.Add(smurf);
         }
         Storage.SerializeObject(smurfListOut, "smurfs.xml");
     }
 }
Exemplo n.º 18
0
        private void loadMaskedGames(object sender, JavascriptMethodEventArgs e)
        {
            JSObject callbackarg = e.Arguments[0];
            JSObject cb          = callbackarg.Clone();

            JSValue[] js_arr = new JSValue[gameList.Count];
            JSObject  game;
            int       count = 0;

            foreach (var _game in gameList)
            {
                game              = new JSObject();
                game["username"]  = _game.username;
                game["region"]    = _game.region;
                game["processId"] = _game.process.Id;
                game["masked"]    = _game.maskStatus == MaskStatus.Masked;
                js_arr[count]     = game;
                count++;
            }
            cb?.Invoke("call", callbackarg, js_arr);
        }
Exemplo n.º 19
0
 private void saveGroups(object sender, JavascriptMethodEventArgs e)
 {
     if (e.Arguments[0].IsArray)
     {
         JSValue          GroupArray   = e.Arguments[0];
         List <GroupData> groupListOut = new List <GroupData>();
         foreach (JSObject grp in (JSValue[])GroupArray)
         {
             GroupData group = new GroupData();
             group.name  = grp["name"];
             group.queue = grp["queue"];
             group.id    = grp["id"];
             foreach (JSObject smrf in (JSValue[])grp["smurfs"])
             {
                 group.smurfIds.Add(smrf["id"]);
             }
             groupListOut.Add(group);
         }
         Storage.SerializeObject(groupListOut, "groups.xml");
     }
 }
Exemplo n.º 20
0
        public void OnThisClicked(object sender, JavascriptMethodEventArgs e)
        {
            Console.WriteLine(e.Arguments[0].ToString());
            AddToChat(e.Arguments[0].ToString());

            var argument = e.Arguments[0].ToString();

            switch (argument)
            {
            case "Inventory":
                mUi.Awesomium.CallJavascriptFunction("ShowDialog", "dlgInventory");
                break;

            case "Stats":
                mUi.Awesomium.CallJavascriptFunction("ShowDialog", "dlgStats");
                break;

            case "Options":
                mUi.Awesomium.CallJavascriptFunction("ShowDialog", "dlgOptions");
                break;
            }
        }
Exemplo n.º 21
0
 private void action(object sender, JavascriptMethodEventArgs e)
 {
     if (e.Arguments[0] == 0)
     {
         Rotator.pause();
     }
     if (e.Arguments[0] == 1)
     {
         Rotator.stop();
     }
     if (e.Arguments[0] == 2)
     {
         Rotator.setLimit((int)e.Arguments[1]);
         new Thread(() =>
         {
             checkThingsToStart();
         }).Start();
     }
     if (e.Arguments[0] == 3)
     {
         Rotator.start();
     }
 }
Exemplo n.º 22
0
        public void OnItemClick(object sender, JavascriptMethodEventArgs e)
        {
            if (e.Arguments.Length <= 0)
            {
                return;
            }

            string champion   = e.Arguments[0];
            string skin       = e.Arguments[1];
            int    championId = Convert.ToInt32(champion.Replace("champions_", ""));

            if (skin != "null")
            {
                int skinId = Convert.ToInt32(skin.Replace("championsskin_", ""));
                Client.OverlayContainer.Content = new ChampionDetailsPage(championId, skinId).Content;
            }
            else
            {
                Client.OverlayContainer.Content = new ChampionDetailsPage(championId).Content;
            }

            Client.OverlayContainer.Visibility = Visibility.Visible;
        }
Exemplo n.º 23
0
        private void renderOpt(object sender, JavascriptMethodEventArgs e)
        {
            if (e.Arguments[0] != JSValue.Undefined)
            {
                if (!e.Arguments[1])
                {
                    maskEnable((int)e.Arguments[0]);
                }
                else
                {
                    maskDisable((int)e.Arguments[0]);
                }

                JSObject callbackarg = e.Arguments[2];
                JSObject cb          = callbackarg.Clone();

                if (gameExist((int)e.Arguments[0]))
                {
                    bool masked = gameList.Find(i => i.process.Id == (int)e.Arguments[0]).maskStatus == MaskStatus.Masked;
                    cb?.Invoke("call", callbackarg, masked);
                }
            }
        }
        private void CreateCharacter(object sender, JavascriptMethodEventArgs e)
        {
            string json = e.Arguments[0];
            ViewModel = JsonConvert.DeserializeObject<CharacterCreationViewModel>(json);

            NewCharacterPacket packet = new NewCharacterPacket
            {
                AbilityChoices = ViewModel.AbilityChoices,
                Age = ViewModel.Age,
                CharacterClassID = ViewModel.CharacterClassID,
                FirstName = ViewModel.FirstName,
                GenderID = ViewModel.GenderID,
                LastName = ViewModel.LastName,
                PortraitID = ViewModel.PortraitID,
                RaceID = ViewModel.RaceID,
                SelectedAbilities = ViewModel.SelectedAbilities,
                SkillPoints = ViewModel.SkillPoints
            };

            if (WinterEngineService.NetworkClient != null)
            {
                WinterEngineService.NetworkClient.SendPacket(packet, NetDeliveryMethod.ReliableUnordered);
            }
        }
Exemplo n.º 25
0
 private void maximize(object sender, JavascriptMethodEventArgs e)
 {
     webControl.ExecuteJavascript("$('#maximize').toggleClass('fa-expand fa-compress')");
     WindowState = WindowState == System.Windows.WindowState.Maximized ? System.Windows.WindowState.Normal : System.Windows.WindowState.Maximized;
 }
Exemplo n.º 26
0
 private void close(object sender, JavascriptMethodEventArgs e)
 {
     Close();
 }
Exemplo n.º 27
0
 private void NewCharacter(object sender, JavascriptMethodEventArgs e)
 {
     RaiseChangeScreenEvent(new TypeOfEventArgs(typeof(CharacterCreationScreen)));
 }
Exemplo n.º 28
0
 private void JoinServer(object sender, JavascriptMethodEventArgs e)
 {
 }
Exemplo n.º 29
0
 private void edit(object sender, JavascriptMethodEventArgs e)
 {
     this.ScenarioSelected = (string)e.Arguments[0];
     Visible = false;
     new StructuresMenu(this.mStateMgr, this.ScenarioSelected);
 }
Exemplo n.º 30
0
 private JSValue JS_Zoom_SetTargetWidth(object sender, JavascriptMethodEventArgs args)
 {
     if (args.Arguments.Count() > 0) { zoomTargetW = (float)(args.Arguments[0]); } return null;
 }
        // Handler of the external.app.performHeavyWork method.
        private void OnWork(object sender, JavascriptMethodEventArgs e)
        {
            // Must have 2 arguments passed.
            if (e.Arguments.Length != 3)
            {
                return;
            }

            // Must be a function object.
            if (!e.Arguments[0].IsFunctionObject)
            {
                return;
            }

            // Must be a timeout value.
            if (!e.Arguments[1].IsNumber)
            {
                return;
            }

            // Must be the image id.
            if (!e.Arguments[2].IsNumber)
            {
                return;
            }

            // Get the NavigationInterceptor. This will allow us to cancel the operation
            // if the user navigates away.
            INavigationInterceptor navigationInterceptor = webControl.GetService(typeof(INavigationInterceptor)) as INavigationInterceptor;

            // Without this, do not proceed.
            if (navigationInterceptor == null)
            {
                return;
            }

            // You can cache the callback and call it only when your application
            // has performed all work necessary and has a result ready to send.
            // Note that this callback object is valid for as long as the current
            // page is loaded; a navigation will invalidate it. This is why we
            // need the NavigationInterceptor service acquired above.
            JSFunction callbackArg = e.Arguments[0];
            // Get the image id.
            int id = (int)e.Arguments[1];
            // Get the timeout specified.
            int timeout = (int)e.Arguments[2];

            // Make sure it's a function object.
            if (!callbackArg)
            {
                return;
            }

            // See it!
            Debug.Print(callbackArg.ToString());

            // You need to copy the object if you intend to cache it. The original
            // object argument passed to the handler is destroyed by default when
            // the handler returns. A copy will keep it alive. Note that the clone
            // of a JSFunction, will definitely be a JSFunction as well.
            JSFunction callback = (JSFunction)callbackArg.Clone();

            // Create a state object. This holds the callback and controls
            // cancellation. It is passed to both the background operation procedure
            // and the response procedure.
            JavascriptCallbackState state = new JavascriptCallbackState(navigationInterceptor, callback, id, timeout);

            // Perform your heavy work.
            Task.Factory.StartNew(
                /* The function that will perform the work. */
                (Func <Object, String>)PerformWork,
                /* Pass the state object. */
                state,

                /* The CancellationToken that will let us know if we
                 * should cancel passing back the result. */
                state.Token).ContinueWith(
                /* Send the result when complete. */
                SendResponse,

                /* Make sure the result is sent on the
                 * initial thread. */
                TaskScheduler.FromCurrentSynchronizationContext());
        }
Exemplo n.º 32
0
 /// <summary>
 /// Allow popping screens from within screens.
 /// </summary>
 private void JSPopScreen(object sender, JavascriptMethodEventArgs e)
 {
     PopScreen();
 }
Exemplo n.º 33
0
 private object GetArguments(IJSCBridgeCache mapper, JavascriptMethodEventArgs e)
 {
     return((e.Arguments.Length == 0) ? null : Convert(mapper, e.Arguments[0]));
 }
Exemplo n.º 34
0
 private void Execute(JavascriptMethodEventArgs e, IJSCBridgeCache mapper)
 {
     _JSSimpleCommand.Execute(GetArguments(mapper, e));
 }
Exemplo n.º 35
0
 private void onPhoneTelepathButtonClick(object sender, JavascriptMethodEventArgs args) {
     Debug.WriteLine(args.Arguments[0].ToString());
     JSObject msEvent = args.Arguments[0];
 }
Exemplo n.º 36
0
        private JSValue ChatEntered(object arguments, JavascriptMethodEventArgs jsEvent)
        {
            _chatManager.SendChatToServer((string)jsEvent.Arguments[0]);

            return(default(JSValue));
        }
Exemplo n.º 37
0
        internal static async void OnUserScriptHttpRequest(object sender, JavascriptMethodEventArgs e)
        {
            bool aborted = false;

            var webcontrol = sender as WebControl;
            var obj        = ((JSObject)e.Arguments[0]).Clone();

            NamedPipeRequest request = null;
            //HttpWebResponse response = null;

            CancellationTokenSource taskSource = null;
            CancellationToken       token;

            //Create a remote object so we can bind to "abort" function
            JSObject uresponse = webcontrol.ExecuteJavascriptWithResult("new Object();");

            try
            {
                request = new NamedPipeRequest(obj["url"]);

                uresponse["status"]     = (uint)404;
                uresponse["statusText"] = "Page not found";
                uresponse["readyState"] = (ushort)ReadyState.UNSENT;
                uresponse["finalUrl"]   = obj["url"];
                request.RequestUri      = obj["url"].ToString();
                if (obj.HasProperty("context"))
                {
                    uresponse["context"] = obj["context"];
                }


                if (obj.HasMethod("onreadystatechange"))
                {
                    obj.Invoke("onreadystatechange", uresponse);
                }


                request.AllowAutoRedirect = true;
                request.Method            = obj["method"];

                if (obj.HasProperty("timeout"))
                {
                    request.Timeout = (int)obj["timeout"];
                }

                if (obj.HasProperty("headers"))
                {
                    var headers = (JSObject)obj["headers"];

                    if (headers.HasProperty("Accept"))
                    {
                        request.Accept = headers["Accept"];
                    }

                    if (headers.HasProperty("User-Agent"))
                    {
                        request.UserAgent = headers["User-Agent"];
                    }
                }

                taskSource = new CancellationTokenSource(request.Timeout);
                token      = taskSource.Token;

                uresponse.Bind("abort", false, (s, args) =>
                {
                    aborted = true;
                    taskSource.Cancel(true);
                });

                uresponse["readyState"] = (ushort)ReadyState.OPENED;
                uresponse["finalUrl"]   = request.RequestUri;
                await Task.Run(async() =>
                {
                    var content   = new StringBuilder();
                    var memStream = new MemoryStream();


                    try
                    {
                        request.OpenClient();
                        var objlist = await request.Client.ListAsync();// .GetResponseStream();

                        //    ////TODO: Support statuc codes according to the request OK or not
                        //    //await webcontrol.Dispatcher.InvokeAsync(() =>
                        //    //{
                        //    //    uresponse["status"] = response.StatusCode == HttpStatusCode.OK ?
                        //    //    (uint)response.StatusCode :
                        //    //    404;

                        //    //    uresponse["statusText"] = response.StatusCode == HttpStatusCode.OK ?
                        //    //    "OK" :
                        //    //    "Page not found";

                        //    //    uresponse["finalUrl"] = response.ResponseUri.ToString();
                        //    //});

                        //create a copy of the reponse stream so we can get the proper length
                        //"ConnectStream" does not support "Seek" operations
                        DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(angjwcf.Service.Domain.Todo[]));
                        ser.WriteObject(memStream, objlist);

                        memStream.Position = 0;
                        byte[] temp        = new byte[8192];

                        await webcontrol.Dispatcher.InvokeAsync(() =>
                        {
                            uresponse["loaded"]           = (uint)0;
                            uresponse["total"]            = (uint)memStream.Length;
                            uresponse["lengthComputable"] = true;
                        });

                        while (memStream.Position < memStream.Length)
                        {
                            if (token.IsCancellationRequested)
                            {
                                break;
                            }

                            int remaining = (int)(memStream.Length - memStream.Position);
                            int read      = memStream.Read(
                                temp,
                                0,
                                (temp.Length > remaining) ? remaining : temp.Length);

                            content.Append(Encoding.UTF8.GetString(temp, 0, read));

                            await webcontrol.Dispatcher.InvokeAsync(() =>
                            {
                                uresponse["loaded"] = (uint)memStream.Position;

                                if (obj.HasMethod("onprogress"))
                                {
                                    obj.Invoke("onprogress", uresponse);
                                }
                            });
                        }
                    }
                    finally { memStream.Dispose(); }

                    token.ThrowIfCancellationRequested();

                    await webcontrol.Dispatcher.InvokeAsync(() =>
                    {
                        uresponse.RemoveProperty("loaded");
                        uresponse.RemoveProperty("total");
                        uresponse.RemoveProperty("lengthComputable");

                        uresponse["responseText"] = content.ToString(); //System.Text.RegularExpressions.Regex.Replace(content.ToString(), @"\""", @""""); //content.ToString();
                    });

                    token.ThrowIfCancellationRequested();

                    await webcontrol.Dispatcher.InvokeAsync(() =>
                    {
                        uresponse["readyState"] = (ushort)ReadyState.DONE;

                        if (obj.HasMethod("onreadystatechange"))
                        {
                            obj.Invoke("onreadystatechange", uresponse);
                        }
                    });

                    token.ThrowIfCancellationRequested();

                    await webcontrol.Dispatcher.InvokeAsync(() =>
                    {
                        if (obj.HasMethod("onload"))
                        {
                            obj.Invoke("onload", uresponse);
                        }
                    });
                }, token);
            }
            catch (OperationCanceledException)
            {
                if (aborted && obj.HasMethod("onabort"))
                {
                    obj.Invoke("onabort", uresponse);
                }

                else if (!aborted && obj.HasMethod("ontimeout"))
                {
                    obj.Invoke("ontimeout", uresponse);
                }
            }
            catch (Exception ext)
            {
                //throw;
                //if (response != null)
                //{

                uresponse["status"]       = (uint)404;
                uresponse["statusText"]   = "Page not found";
                uresponse["responseText"] = ext.ToString();

                if (obj.HasMethod("onerror"))
                {
                    obj.Invoke("onerror", uresponse);
                }
                //}
            }
            finally
            {
                //if (response != null)
                //    response.Dispose();

                if (taskSource != null)
                {
                    taskSource.Dispose();
                }

                uresponse.Dispose();
                obj.Dispose();
            }
        }
Exemplo n.º 38
0
 /// <summary>Hosts a new game, launching a local server and connecting to it.</summary>
 /// <param name="sender">The sender.</param>
 /// <param name="args">The args.</param>
 private void StartLocalGame(object sender, JavascriptMethodEventArgs args)
 {
     _game.RestartServer(true);
     _game.RestartClient(true);
 }
Exemplo n.º 39
0
 /// <summary>Searches for games in the local network.</summary>
 /// <param name="sender">The sender.</param>
 /// <param name="args">The args.</param>
 private void SearchGames(object sender, JavascriptMethodEventArgs args)
 {
     _game.Client.Controller.Session.Search();
 }
Exemplo n.º 40
0
 public void OnChatTextEntered(object sender, JavascriptMethodEventArgs e)
 {
     Console.WriteLine("Player selected item:" + e.Arguments[0].ToString());
     AddToChat(e.Arguments[0].ToString());
 }
Exemplo n.º 41
0
        private void IncrementRoom(object sender, JavascriptMethodEventArgs e)
        {
            var roomValue = Math.Min(Math.Ceiling((decimal)(_model.SessionsAvailable.Count / 8)), _model.RoomPage + 1);

            _controller.ChangeRoom((int)roomValue);
        }
Exemplo n.º 42
0
 private void CloseWindow(object sender, JavascriptMethodEventArgs e)
 {
     Logger.Log("js CloseWindow");
     HideWindow();
 }
Exemplo n.º 43
0
 private void ok(object sender, JavascriptMethodEventArgs e)
 {
     Visible = false;
     new PlayMenu(this.mStateMgr, (string)e.Arguments[0]);
 }
Exemplo n.º 44
0
        private void JS_LogIn(object sender, JavascriptMethodEventArgs args)
        {
            string email = args.Arguments[0];
            string pass = args.Arguments[1];
            JSObject callback = args.Arguments[2];
            JSObject callbackCopy = callback.Clone();

            string username = string.Empty;

            //TaskScheduler.FromCurrentSynchronizationContext();
            Task.Factory.StartNew(() =>
            {
                Thread.Sleep(5000);
                //callbackCopy.InvokeAsync("call", callbackCopy, true);
                username = "******";
            }).ContinueWith(
                (t) => callbackCopy.InvokeAsync("call", callbackCopy, true, username),
                TaskScheduler.FromCurrentSynchronizationContext());
        }
Exemplo n.º 45
0
 private void GetModelJSON(object sender, JavascriptMethodEventArgs e)
 {
     e.Result = JsonConvert.SerializeObject(ViewModel);
 }
Exemplo n.º 46
0
        private JSValue JS_Navigate(object sender, JavascriptMethodEventArgs args)
        {
            if (args.Arguments.Length > 0)
            {
                if (PageStack.Count == 0 || PageStack.Peek() != webControl1.Source)
                    PageStack.Push(webControl1.Source);

                string page = args.Arguments[0];
                webControl1.Source = new Uri(@"asset://bzlauncher/" + page);
            }
            return null;
        }
Exemplo n.º 47
0
        private void LoadCharacter(object sender, JavascriptMethodEventArgs e)
        {
            int index = (int)e.Arguments[0];
            ViewModel.ActiveCharacterIndex = index;

            AsyncJavascriptCallback("LoadCharacterInformation_Callback");
        }
Exemplo n.º 48
0
 private JSValue JS_NavigateBack(object sender, JavascriptMethodEventArgs args)
 {
     NavigateBack();
     return null;
 }
Exemplo n.º 49
0
 private void RequestServerInformation(object sender, JavascriptMethodEventArgs e)
 {
     if (!Object.ReferenceEquals(WinterEngineService.NetworkClient, null))
     {
         WinterEngineService.NetworkClient.SendRequest(PacketRequestTypeEnum.CharacterSelection, NetDeliveryMethod.ReliableOrdered);
     }
 }
Exemplo n.º 50
0
 private JSValue JS_Quit(object sender, JavascriptMethodEventArgs args)
 {
     // Attempt to close the program
     //AttemptToExit();
     this.Close();
     return null;
 }
Exemplo n.º 51
0
        private void DeleteCharacter(object sender, JavascriptMethodEventArgs e)
        {
            if (ViewModel.ActiveCharacter != null)
            {
                string fileName = ViewModel.ActiveCharacter.FileName;
                DeleteCharacterPacket packet = new DeleteCharacterPacket(fileName, DeleteCharacterTypeEnum.Request);

                if (!Object.ReferenceEquals(WinterEngineService.NetworkClient, null))
                {
                    WinterEngineService.NetworkClient.SendPacket(packet, NetDeliveryMethod.ReliableUnordered);
                }
            }
        }
Exemplo n.º 52
0
 private JSValue JS_SaveModSort(object sender, JavascriptMethodEventArgs args)
 {
     if (args.Arguments.Length == 0) return false;
     JSValue param1 = args.Arguments[0];
     if (!param1.IsArray) return false;
     JSValue[] arr = (JSValue[])param1;
     string[] sortArray = arr.Where(dr => dr.IsString).Select(dr => (string)dr).ToArray();
     if (sortArray.Length == 0) return false;
     SaveModSort(sortArray);
     return true;
 }
Exemplo n.º 53
0
 private void minimize(object sender, JavascriptMethodEventArgs e)
 {
     WindowState = System.Windows.WindowState.Minimized;
 }
Exemplo n.º 54
0
 private JSValue JS_SelectFile(object sender, JavascriptMethodEventArgs args)
 {
     if (openFileDialog1.ShowDialog() == DialogResult.OK)
     {
         JSObject obj = new JSObject();
         obj["fullpath"] = openFileDialog1.FileName;
         obj["filename"] = Path.GetFileName(openFileDialog1.FileName);
         return new JSValue(obj);
     }
     return null;
 }
Exemplo n.º 55
0
 /// <summary>Leaves the game we are currently in, if any.</summary>
 /// <param name="sender">The sender.</param>
 /// <param name="args">The args.</param>
 private void LeaveGame(object sender, JavascriptMethodEventArgs args)
 {
     _game.DisposeControllers();
 }
Exemplo n.º 56
0
 private JSValue JS_ToggleFullscreen(object sender, JavascriptMethodEventArgs args)
 {
     ToggleFullscreen();
     return null;
 }
Exemplo n.º 57
0
 private JSValue openRegister(object sender, JavascriptMethodEventArgs e)
 {
     MessageBox.Show("Register");
     return(JSValue.Undefined);
 }
Exemplo n.º 58
0
 private JSValue JS_Zoom_SetModeHeight(object sender, JavascriptMethodEventArgs args)
 {
     zoomMode = ZoomMode.Height; return null;
 }
Exemplo n.º 59
0
 private JSValue JS_Zoom_SetModeWidth(object sender, JavascriptMethodEventArgs args)
 {
     zoomMode = ZoomMode.Width; return null;
 }
Exemplo n.º 60
0
        private void DeIncrementRoom(object sender, JavascriptMethodEventArgs e)
        {
            var roomValue = Math.Max(0, _model.RoomPage - 1);

            _controller.ChangeRoom(roomValue);
        }