コード例 #1
0
ファイル: ProgressMsgs`T.cs プロジェクト: jonhzy163/WLib
        /// <summary>
        /// 设置当前进度信息
        /// </summary>
        /// <param name="curMessage">当前进度信息</param>
        /// <returns></returns>
        public new void Info(string curMessage)
        {
            curMessage = AppendTime ? $"{DateTime.Now:yyyy/MM/dd,HH:mm:ss}\t{curMessage}" : curMessage;
            _groupMessageDict[DefaultGroup].Add(curMessage);

            MessageChanged?.Invoke(this, new ProMsgChangedEventArgs <TGroup>(DefaultGroup, curMessage));
        }
コード例 #2
0
        private void PanaromaWebSocketServer_OnMessageChanged(WebSocketEventArgs e)
        {
            MessageChanged onMessageChanged = OnMessageChanged;

            if (onMessageChanged == null)
            {
                return;
            }
            onMessageChanged(e);
        }
コード例 #3
0
        private void BrowserOnConsoleMessage(object sender, ConsoleMessageEventArgs e)
        {
            if (isIgnoredMarket)
            {
                Debug.WriteLine("[IGNORED][SkyBet]Console: " + e.Message);
                return;
            }
            Debug.WriteLine("[SkyBet]Console: " + e.Message);
            if (e.Message.Contains("FINISHED"))
            {
                State = ThreadState.Stopped;
            }
            if (e.Message[0] == '1')
            {
                var tmp    = e.Message.Split('|');
                var main   = tmp[1];
                var scores = JsonConvert.DeserializeObject <List <Scores> >(main);

                var score1  = scores[1].score;
                var score2  = scores[2].score;
                var eventId = scores[0].eventId;
                if ((!string.IsNullOrWhiteSpace(prevScoreOne)) && (!string.IsNullOrWhiteSpace(prevScoreTwo)))
                {
                    if (!((score1 == "0") && (score2 == "0")))
                    {
                        if (((score1 == "0") && (score1 != prevScoreOne)) || ((score2 == "0") && (score2 != prevScoreTwo)))
                        {
                            return;
                        }
                    }
                }
                foreach (var currentMarket in allMarkets.ParsingInfo.AllMarketsHashSet)
                {
                    if ((!string.IsNullOrWhiteSpace(currentMarket.SkyBetEventId)) && (currentMarket.SkyBetEventId.Equals(eventId)))
                    {
                        prevScoreOne = score1;
                        prevScoreTwo = score2;
                        currentMarket.Player1.ScoreSkyBet = score1;
                        currentMarket.Player2.ScoreSkyBet = score2;
                        PlayerChanged?.Invoke(new ScoreUpdEventArgs(currentMarket));
                        break;
                    }
                }
            }
            if (e.Message[0] == '2')
            {
                var str  = e.Message.Split('|');
                var elem = str[1];
                MessageChanged?.Invoke(new MessagesEventArgs(elem, TypeDBO.SkyBet));
            }
        }
コード例 #4
0
ファイル: ProgressMsgs`T.cs プロジェクト: jonhzy163/WLib
        /// <summary>
        /// 设置当前进度信息
        /// </summary>
        /// <param name="curMessage">当前进度信息</param>
        /// <param name="curGroup">当前进度信息所属的分组</param>
        /// <returns></returns>
        public void Info(string curMessage, TGroup curGroup)
        {
            curMessage = AppendTime ? $"{DateTime.Now:yyyy/MM/dd,HH:mm:ss}\t{curMessage}" : curMessage;
            if (_groupMessageDict.ContainsKey(curGroup))
            {
                _groupMessageDict[curGroup].Add(curMessage);
            }
            else
            {
                _groupMessageDict.Add(curGroup, new List <string>(new[] { curMessage }));
            }

            MessageChanged?.Invoke(this, new ProMsgChangedEventArgs <TGroup>(curGroup, curMessage));
        }
コード例 #5
0
        public void ReportStatus(InstallationStatus installationStatus)
        {
            switch (installationStatus)
            {
            case InstallationStatus.ExtractFile:
                MessageChanged?.Invoke(this, "Extract file");
                break;

            case InstallationStatus.WriteConfig:
                MessageChanged?.Invoke(this, "Write config");
                break;

            case InstallationStatus.CopyFiles:
                MessageChanged?.Invoke(this, "Copy files");
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(installationStatus), installationStatus, null);
            }
        }
コード例 #6
0
        private bool IsPathValid()
        {
            if (String.IsNullOrWhiteSpace(PathToFile))
            {
                MessageChanged?.Invoke("Enter a path to a texture file or .zip file.");
                return(false);
            }

            if (File.Exists(PathToFile) == false)
            {
                MessageChanged?.Invoke("File does not exist");
                return(false);
            }

            if (PathToFile.EndsWith(".zip") == false && PathToFile.EndsWith(".uasset") == false)
            {
                MessageChanged?.Invoke("The selected file is invalid. You must choose a .zip or .uasset file.");
                return(false);
            }

            return(true);
        }
