コード例 #1
0
        public string Download(string host, string fileName, string userName, string password, MessageQueue message, string playerName)
        {
            try
            {
                FileInfo  fi      = new FileInfo(fileName);
                WebClient request = new WebClient();

                if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(password))
                {
                    request.Credentials = new NetworkCredential(userName, password);
                }

                byte[] fileData = request.DownloadData(@"ftp://" + host + "/" + fi.Name);

                string dropFileName = WOTHelper.GetTempFolder() + @"\" + fi.Name;
                //will dot this at a later stage
                //File.WriteAllBytes(dropFileName, WOTStatistics.Core.GZIP.Decompress(fileData));
                File.WriteAllBytes(dropFileName, fileData);

                message.Add("Info : Retrieved file from FTP. [" + playerName + "]");
                return(dropFileName);
            }
            catch (Exception ex)
            {
                message.Add("Error : " + ex.Message);
                return(fileName);
            }
        }
コード例 #2
0
        public void UploadToVBAddict(string filePath, string playerID, MessageQueue message)
        {
            try
            {
                FileInfo toUpload = new FileInfo(filePath);
                byte[]   data     = File.ReadAllBytes(filePath);

                HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.vbaddict.net/xxx.php");
                request.Proxy.Credentials = CredentialCache.DefaultCredentials;
                request.Method            = "PUT";
                request.ContentType       = "application/x-www-form-urlencoded";
                request.ContentLength     = data.Length;
                request.Headers.Clear();
                request.Referer   = toUpload.Name;
                request.UserAgent = "WOTStatistics 2.1.0.0";
                request.ServicePoint.Expect100Continue = false;

                using (Stream stream = request.GetRequestStream())
                {
                    stream.Write(data, 0, data.Length);
                }

                var          response  = request.GetResponse();
                Stream       outStream = response.GetResponseStream();
                StreamReader reader    = new StreamReader(outStream);
                // Read the content.
                string responseFromServer = reader.ReadToEnd();

                if (responseFromServer.Contains("SUCCESS"))
                {
                    using (PlayerListing pl = new PlayerListing(new MessageQueue()))
                    {
                        if (pl.GetPlayer(playerID).OnlineURL == "#")
                        {
                            pl.SetPlayerOnlineURL(playerID, responseFromServer.Substring(responseFromServer.IndexOf("Link: ") + 6).Replace("SUCCESS", ""));
                            try
                            {
                                pl.Save();
                            }
                            catch
                            {
                            }
                        }
                    }
                }


                response.Close();
            }
            catch (Exception ex)
            {
                message.Add(ex.Message);
            }
        }
コード例 #3
0
        public void SetPlayer(string id, string playerID, string playerRealm, string watchFile, bool monitor)
        {
            Player player;

            if (!_players.TryGetValue(id.Replace("_", "*"), out player))
            {
                player = new Player()
                {
                    PlayerID = playerID, PlayerRealm = playerRealm, WatchFile = watchFile, Monitor = (monitor == true ? "Yes" : "No"), PreviousFile = "1", CurrentFile = "0"
                };
                _players.Add(id, player);
                _message.Add("Added Player : " + playerID);
            }
            else
            {
                player.PlayerID  = playerID;
                player.WatchFile = watchFile;
                player.Monitor   = (monitor == true ? "Yes" : "No");
            }
        }
コード例 #4
0
        public void Remove(string name)
        {
            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(WOTHelper.GetUserFile());
            XmlElement  root            = xmlDoc.DocumentElement;
            XmlNodeList oldCustomGroups = root.SelectNodes(string.Format(@"CustomGroups/CustomGroup[@Name=""{0}""]", name.Replace(" ", "_")));

            try
            {
                foreach (XmlNode item in oldCustomGroups)
                {
                    item.ParentNode.RemoveChild(item);
                }
            }
            catch
            {
                _message.Add("Info : cant find item in settings.");
            }

            xmlDoc.Save(WOTHelper.GetUserFile());
        }
コード例 #5
0
 public void Start()
 {
     _fileMonitor.EnableRaisingEvents = true;
     _messages.Add(string.Format("Info : Monitor Started ({0})", _playerName));
 }
