/// <summary> /// Lista arquivos no diretorio FTP /// </summary> private static void ListFiles() { var putter = new FtpPutter(ConfigurationManager.AppSettings["FtpFolder"], ConfigurationManager.AppSettings["FtpUser"], ConfigurationManager.AppSettings["FtpPassworld"], Plataform.XBOX); var remoteClanFiles = putter.List("clan.TERSP."); foreach (var remoteClanFile in remoteClanFiles) { putter.DeleteFile(remoteClanFile); } }
/// <summary> /// Lista arquivos no diretorio FTP /// </summary> private static void ListFiles() { FtpPutter putter = new FtpPutter(ConfigurationManager.AppSettings["FtpFolder"], ConfigurationManager.AppSettings["FtpUser"], ConfigurationManager.AppSettings["FtpPassworld"]); IEnumerable <string> remoteClanFiles = putter.List("clan.TERSP."); foreach (string remoteClanFile in remoteClanFiles) { putter.DeleteFile(remoteClanFile); } }
private static void DeleteOldFiles(int daysToKeepClans, int daysToKeepTanks) { var putterXbox = new FtpPutter(ConfigurationManager.AppSettings["FtpFolder"], ConfigurationManager.AppSettings["FtpUser"], ConfigurationManager.AppSettings["FtpPassworld"], Plataform.XBOX); var putterPs = new FtpPutter(ConfigurationManager.AppSettings["PsFtpFolder"], ConfigurationManager.AppSettings["PsFtpUser"], ConfigurationManager.AppSettings["PsFtpPassworld"], Plataform.PS); var deleted = putterXbox.DeleteOldFiles(daysToKeepTanks, "Tanks"); deleted += putterXbox.DeleteOldFiles(daysToKeepClans); Log.InfoFormat($"Deletados {deleted} do XBOX"); deleted = putterPs.DeleteOldFiles(daysToKeepClans); deleted += putterPs.DeleteOldFiles(daysToKeepTanks, "Tanks"); Log.InfoFormat($"Deletados {deleted} do PS"); }
/// <summary> /// Exporta o WN8 esperado /// </summary> public static void CalculateWn8Expected() { var connectionString = ConfigurationManager.ConnectionStrings["Main"].ConnectionString; var provider = new DbProvider(connectionString); var putter = new FtpPutter(ConfigurationManager.AppSettings["PsFtpFolder"], ConfigurationManager.AppSettings["PsFtpUser"], ConfigurationManager.AppSettings["PsFtpPassworld"], Plataform.PS); string resultDirectory = ConfigurationManager.AppSettings["PsResultDirectory"]; var wn8 = provider.GetWn8ExpectedValues(Plataform.PS); if (wn8 != null) { var json = JsonConvert.SerializeObject(wn8, Formatting.Indented); var file = Path.Combine(resultDirectory, "MoE", $"{wn8.Date:yyyy-MM-dd}.WN8.json"); File.WriteAllText(file, json, Encoding.UTF8); Log.DebugFormat("Salvo o WN8 Expected em '{0}'", file); putter.PutMoe(file); Log.Debug("Feito uploado do WN8"); } }
/// <summary> /// Calcula todos os clas habilitados e os salva /// </summary> private static void CalculateAllClans() { var connectionString = ConfigurationManager.ConnectionStrings["Main"].ConnectionString; var provider = new DbProvider(connectionString); var clans = provider.GetClans().ToArray(); Log.InfoFormat("{0} clas devem ser calculados.", clans.Length); var recorder = new DbRecorder(connectionString); var putterXbox = new FtpPutter(ConfigurationManager.AppSettings["FtpFolder"], ConfigurationManager.AppSettings["FtpUser"], ConfigurationManager.AppSettings["FtpPassworld"], Plataform.XBOX); var putterPs = new FtpPutter(ConfigurationManager.AppSettings["PsFtpFolder"], ConfigurationManager.AppSettings["PsFtpUser"], ConfigurationManager.AppSettings["PsFtpPassworld"], Plataform.PS); var resultDirectory = ConfigurationManager.AppSettings["ResultDirectory"]; var resultDirectoryPs = ConfigurationManager.AppSettings["PsResultDirectory"]; var already = new HashSet <string>(File.ReadAllLines(Path.Combine(resultDirectory, "CalcTask.txt"))); var alreadyPs = new HashSet <string>(File.ReadAllLines(Path.Combine(resultDirectoryPs, "CalcTask.txt"))); var o = new object(); // Calcula cada cla var doneCount = 0; var sw = Stopwatch.StartNew(); Parallel.For(0, clans.Length, new ParallelOptions { MaxDegreeOfParallelism = 2 }, i => { var clan = clans[i]; bool done = false; if (clan.Plataform == Plataform.XBOX) { done = already.Contains(clan.ClanTag); } else if (clan.Plataform == Plataform.PS) { done = alreadyPs.Contains(clan.ClanTag); } if (done) { Log.InfoFormat("cla {0} de {1}: {2}@{3} feito anteriormente.", i + 1, clans.Length, clan.ClanTag, clan.Plataform); Interlocked.Increment(ref doneCount); return; } Log.InfoFormat("Processando cla {0} de {1}: {2}@{3}...", i + 1, clans.Length, clan.ClanTag, clan.Plataform); var csw = Stopwatch.StartNew(); var cc = CalculateClan(clan, provider, recorder); Log.InfoFormat("Calculado cla {0} de {1}: {2}@{3} em {4:N1}s...", i + 1, clans.Length, clan.ClanTag, clan.Plataform, csw.Elapsed.TotalSeconds); if (cc != null) { var fsw = Stopwatch.StartNew(); switch (cc.Plataform) { case Plataform.XBOX: { var fileName = cc.ToFile(resultDirectory); Log.InfoFormat("Arquivo de resultado escrito em '{0}'", fileName); putterXbox.PutClan(fileName); lock (o) { File.AppendAllText(Path.Combine(resultDirectory, "CalcTask.txt"), $"{cc.ClanTag}\r\n", Encoding.UTF8); } } break; case Plataform.PS: { var fileName = cc.ToFile(resultDirectoryPs); Log.InfoFormat("Arquivo de resultado escrito em '{0}'", fileName); putterPs.PutClan(fileName); lock (o) { File.AppendAllText(Path.Combine(resultDirectoryPs, "CalcTask.txt"), $"{cc.ClanTag}\r\n", Encoding.UTF8); } } break; case Plataform.Virtual: break; default: throw new ArgumentOutOfRangeException(); } Log.InfoFormat("Upload do cla {0} de {1}: {2}@{3} em {4:N1}s...", i + 1, clans.Length, clan.ClanTag, clan.Plataform, fsw.Elapsed.TotalSeconds); } Interlocked.Increment(ref doneCount); Log.InfoFormat("Processado cla {0} de {1}: {2}@{3} em {4:N1}s. {5} totais.", i + 1, clans.Length, clan.ClanTag, clan.Plataform, csw.Elapsed.TotalSeconds, doneCount); }); var calculationTime = sw.Elapsed; }