コード例 #7
0
        public override bool NotifyMouseClick(MouseEventArgs args)
        {
            if (_toolStep == ToolStep.SetOrigin)
            {
                _origin   = Owner.Value.ConstrainToBounds(Owner.GetMapLocationFromClient(args.Location));
                _toolStep = ToolStep.SetDestination;
                MessageChanged?.Invoke("Please click anywhere in the map to select the destination of the path.");
                return(true);
            }

            if (_toolStep == ToolStep.SetDestination)
            {
                var destination = Owner.Value.ConstrainToBounds(Owner.GetMapLocationFromClient(args.Location));

                if (destination == _origin)
                {
                    MessageChanged?.Invoke("Path destination cannot be the same as the origin.");
                    return(false);
                }

                _destination  = destination;
                _toolStep     = ToolStep.Pathfind;
                _computedPath = _pathfinder.Compute(_origin, _destination);


                if (_computedPath.IsSuccess)
                {
                    MessageChanged?.Invoke("Path computed successfully.");
                }
                else
                {
                    MessageChanged?.Invoke("Failed to compute path.");
                }

                return(true);
            }

            return(false);
        }
コード例 #8
0
 private void OnMessageChanged(MessageChanged messageChanged)
 {
     MessageChanged?.Invoke(this, new DataEventArgs <MessageChanged>(messageChanged));
 }
コード例 #9
0
 /// <summary>
 /// 设置当前进度信息
 /// </summary>
 /// <param name="curMessage">当前进度信息</param>
 /// <returns></returns>
 public void Info(string curMessage)
 {
     curMessage = AppendTime ? $"{DateTime.Now:yyyy/MM/dd,HH:mm:ss}\t{curMessage}" : curMessage;
     _messageList.Add(curMessage);
     MessageChanged?.Invoke(this, new ProMsgChangedEventArgs(curMessage));
 }
コード例 #10
0
 /// <summary>
 /// Invokes the <see cref="MessageChanged"/> event.
 /// </summary>
 /// <param name="message">The message to be displayed. Null removes the message.</param>
 public void SetMessage(string message)
 {
     // Invoke the message changed event and provide the new message
     MessageChanged.Invoke(message, EventArgs.Empty);
 }
コード例 #11
0
 /// <summary>
 /// 设置当前进度信息
 /// </summary>
 /// <param name="curMessage">当前进度信息</param>
 /// <param name="appendTime">是否在进度信息中追加当前时间,该条进度信息将忽略<see cref="AppendTime"/>属性的影响</param>
 public virtual void Info(string curMessage, bool appendTime)
 {
     curMessage = appendTime ? $"{DateTime.Now.ToString(TimeFormat)}\t{curMessage}" : curMessage;
     _messageList.Add(curMessage);
     MessageChanged?.Invoke(this, new ProMsgChangedEventArgs(curMessage));
 }
コード例 #12
0
 protected void OnMessageChanged()
 {
     MessageChanged?.Invoke(this, EventArgs.Empty);
 }
コード例 #13
0
        private void BrowserOnConsoleMessage(object sender, ConsoleMessageEventArgs consoleMessageEventArgs)
        {
            if (isIgnoredMarket)
            {
                Console.WriteLine("[IGNORED][Bet365]Console: " + consoleMessageEventArgs.Message);
                return;
            }
            Console.WriteLine("[Bet365]Console: " + consoleMessageEventArgs.Message);
            if (consoleMessageEventArgs.Message.Contains("Mixed Content"))
            {
                isLoad = true;
                browser.LoadingStateChanged += BrowserOnLoadingStateChanged;
                browser.EvaluateScriptAsync("clickToTennis()");
                BrowserOnLoadingStateChanged(sender, new LoadingStateChangedEventArgs(null, false, false, false));
            }
            if (consoleMessageEventArgs.Message[0] == '1')
            {
                var tmp     = consoleMessageEventArgs.Message.Split('|');
                var elem    = tmp[1];
                var scores  = JsonConvert.DeserializeObject <List <Scores> >(elem);
                var player1 = scores[0];
                var player2 = scores[1];
                var eventId = player1.name + "|" + player2.name;
                if ((!string.IsNullOrWhiteSpace(prevScoreOne)) && (!string.IsNullOrWhiteSpace(prevScoreTwo)))
                {
                    var score1 = player1.score;
                    var score2 = player2.score;
                    if (!((score1 == "0") && (score2 == "0")))
                    {
                        if (((score1 == "0") && (score1 != prevScoreOne)) || ((score2 == "0") && (score2 != prevScoreTwo)))
                        {
                            return;
                        }
                    }
                }
                foreach (var currentMarket in allMarkets.ParsingInfo.AllMarketsHashSet)
                {
                    if (!(string.IsNullOrEmpty(currentMarket.Bet365EventId)) && (currentMarket.Bet365EventId.Equals(eventId)))
                    {
                        prevScoreOne = player1.score;
                        prevScoreTwo = player2.score;
                        currentMarket.Player1.ScoreBet366 = player1.score;
                        currentMarket.Player2.ScoreBet366 = player2.score;
                        PlayerChanged?.Invoke(new ScoreUpdEventArgs(currentMarket));
                        break;
                    }
                }
            }

            if (consoleMessageEventArgs.Message[0] == '2')
            {
                var elem = consoleMessageEventArgs.Message.Split('/');
                var tmp  = elem[1].Split('|');
                if (tmp.Length == 2)
                {
                    var player1Message = tmp[0];
                    var player2Message = tmp[1];
                    MessageChanged?.Invoke(new MessagesEventArgs(TypeDBO.Bet365, player1Message, player2Message));
                }
            }
        }
