コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: cogutvalera/wotclans
        /// <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);
            }
        }
コード例 #3
0
        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");
        }
コード例 #4
0
        /// <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");
            }
        }
コード例 #5
0
        /// <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;
        }