コード例 #6
0
        public void Save()
        {
            try
            {
                Dictionary <string, string> lastbattle = new Dictionary <string, string>();
                WN8ExpValues WN8ExpectedTankList       = new WN8ExpValues();
                foreach (RecentBattle item in this.Values.Where(dbEntry => dbEntry.DBEntry == false))
                {
                    lastbattle.Clear();
                    lastbattle.Add("rbCountryID", item.CountryID.ToString());
                    lastbattle.Add("rbTankID", item.TankID.ToString());
                    lastbattle.Add("rbOriginalBattleCount", (Math.Round(item.OriginalBattleCount, 2) * 100).ToString());
                    lastbattle.Add("rbBattles", (Math.Round(item.Battles, 2) * 100).ToString());
                    lastbattle.Add("rbKills", (Math.Round(item.Kills, 2) * 100).ToString());
                    lastbattle.Add("rbDamageReceived", (Math.Round(item.DamageReceived, 2) * 100).ToString());
                    lastbattle.Add("rbDamageDealt", (Math.Round(item.DamageDealt, 2) * 100).ToString());
                    lastbattle.Add("rbDamageAssistedRadio", (Math.Round(item.DamageAssistedRadio, 2) * 100).ToString());
                    lastbattle.Add("rbDamageAssistedTracks", (Math.Round(item.DamageAssistedTracks, 2) * 100).ToString());
                    lastbattle.Add("rbXPReceived", (Math.Round(item.XPReceived, 2) * 100).ToString());
                    lastbattle.Add("rbSpotted", (Math.Round(item.Spotted, 2) * 100).ToString());
                    lastbattle.Add("rbCapturePoints", (Math.Round(item.CapturePoints, 2) * 100).ToString());
                    lastbattle.Add("rbDefencePoints", (Math.Round(item.DefencePoints, 2) * 100).ToString());
                    lastbattle.Add("rbSurvived", item.Survived.ToString());
                    lastbattle.Add("rbVictory", item.Victory.ToString());
                    lastbattle.Add("rbBattleTime", item.BattleTime.ToString());
                    lastbattle.Add("rbBattleTimeFriendly", new DateTime(item.BattleTime_Friendly.Year, item.BattleTime_Friendly.Month, item.BattleTime_Friendly.Day, item.BattleTime_Friendly.Hour, item.BattleTime_Friendly.Minute, item.BattleTime_Friendly.Second, item.BattleTime_Friendly.Millisecond).ToString("yyyy-MM-dd HH:mm:ss"));

                    lastbattle.Add("rbShot", (Math.Round(item.Shot, 2) * 100).ToString());
                    lastbattle.Add("rbHits", (Math.Round(item.Hits, 2) * 100).ToString());

                    lastbattle.Add("rbTier", item.Tier.ToString());
                    lastbattle.Add("rbBattlesPerTier", item.BattlesPerTier.ToString());

                    lastbattle.Add("rbVictoryCount", item.VictoryCount.ToString());
                    lastbattle.Add("rbDefeatCount", item.DefeatCount.ToString());
                    lastbattle.Add("rbDrawCount", item.DrawCount.ToString());
                    lastbattle.Add("rbSurviveYesCount", item.SurviveYesCount.ToString());
                    lastbattle.Add("rbSurviveNoCount", item.SurviveNoCount.ToString());

                    lastbattle.Add("rbFragList", item.FragList);

                    lastbattle.Add("rbGlobalAvgTier", (Math.Round(item.GlobalAvgTier, 2) * 100).ToString());
                    lastbattle.Add("rbGlobalWinPercentage", (Math.Round(item.GlobalWinPercentage, 2) * 100).ToString());
                    lastbattle.Add("rbGlobalAvgDefPoints", (Math.Round(item.GlobalAvgDefencePoints, 2) * 100).ToString());
                    lastbattle.Add("rbBattleMode", item.BattleMode.ToString());

                    RatingStructure ratingStruct = new RatingStructure();
                    ratingStruct.WN8ExpectedTankList = WN8ExpectedTankList;
                    ratingStruct.countryID           = item.CountryID;
                    ratingStruct.tankID     = item.TankID;
                    ratingStruct.tier       = item.Tier;
                    ratingStruct.globalTier = item.GlobalAvgTier;

                    ratingStruct.singleTank = true;

                    ratingStruct.battlesCount    = Convert.ToInt32(item.Battles);
                    ratingStruct.battlesCount8_8 = Convert.ToInt32(item.Battles88);
                    ratingStruct.capturePoints   = item.CapturePoints;
                    ratingStruct.defencePoints   = item.DefencePoints;

                    ratingStruct.damageAssistedRadio  = item.DamageAssistedRadio;
                    ratingStruct.damageAssistedTracks = item.DamageAssistedTracks;
                    ratingStruct.damageDealt          = item.DamageDealt;
                    ratingStruct.frags   = item.Kills;
                    ratingStruct.spotted = item.Spotted;

                    ratingStruct.wins     = item.VictoryCount;
                    ratingStruct.gWinRate = item.GlobalWinPercentage;



                    lastbattle.Add("rbRatingEff", WOTStatistics.Core.WOTHelper.FormatNumberToString(WOTStatistics.Core.Ratings.GetRatingEff(ratingStruct).Value, 2));
                    lastbattle.Add("rbRatingBR", WOTStatistics.Core.WOTHelper.FormatNumberToString(WOTStatistics.Core.Ratings.GetRatingBR(ratingStruct).Value, 2));
                    lastbattle.Add("rbRatingWN7", WOTStatistics.Core.WOTHelper.FormatNumberToString(WOTStatistics.Core.Ratings.GetRatingWN7(ratingStruct).Value, 2));
                    lastbattle.Add("rbRatingWN8", WOTStatistics.Core.WOTHelper.FormatNumberToString(WOTStatistics.Core.Ratings.GetRatingWN8(ratingStruct).Value, 2));



                    lastbattle.Add("rbSessionID", AutoSessions());

                    using (IDBHelpers sqlLDB = new DBHelpers(Path.Combine(WOTHelper.GetApplicationData(), "Hist_" + _playerName, "LastBattle", "WOTSStore.db")))
                    {
                        sqlLDB.Insert("RecentBattles", lastbattle);
                    }
                }
            }
            catch (Exception ex)
            {
                _message.Add(ex.Message);
            }
        }