コード例 #14
0
 protected override void OnToolActivated()
 {
     _toolStep     = ToolStep.SetOrigin;
     _computedPath = null;
     MessageChanged?.Invoke("Please click anywhere in the map to select the origin of the path.");
 }
コード例 #15
0
 /// <summary>
 /// 执行<see cref="MessageChanged"/>事件处理
 /// </summary>
 /// <param name="curMessage"></param>
 /// <param name="curGroup"></param>
 protected virtual void OnMessageChanged(string curMessage, TGroup curGroup)
 => MessageChanged?.Invoke(this, new ProMsgChangedEventArgs <TGroup>(curGroup, curMessage));
コード例 #16
0
        internal void ReplaceTextures()
        {
            if (IsPathValid() == false)
            {
                return;
            }

            FileInfo textureFileInfo = null;

            if (IsPathToZip)
            {
                Directory.CreateDirectory(PathToTempFolder);

                // extract to temp location
                BoolWithMessage didExtract = FileUtils.ExtractZipFile(PathToFile, PathToTempFolder);
                if (didExtract.Result == false)
                {
                    MessageChanged?.Invoke($"Failed to extract .zip file: {didExtract.Message}");
                    return;
                }

                string foundTextureName = FindTextureFileInUnzippedTempFolder();

                if (foundTextureName == "")
                {
                    MessageChanged?.Invoke($"Failed to find a .uasset file inside the .zip");
                    return;
                }

                textureFileInfo = new FileInfo(foundTextureName);
            }
            else
            {
                textureFileInfo = new FileInfo(PathToFile);
            }

            // find which folder to copy to based on file name
            string targetFolder = GetFolderPathToTexture(textureFileInfo.NameWithoutExtension());

            if (targetFolder == "")
            {
                MessageChanged?.Invoke($"Failed to find path to original texture: {textureFileInfo.Name}");
                return;
            }

            try
            {
                // find and copy files that match the .uasset name
                string textureDirectory = Path.GetDirectoryName(textureFileInfo.FullName);

                foreach (string file in Directory.GetFiles(textureDirectory))
                {
                    if (file.Contains(textureFileInfo.NameWithoutExtension()))
                    {
                        FileInfo foundFile  = new FileInfo(file);
                        string   targetPath = Path.Combine(targetFolder, foundFile.Name);
                        File.Copy(file, targetPath, overwrite: true);
                    }
                }

                // delete temp folder with unzipped files
                if (IsPathToZip)
                {
                    if (Directory.Exists(PathToTempFolder))
                    {
                        Directory.Delete(PathToTempFolder, true);
                    }
                }
            }
            catch (Exception e)
            {
                MessageChanged?.Invoke($"Failed to copy texture files: {e.Message}");
                return;
            }

            MessageChanged?.Invoke($"Successfully replaced textures for {textureFileInfo.Name}!");
        }
コード例 #17
0
 /// <summary>
 /// Triggered when the message has changed.
 /// </summary>
 protected virtual void OnMessageChanged(string message)
 {
     MessageChanged?.Invoke(this, message);
 }
コード例 #18
0
 private void InvokeMessageChanged()
 => MessageChanged?.Invoke(this, EventArgs.Empty);
コード例 #19
0
 public void SetMessage(string message)
 {
     MessageChanged?.Invoke(this, message);
 }
コード例 #20
0
 /// <summary>
 /// 执行<see cref="MessageChanged"/>事件处理
 /// </summary>
 /// <param name="curMessage"></param>
 protected virtual void OnMessageChanged(string curMessage) => MessageChanged?.Invoke(this, new ProMsgChangedEventArgs(curMessage));