public List <string> GetFoldersOverFTP(FTPDetails details, string folder) { try { Uri mapsUri = new Uri($"{details.address}/{folder}"); ftpWebRequest = (FtpWebRequest)WebRequest.Create(mapsUri); ftpWebRequest.Credentials = new NetworkCredential(details.username, details.password); ftpWebRequest.Method = WebRequestMethods.Ftp.ListDirectory; ftpWebRequest.UsePassive = details.passiveMode; FtpWebResponse response = (FtpWebResponse)ftpWebRequest.GetResponse(); StreamReader streamReader = new StreamReader(response.GetResponseStream()); List <string> dirs = new List <string>(); string line = streamReader.ReadLine(); while (!string.IsNullOrEmpty(line)) { Console.WriteLine(line); dirs.Add(line.Split('/')[1]); line = streamReader.ReadLine(); } streamReader.Close(); return(dirs); } catch (WebException e) { MessageBox.Show(e.Message); return(new List <string>()); } }
private void BindData() { var ftp1 = new FTPDetails { Type = "FTP", IP = "1.1.1.1", Port = "21" }; var ftp2 = new FTPDetails { Type = "SFTP", IP = "2.2.2.2", Port = "22" }; detailsView.DataSource = new List <FTPDetails> { ftp1, ftp2 }; detailsView.DataBind(); }
public FTPDetails GetFirmwareFtpDetails() { FTPDetails result = null; try { using (var conn = OpenConnection()) { result = conn.Query <FTPDetails>("stp_FirmwareFtpDetails_Get", new { }, commandType: CommandType.StoredProcedure).FirstOrDefault(); } } catch (Exception ex) { throw ex; } return(result); }
private void SaveSettings() { var dirtyFields = from x in _propertyFields where x.Value.IsDirty == true && !x.Key.Contains("FTP_") select x; foreach (var item in dirtyFields) { switch (item.Key) { case "StartMonOnStartUp": UserSettings.StartMonOnStartUp = Convert.ToBoolean(item.Value.NewValue); break; case "LaunchWithWindows": UserSettings.LaunchWithWindows = Convert.ToBoolean(item.Value.NewValue); break; case "MinimiseonStartup": UserSettings.MinimiseonStartup = Convert.ToBoolean(item.Value.NewValue); break; case "MinimiseToTray": UserSettings.MinimiseToTray = Convert.ToBoolean(item.Value.NewValue); break; case "LastPlayedCompare": UserSettings.LastPlayedCompare = Convert.ToInt32(item.Value.NewValue); break; case "AllowVersionCheck": UserSettings.AllowVersionCheck = Convert.ToBoolean(item.Value.NewValue); break; case "VersionCounter": UserSettings.VersionCounter = Convert.ToInt32(item.Value.NewValue); break; case "SystemFont": UserSettings.SystemFont = Convert.ToString(item.Value.NewValue); break; case "HTMLCellFont": UserSettings.HTMLCellFont = Convert.ToString(item.Value.NewValue); break; case "HTMLHeaderFont": UserSettings.HTMLHeaderFont = Convert.ToString(item.Value.NewValue); break; case "HTMLTankInfoHeader": UserSettings.HTMLTankInfoHeader = Convert.ToString(item.Value.NewValue); break; case "HTMLShowMovementPics": UserSettings.HTMLShowMovementPics = Convert.ToBoolean(item.Value.NewValue); break; case "KillCountsShowTierTotals": UserSettings.KillCountsShowTierTotals = Convert.ToBoolean(item.Value.NewValue); break; case "KillCountsShowRowTotals": UserSettings.KillCountsShowRowTotals = Convert.ToBoolean(item.Value.NewValue); break; case "KillCountsShowColumnTotals": UserSettings.KillCountsShowColumnTotals = Convert.ToBoolean(item.Value.NewValue); break; case "DateFormat": UserSettings.DateFormat = Convert.ToString(item.Value.NewValue); break; case "TimeStamp": UserSettings.TimeStamp = Convert.ToBoolean(item.Value.NewValue); break; case "TimeFormat": UserSettings.TimeFormat = Convert.ToString(item.Value.NewValue); break; case "GroupLPT": UserSettings.GroupLPT = Convert.ToString(item.Value.NewValue); break; case "AllowvBAddictUpload": UserSettings.AllowvBAddictUpload = Convert.ToBoolean(item.Value.NewValue); break; case "AllowvBAddictUploadDossier": UserSettings.AllowvBAddictUploadDossier = Convert.ToBoolean(item.Value.NewValue); break; case "AllowvBAddictUploadDossierBattleResult": UserSettings.AllowvBAddictUploadDossierBattleResult = Convert.ToBoolean(item.Value.NewValue); break; case "AllowvBAddictUploadDossierBattleResultReplay": UserSettings.AllowvBAddictUploadDossierBattleResultReplay = Convert.ToBoolean(item.Value.NewValue); break; case "LastPlayedCompareQuota": UserSettings.LastPlayedCompareQuota = Convert.ToInt32(item.Value.NewValue); break; case "ColorPositive": UserSettings.ColorPositive = Convert.ToInt32(item.Value.NewValue); break; case "ColorNeutral": UserSettings.ColorNeutral = Convert.ToInt32(item.Value.NewValue); break; case "ColorNegative": UserSettings.ColorNegative = Convert.ToInt32(item.Value.NewValue); break; case "ChartAppearance": UserSettings.ChartAppearance = item.Value.NewValue.ToString(); break; case "ChartPalette": UserSettings.ChartPalette = item.Value.NewValue.ToString(); break; case "colorWNClass1": UserSettings.colorWNClass1 = Convert.ToInt32(item.Value.NewValue); break; case "colorWNClass2": UserSettings.colorWNClass2 = Convert.ToInt32(item.Value.NewValue); break; case "colorWNClass3": UserSettings.colorWNClass3 = Convert.ToInt32(item.Value.NewValue); break; case "colorWNClass4": UserSettings.colorWNClass4 = Convert.ToInt32(item.Value.NewValue); break; case "colorWNClass5": UserSettings.colorWNClass5 = Convert.ToInt32(item.Value.NewValue); break; case "colorWNClass6": UserSettings.colorWNClass6 = Convert.ToInt32(item.Value.NewValue); break; case "colorWNClass7": UserSettings.colorWNClass7 = Convert.ToInt32(item.Value.NewValue); break; case "colorWNClass8": UserSettings.colorWNClass8 = Convert.ToInt32(item.Value.NewValue); break; case "colorWNClass9": UserSettings.colorWNClass9 = Convert.ToInt32(item.Value.NewValue); break; case "Cloud_Allow": UserSettings.Cloud_Allow = Convert.ToBoolean(item.Value.NewValue); break; case "Cloud_Path": UserSettings.Cloud_Path = Convert.ToString(item.Value.NewValue); break; case "TimeAdjustment": UserSettings.TimeAdjustment = Convert.ToDouble(item.Value.NewValue); break; case "TopMinPlayed": UserSettings.TopMinPlayed = Convert.ToInt32(item.Value.NewValue); break; //case "RatingSystem": // UserSettings.RatingSystem = Convert.ToString(item.Value.NewValue); // break; case "LangID": UserSettings.LangID = Convert.ToString(item.Value.NewValue); DevExpress.XtraEditors.XtraMessageBox.Show(Translations.TranslationGet("STR_LANGIDNOTIFY", "DE", "Please note that the language settings would take effect after application is restarted."), "WOT Statistics", MessageBoxButtons.OK, MessageBoxIcon.Information); break; case "AutoCreateSession": UserSettings.AutoCreateSession = Convert.ToBoolean(item.Value.NewValue); break; case "AutoSessionOnStartUp": UserSettings.AutoSessionOnStartUp = Convert.ToBoolean(item.Value.NewValue); break; case "AutoSessionOnStartUpMessage": UserSettings.AutoSessionOnStartUpMessage = Convert.ToBoolean(item.Value.NewValue); break; case "AutoSessionXBattles": UserSettings.AutoSessionXBattles = Convert.ToBoolean(item.Value.NewValue); break; case "AutoSessionXBattlesMessage": UserSettings.AutoSessionXBattlesMessage = Convert.ToBoolean(item.Value.NewValue); break; case "AutoSessionXBattlesValue": UserSettings.AutoSessionXBattlesValue = Convert.ToInt32(item.Value.NewValue); break; case "AutoSessionXHours": UserSettings.AutoSessionXHours = Convert.ToBoolean(item.Value.NewValue); break; case "AutoSessionXHoursMessage": UserSettings.AutoSessionXHoursMessage = Convert.ToBoolean(item.Value.NewValue); break; case "AutoSessionXHoursValue": UserSettings.AutoSessionXHoursValue = Convert.ToInt32(item.Value.NewValue); break; default: break; } item.Value.OldValue = item.Value.NewValue; } var dirtyFieldsFTP = from x in _propertyFields where x.Value.IsDirty == true && x.Key.Contains("FTP_") select x; if (dirtyFieldsFTP.Count() > 0) { FTPDetails ftpDetails = new FTPDetails(); ftpDetails.AllowFTP = Convert.ToBoolean(_propertyFields["FTP_AllowFTP"].NewValue); ftpDetails.Host = Convert.ToString(_propertyFields["FTP_Host"].NewValue); ftpDetails.UserID = Convert.ToString(_propertyFields["FTP_UserID"].NewValue); ftpDetails.UserPWD = Convert.ToString(_propertyFields["FTP_UserPWD"].NewValue); _propertyFields["FTP_AllowFTP"].OldValue = _propertyFields["FTP_AllowFTP"].NewValue; _propertyFields["FTP_Host"].OldValue = _propertyFields["FTP_Host"].NewValue; _propertyFields["FTP_UserID"].OldValue = _propertyFields["FTP_UserID"].NewValue; _propertyFields["FTP_UserPWD"].OldValue = _propertyFields["FTP_UserPWD"].NewValue; ftpDetails.Save(); } }
public frmSetup(string page) { _propertyFields.Add("StartMonOnStartUp", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.StartMonOnStartUp, NewValue = UserSettings.StartMonOnStartUp }); _propertyFields.Add("LaunchWithWindows", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.LaunchWithWindows, NewValue = UserSettings.LaunchWithWindows }); _propertyFields.Add("MinimiseonStartup", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.MinimiseonStartup, NewValue = UserSettings.MinimiseonStartup }); _propertyFields.Add("MinimiseToTray", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.MinimiseToTray, NewValue = UserSettings.MinimiseToTray }); _propertyFields.Add("LastPlayedCompare", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.LastPlayedCompare, NewValue = UserSettings.LastPlayedCompare }); _propertyFields.Add("AllowVersionCheck", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.AllowVersionCheck, NewValue = UserSettings.AllowVersionCheck }); _propertyFields.Add("VersionCounter", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.VersionCounter, NewValue = UserSettings.VersionCounter }); _propertyFields.Add("SystemFont", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.SystemFont, NewValue = UserSettings.SystemFont }); _propertyFields.Add("HTMLCellFont", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.HTMLCellFont, NewValue = UserSettings.HTMLCellFont }); _propertyFields.Add("HTMLHeaderFont", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.HTMLHeaderFont, NewValue = UserSettings.HTMLHeaderFont }); _propertyFields.Add("HTMLTankInfoHeader", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.HTMLTankInfoHeader, NewValue = UserSettings.HTMLTankInfoHeader }); _propertyFields.Add("HTMLShowMovementPics", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.HTMLShowMovementPics, NewValue = UserSettings.HTMLShowMovementPics }); _propertyFields.Add("KillCountsShowTierTotals", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.KillCountsShowTierTotals, NewValue = UserSettings.KillCountsShowTierTotals }); _propertyFields.Add("KillCountsShowRowTotals", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.KillCountsShowRowTotals, NewValue = UserSettings.KillCountsShowRowTotals }); _propertyFields.Add("KillCountsShowColumnTotals", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.KillCountsShowColumnTotals, NewValue = UserSettings.KillCountsShowColumnTotals }); _propertyFields.Add("DateFormat", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.DateFormat, NewValue = UserSettings.DateFormat }); _propertyFields.Add("TimeStamp", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.TimeStamp, NewValue = UserSettings.TimeStamp }); _propertyFields.Add("TimeFormat", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.TimeFormat, NewValue = UserSettings.TimeFormat }); _propertyFields.Add("GroupLPT", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.GroupLPT, NewValue = UserSettings.GroupLPT }); _propertyFields.Add("AllowvBAddictUpload", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.AllowvBAddictUpload, NewValue = UserSettings.AllowvBAddictUpload }); _propertyFields.Add("AllowvBAddictUploadDossier", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.AllowvBAddictUploadDossier, NewValue = UserSettings.AllowvBAddictUploadDossier }); _propertyFields.Add("AllowvBAddictUploadDossierBattleResult", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.AllowvBAddictUploadDossierBattleResult, NewValue = UserSettings.AllowvBAddictUploadDossierBattleResult }); _propertyFields.Add("AllowvBAddictUploadDossierBattleResultReplay", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.AllowvBAddictUploadDossierBattleResultReplay, NewValue = UserSettings.AllowvBAddictUploadDossierBattleResultReplay }); _propertyFields.Add("LastPlayedCompareQuota", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.LastPlayedCompareQuota, NewValue = UserSettings.LastPlayedCompareQuota }); _propertyFields.Add("ColorPositive", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.ColorPositive, NewValue = UserSettings.ColorPositive }); _propertyFields.Add("ColorNeutral", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.ColorNeutral, NewValue = UserSettings.ColorNeutral }); _propertyFields.Add("ColorNegative", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.ColorNegative, NewValue = UserSettings.ColorNegative }); _propertyFields.Add("ChartAppearance", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.ChartAppearance, NewValue = UserSettings.ChartAppearance }); _propertyFields.Add("ChartPalette", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.ChartPalette, NewValue = UserSettings.ChartPalette }); _propertyFields.Add("colorWNClass1", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.colorWNClass1, NewValue = UserSettings.colorWNClass1 }); _propertyFields.Add("colorWNClass2", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.colorWNClass2, NewValue = UserSettings.colorWNClass2 }); _propertyFields.Add("colorWNClass3", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.colorWNClass3, NewValue = UserSettings.colorWNClass3 }); _propertyFields.Add("colorWNClass4", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.colorWNClass4, NewValue = UserSettings.colorWNClass4 }); _propertyFields.Add("colorWNClass5", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.colorWNClass5, NewValue = UserSettings.colorWNClass5 }); _propertyFields.Add("colorWNClass6", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.colorWNClass6, NewValue = UserSettings.colorWNClass6 }); _propertyFields.Add("colorWNClass7", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.colorWNClass7, NewValue = UserSettings.colorWNClass7 }); _propertyFields.Add("colorWNClass8", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.colorWNClass8, NewValue = UserSettings.colorWNClass8 }); _propertyFields.Add("colorWNClass9", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.colorWNClass9, NewValue = UserSettings.colorWNClass9 }); _propertyFields.Add("Cloud_Allow", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.Cloud_Allow, NewValue = UserSettings.Cloud_Allow }); _propertyFields.Add("Cloud_Path", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.Cloud_Path, NewValue = UserSettings.Cloud_Path }); _propertyFields.Add("TimeAdjustment", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.TimeAdjustment, NewValue = UserSettings.TimeAdjustment }); _propertyFields.Add("TopMinPlayed", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.TopMinPlayed, NewValue = UserSettings.TopMinPlayed }); _propertyFields.Add("LangID", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.LangID, NewValue = UserSettings.LangID }); //_propertyFields.Add("RatingSystem", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.RatingSystem, NewValue = UserSettings.RatingSystem }); _propertyFields.Add("AutoCreateSession", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.AutoCreateSession, NewValue = UserSettings.AutoCreateSession }); _propertyFields.Add("AutoSessionOnStartUp", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.AutoSessionOnStartUp, NewValue = UserSettings.AutoSessionOnStartUp }); _propertyFields.Add("AutoSessionOnStartUpMessage", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.AutoSessionOnStartUpMessage, NewValue = UserSettings.AutoSessionOnStartUpMessage }); _propertyFields.Add("AutoSessionXBattles", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.AutoSessionXBattles, NewValue = UserSettings.AutoSessionXBattles }); _propertyFields.Add("AutoSessionXBattlesMessage", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.AutoSessionXBattlesMessage, NewValue = UserSettings.AutoSessionXBattlesMessage }); _propertyFields.Add("AutoSessionXBattlesValue", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.AutoSessionXBattlesValue, NewValue = UserSettings.AutoSessionXBattlesValue }); _propertyFields.Add("AutoSessionXHours", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.AutoSessionXHours, NewValue = UserSettings.AutoSessionXHours }); _propertyFields.Add("AutoSessionXHoursMessage", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.AutoSessionXHoursMessage, NewValue = UserSettings.AutoSessionXHoursMessage }); _propertyFields.Add("AutoSessionXHoursValue", new PropertyFields() { FieldType = typeof(string), OldValue = UserSettings.AutoSessionXHoursValue, NewValue = UserSettings.AutoSessionXHoursValue }); FTPDetails ftpDetails = new FTPDetails(); _propertyFields.Add("FTP_AllowFTP", new PropertyFields() { FieldType = typeof(string), OldValue = ftpDetails.AllowFTP, NewValue = ftpDetails.AllowFTP }); _propertyFields.Add("FTP_Host", new PropertyFields() { FieldType = typeof(string), OldValue = ftpDetails.Host, NewValue = ftpDetails.Host }); _propertyFields.Add("FTP_UserID", new PropertyFields() { FieldType = typeof(string), OldValue = ftpDetails.UserID, NewValue = ftpDetails.UserID }); _propertyFields.Add("FTP_UserPWD", new PropertyFields() { FieldType = typeof(string), OldValue = ftpDetails.UserPWD, NewValue = ftpDetails.UserPWD }); InitializeComponent(); treeList1.ExpandAll(); treeList1.Columns[0].SortOrder = SortOrder.None; if (page == "LastPlayedTanks") { SetNodeFocus(Translations.TranslationGet("STR_RECENTBATTLES", "DE", "Recent Battles")); } else if (page == "KillCounts") { SetNodeFocus(Translations.TranslationGet("STR_KILLCOUNTS", "DE", "Kill Counts")); } else if (page == "CustomGroupings") { SetNodeFocus("Custom Grouping"); } else if (page == "Players") { SetNodeFocus(Translations.TranslationGet("STR_PLAYERS", "DE", "Players")); } else { } helpProvider1.HelpNamespace = Path.Combine(WOTHelper.GetEXEPath(), "Help", "WoT_Stats.chm"); }
private void barButtonGetFiles_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { try { splashScreenManager1.ShowWaitForm(); } catch { } DataTable dtMaster = new DataTable(); dtMaster.TableName = "master"; dtMaster.Columns.Add("PlayerName", typeof(string)); dtMaster.Columns.Add("LastPlayed", typeof(DateTime)); dtMaster.Columns.Add("BattleCount", typeof(Int32)); dtMaster.Columns.Add("Victories", typeof(Int32)); dtMaster.Columns.Add("Defeats", typeof(Int32)); dtMaster.Columns.Add("Draws", typeof(Int32)); dtMaster.Columns.Add("Survived", typeof(Int32)); dtMaster.Columns.Add("Destroyed", typeof(Int32)); dtMaster.Columns.Add("Detected", typeof(Int32)); dtMaster.Columns.Add("HitRatio", typeof(double)); dtMaster.Columns.Add("Damage", typeof(Int32)); dtMaster.Columns.Add("CapturePoints", typeof(Int32)); dtMaster.Columns.Add("DefencePoints", typeof(Int32)); dtMaster.Columns.Add("TotalExperience", typeof(Int32)); dtMaster.Columns.Add("AvgExperience", typeof(double)); dtMaster.Columns.Add("AvgDamage", typeof(double)); DataTable dtChild = new DataTable(); dtChild.TableName = "child"; dtChild.Columns.Add("PlayerName", typeof(string)); dtChild.Columns.Add("Tank", typeof(string)); dtChild.Columns.Add("LastPlayed", typeof(DateTime)); dtChild.Columns.Add("BattleCount", typeof(Int32)); dtChild.Columns.Add("Victories", typeof(Int32)); dtChild.Columns.Add("Defeats", typeof(Int32)); dtChild.Columns.Add("Draws", typeof(Int32)); dtChild.Columns.Add("Survived", typeof(Int32)); dtChild.Columns.Add("Destroyed", typeof(Int32)); dtChild.Columns.Add("Detected", typeof(Int32)); dtChild.Columns.Add("HitRatio", typeof(double)); dtChild.Columns.Add("Damage", typeof(Int32)); dtChild.Columns.Add("CapturePoints", typeof(Int32)); dtChild.Columns.Add("DefencePoints", typeof(Int32)); dtChild.Columns.Add("TotalExperience", typeof(Int32)); dtChild.Columns.Add("AvgExperience", typeof(double)); dtChild.Columns.Add("AvgDamage", typeof(double)); dtChild.Columns.Add("Hits", typeof(Int32)); dtChild.Columns.Add("shots", typeof(Int32)); PlayerListing pl = new PlayerListing(new MessageQueue()); FTPTools ftpTools = new FTPTools(); FTPDetails ftpDetails = new FTPDetails(); Encoding byteConverter = Encoding.GetEncoding("UTF-8"); List <string> files = ftpTools.DirectoryListing(ftpDetails.Host, ftpDetails.UserID, ftpDetails.UserPWD); foreach (string item in files) { string playerName = byteConverter.GetString(Base32.Decode(item.Remove(item.IndexOf('.')))).Split(';')[1]; string fileName = ftpTools.Download(ftpDetails.Host, item, ftpDetails.UserID, ftpDetails.UserPWD, new MessageQueue(), playerName); ProcessDossierFile(fileName, dtChild, playerName); if (dtChild.Rows.Count > 0) { DataRow rowM = dtMaster.NewRow(); var totals = (from x in dtChild.AsEnumerable() group x by x["PlayerName"] into totalgroup where totalgroup.Key.ToString() == playerName select new { PlayerName = totalgroup.Key, LastPlayed = totalgroup.Max((r) => DateTime.Parse(r["LastPlayed"].ToString())), BattleCount = totalgroup.Sum((r) => int.Parse(r["BattleCount"].ToString())), Victories = totalgroup.Sum((r) => int.Parse(r["Victories"].ToString())), Defeats = totalgroup.Sum((r) => int.Parse(r["Defeats"].ToString())), Draws = totalgroup.Sum((r) => int.Parse(r["Draws"].ToString())), Survived = totalgroup.Sum((r) => int.Parse(r["Survived"].ToString())), Destroyed = totalgroup.Sum((r) => int.Parse(r["Destroyed"].ToString())), Detected = totalgroup.Sum((r) => int.Parse(r["Detected"].ToString())), Hits = totalgroup.Sum((r) => int.Parse(r["Hits"].ToString())), Shots = totalgroup.Sum((r) => int.Parse(r["Shots"].ToString())), Damage = totalgroup.Sum((r) => int.Parse(r["Damage"].ToString())), CapturePoints = totalgroup.Sum((r) => int.Parse(r["CapturePoints"].ToString())), DefencePoints = totalgroup.Sum((r) => int.Parse(r["DefencePoints"].ToString())), TotalExperience = totalgroup.Sum((r) => int.Parse(r["TotalExperience"].ToString())), }).FirstOrDefault(); if (totals != null) { rowM.SetField("PlayerName", totals.PlayerName); rowM.SetField("LastPlayed", totals.LastPlayed); rowM.SetField("BattleCount", totals.BattleCount); rowM.SetField("Victories", totals.Victories); rowM.SetField("Defeats", totals.Defeats); rowM.SetField("Draws", totals.Draws); rowM.SetField("Survived", totals.Survived); rowM.SetField("Destroyed", totals.Destroyed); rowM.SetField("Detected", totals.Detected); rowM.SetField("HitRatio", ((double)totals.Hits / (double)totals.Shots) * 100); rowM.SetField("Damage", totals.Damage); rowM.SetField("CapturePoints", totals.CapturePoints); rowM.SetField("DefencePoints", totals.DefencePoints); rowM.SetField("TotalExperience", totals.TotalExperience); rowM.SetField("AvgExperience", totals.TotalExperience / totals.BattleCount); rowM.SetField("AvgDamage", totals.Damage / totals.BattleCount); dtMaster.Rows.Add(rowM); } } //gridControl1.RefreshDataSource(); } DataSet ds = new DataSet(); ds.Tables.Add(dtMaster); ds.Tables.Add(dtChild); DataColumn keyColumn = ds.Tables["master"].Columns["PlayerName"]; DataColumn foreignKeyColumn = ds.Tables["child"].Columns["PlayerName"]; ds.Relations.Add("Player_Detail", keyColumn, foreignKeyColumn); gridControl1.DataSource = ds.Tables["master"]; gridControl1.ForceInitialize(); gridControl1.LevelTree.Nodes.Add("Player_Detail", PlayerDetail); try { if (splashScreenManager1.IsSplashFormVisible) { splashScreenManager1.CloseWaitForm(); } DevExpress.XtraSplashScreen.SplashScreenManager.Default.CloseWaitForm(); } catch { } //gridControl1.DataSource = ds.Tables["master"]; //gridControl1.ForceInitialize(); //gridControl1.LevelTree.Nodes.Add("Player_Detail", PlayerDetail); //PlayerDetail.PopulateColumns(ds.Tables["child"]); }