コード例 #7
0
        public void LoadDossierFiles()
        {
            System.Diagnostics.Stopwatch digSW = new Stopwatch();
            digSW.Start();
            _HistoryFiles.Clear();

            string sql = @"select fiID from Files";

            string battleMode = UserSettings.BattleMode;

            if (battleMode != "All")
            {
                sql += " inner join File_TankDetails on fiID = cmFileID inner join File_Battles on cmID = bpParentID ";
            }

            sql += " where fiID <= " + Int32.Parse(DateTime.Now.AddHours(UserSettings.TimeAdjustment).ToString("yyyyMMdd"));

            if (battleMode == "15")
            {
                sql += " and ifnull(bpBattleMode,0) in (15, 0) group by fiID";
            }
            else if (battleMode == "7")
            {
                sql += " and ifnull(bpBattleMode,0) = 7 group by fiID";
            }

            sql += " order by fiID";
            Dictionary <int, int> tempDic = new Dictionary <int, int>();

            using (IDBHelpers db = new DBHelpers(WOTHelper.GetDBPath(_playerName)))
            {
                DataTable dt = db.GetDataTable(sql);
                foreach (DataRow file in dt.Rows)
                {
                    tempDic.Add(Convert.ToInt32(file["fiID"]), Convert.ToInt32(file["fiID"]));
                }
                _HistoryFiles.Add(GetPlayerID, tempDic);
            }
            //DirectoryInfo AppPath = new DirectoryInfo(WOTHelper.GetApplicationData());

            //DirectoryInfo[] subDirs = AppPath.GetDirectories(_HistoryIndicator + "*");
            //int currentFile = Int32.Parse(DateTime.Now.AddHours(UserSettings.TimeAdjustment).ToString("yyyyMMdd"));
            //foreach (DirectoryInfo dir in subDirs)
            //{
            //    if (dir.Name.Replace(_HistoryIndicator, "") == _playerName)
            //    {
            //        FileSystemInfo[] files = dir.GetFileSystemInfos();
            //        Dictionary<int, string> tempDic = new Dictionary<int, string>();
            //        foreach (FileSystemInfo file in files.OrderBy(f => f.Name).Where(w => w.Extension == ".txt"))
            //        {
            //            if (Int32.Parse(file.Name.Replace(file.Extension, "")) <= currentFile)
            //                tempDic.Add(Int32.Parse(file.Name.Replace(file.Extension, "")), file.FullName);
            //        }

            //    }
            //}

            //AppPath = null;
            //subDirs = null;

            digSW.Stop();
            _messages.Add("Diagnostics : Dossier Loading Finished in " + digSW.ElapsedMilliseconds + " miliseconds");
        }