public FtpPutter(string url, string user, string password, Plataform plataform) { _url = url; _user = user; _password = password; _plataform = plataform; }
public SiteDiagnostic GetSiteDiagnostic(Plataform plataform, string apiKey) { var plataformPrefix = plataform == Plataform.PS ? "ps." : string.Empty; string url = $"https://{plataformPrefix}wotclans.com.br/api/status"; return(GetSiteDiagnostic(url, apiKey)); }
/// <summary> /// Constroi /// </summary> /// <param name="plataform">Plataforma</param> /// <param name="playerId">Id no jogo</param> /// <param name="name">Gamer Tag</param> public Player(Plataform plataform, long playerId, string name) { Id = playerId; Name = name; Plataform = plataform; Moment = DateTime.UtcNow; }
private static void DumpMoEFiles(string[] args) { var connectionString = ConfigurationManager.ConnectionStrings["Main"].ConnectionString; var provider = new DbProvider(connectionString); const Plataform plataform = Plataform.XBOX; var date = new DateTime(2017, 03, 10); var maxDate = new DateTime(2017, 04, 26); while (date <= maxDate) { var moes = provider.GetMoe(plataform, date).ToDictionary(t => t.TankId); var dateOnDb = moes.First().Value.Date; string json = JsonConvert.SerializeObject(moes, Formatting.Indented); var baseDir = ConfigurationManager.AppSettings["ResultsFolder"]; var file = Path.Combine(baseDir, "MoE", $"{dateOnDb:yyyy-MM-dd}.moe.json"); File.WriteAllText(file, json, Encoding.UTF8); date = date.AddDays(1.0); Log.InfoFormat("Escrito {0}", file); } }
/// <summary> /// Obtem os tanques de um jogador /// </summary> public async Task <IEnumerable <TankPlayer> > GetTanksForPlayerAsync(Plataform plataform, long playerId, long?tankId = null) { Log.DebugFormat("Obtendo tanques do jogador {0}@{1}...", playerId, plataform); string server; switch (plataform) { case Plataform.XBOX: server = "api-xbox-console.worldoftanks.com"; break; case Plataform.PS: server = "api-ps4-console.worldoftanks.com"; break; default: throw new ArgumentOutOfRangeException(nameof(plataform), plataform, null); } string requestUrl = $"https://{server}/wotx/tanks/stats/?application_id={ApplicationId}&account_id={playerId}"; if (tankId.HasValue) { requestUrl += $"&tank_id={tankId.Value}"; } var content = await GetContent($"TanksStats.{plataform}.{playerId}.json", requestUrl, WebCacheAge, false, Encoding.UTF8); var json = content.Content; var response = JsonConvert.DeserializeObject <TanksStatsResponse>(json); if (response.IsError) { Log.Error(response.Error); return(Enumerable.Empty <TankPlayer>()); } var list = new List <TankPlayer>(); foreach (var tankPlayers in response.Tanks.Values) { if (tankPlayers != null) { foreach (var tankPlayer in tankPlayers) { tankPlayer.Plataform = plataform; list.Add(tankPlayer); } } } return(list); }
public void DisableClan(Plataform plataform, long clanId, DisabledReason disabledReason) { Log.DebugFormat("Desabilitando clã {0}.{1} no BD por motivo {2}...", clanId, plataform, disabledReason); var sw = Stopwatch.StartNew(); Execute(t => EnableDisableClan(plataform, clanId, false, disabledReason, t)); Log.DebugFormat("Desabilitado clã {0}.{1} no BD em {2}.", clanId, plataform, sw.Elapsed); }
public void EnableClan(Plataform plataform, long clanId) { Log.DebugFormat("Habilitando clã {0}.{1} no BD...", clanId, plataform); var sw = Stopwatch.StartNew(); Execute(t => EnableDisableClan(plataform, clanId, true, DisabledReason.NotDisabled, t)); Log.DebugFormat("Habilitado clã {0}.{1} no BD em {2}.", clanId, plataform, sw.Elapsed); }
public ClanNotFoundException(Plataform plataform, long clanId, string clanTag, string url, WebException innerException) : base($"{clanId}.{clanTag}@{plataform} não achado (404) em '{url}'", innerException) { Plataform = plataform; ClanTag = clanTag; Url = url; ClanId = clanId; }
void OnCollisionEnter2D(Collision2D collision) { Vector2 vNormal = collision.contacts[0].normal; Plataform plataform = collision.transform.GetComponent <Plataform>(); GenaratorEdges genaratorEdges = collision.transform.GetComponent <GenaratorEdges>(); bool bCollisionInvalid = false; Vector2 normal = Vector2.zero; foreach (ContactPoint2D c in collision.contacts) { normal += c.normal; } normal /= collision.contacts.Length; normal.Normalize(); if (plataform != null) { if (vNormal != Vector2.up) { bCollisionInvalid = true; } else { //ManagerGame.iPonts++; psSheets.Play(); } } else if (genaratorEdges != null) { if (vNormal == Vector2.up) { bCollisionInvalid = true; } } else { bCollisionInvalid = false; Bounds bordasColisor = collision.transform.GetComponent <SpriteRenderer>().bounds; Vector3 positionCreator = new Vector3(collision.transform.position.x + bordasColisor.extents.x, collision.transform.position.y - bordasColisor.extents.y, collision.transform.position.z); GameObject particles = (GameObject)Instantiate(goParticleBlock, positionCreator, Quaternion.identity); ParticleSystem componentParticles = particles.GetComponent <ParticleSystem>(); Destroy(particles, componentParticles.duration + componentParticles.startLifetime); Destroy(collision.gameObject); ManagerGame.iNumberBlocksDestroyed++; } if (!bCollisionInvalid) { vDirection = Vector2.Reflect(vDirection, vNormal); vDirection.Normalize(); } else { ManagerGame.managerGame.GameOver(goPanelGameOver); } }
void randomizePlataformPlace() { float plataformWidth = PlataformPrefab.GetComponent <RectTransform>().rect.width; Vector3 spawnPos = transform.TransformPoint(Random.Range(Camera.main.transform.position.x - 12, Camera.main.transform.position.x + 12), Camera.main.rect.height + 10, 0); GameObject newPlataformGO = Instantiate(PlataformPrefab, spawnPos, PlataformPrefab.transform.rotation); Plataform newPlataform = new Plataform(newPlataformGO, Random.Range(MinVelocity, MaxVelocity)); _presentPlataforms.Add(newPlataform); }
public static string TagName(this Plataform plataform) { if (plataform == Plataform.PS) { return("PSN Name"); } else { return("Gamer Tag"); } }
/// <summary> /// The site for the platafor, like https://wotclans.com.br or https://ps.wotclans.com.br /// </summary> /// <param name="plataform"></param> /// <returns></returns> public static string SiteUrl(this Plataform plataform) { if (plataform == Plataform.PS) { return("https://ps.wotclans.com.br"); } else { return("https://wotclans.com.br"); } }
private static async Task ValidateDataFields(Sale sale) { try { //Status.Valdiate(sale.Status); Inventory.Validate(sale.Inventory); Plataform.Validate(sale.Plataform); } catch (Exception e) { throw e; } }
private void CheckMovement(Plataform currentPlataform) { switch (currentPlataform) { case Plataform.UNITY: CheckUnityMovement(); break; case Plataform.ANDROID: CheckAndroidMovement(); break; } }
private IEnumerable <Tank> GetTanks(Plataform plataform, long?tankId) { Log.DebugFormat("Procurando dados de tanques para {0}...", plataform); string server; switch (plataform) { case Plataform.XBOX: server = "api-xbox-console.worldoftanks.com"; break; case Plataform.PS: server = "api-ps4-console.worldoftanks.com"; break; case Plataform.PC: return(GetPcTanks(tankId)); default: throw new ArgumentOutOfRangeException(nameof(plataform), plataform, null); } string requestUrl = $"https://{server}/wotx/encyclopedia/vehicles/?application_id={ApplicationId}&fields=tank_id%2Cname%2Cshort_name%2Cis_premium%2Ctier%2Ctag%2Ctype%2Cimages%2Cnation"; if (tankId != null) { requestUrl += $"&tank_id={tankId.Value}"; } var json = GetContentSync($"Vehicles.{plataform}.{DateTime.UtcNow:yyyyMMddHH}.json", requestUrl, WebCacheAge, false, Encoding.UTF8).Content; var response = JsonConvert.DeserializeObject <VehiclesResponse>(json); if (response.IsError) { Log.Error(response.Error); return(Enumerable.Empty <Tank>()); } foreach (var tank in response.Data.Values) { tank.Plataform = plataform; } return(response.Data.Values); }
void Start() { #if UNITY_EDITOR { Debug.Log("Estoy en el editor"); currentPlataform = Plataform.UNITY; } #elif UNITY_ANDROID { //Debugg en adroid currentPlataform = Plataform.ANDROID; } #endif rb = GetComponent <Rigidbody2D>(); }
/// <summary> /// Devolve a GT a partir do ID /// </summary> public string GetPlayerNameById(Plataform plataform, long id) { Log.DebugFormat("Procurando GT de {1} na plataforma {0}...", plataform, id); string server; switch (plataform) { case Plataform.XBOX: server = "api-xbox-console.worldoftanks.com"; break; case Plataform.PS: server = "api-ps4-console.worldoftanks.com"; break; default: throw new ArgumentOutOfRangeException(nameof(plataform), plataform, null); } string url = $"https://{server}/wotx/account/info/?application_id={ApplicationId}&account_id={id}&fields=nickname"; var json = GetContentSync($"GamerTagById.{plataform}.{id}.json", url, WebCacheAge, false, Encoding.UTF8) .Content; var result = JObject.Parse(json); if ((string)result["status"] != "ok") { var error = result["error"]; int code = (int)error["code"]; string msg = (string)error["message"]; Log.ErrorFormat("Erro de API {0}, '{1}' chamando {2}", code, msg, url); return(null); } var count = (int)result["meta"]["count"]; if (count < 1) { Log.WarnFormat("Não achado ninguém com id '{0}'.", id); return(null); } var name = (string)result["data"][$"{id}"]["nickname"]; Log.DebugFormat("...achado '{0}'.", name); return(name); }
public void InstantiatePlataforms() { plataform = plataforms[plataformIndex]; Debug.Log(plataformIndex.ToString()); if (instantiateTime == 0) { Plataform firstPlataform = Instantiate(plataforms[instantiateTime], new Vector3(0f, 0f, 0f), Quaternion.identity); Plataform secondPlataform = Instantiate(plataforms[instantiateTime], new Vector3(0f, 0f, firstPlataform.transform.localScale.z), Quaternion.identity); instantiateTime = 1; } else { Plataform newPlataform = Instantiate(plataform, plataform.initialPosition + new Vector3(0f, 0f, instantiateTime * plataform.transform.localScale.z), Quaternion.identity); } instantiateTime++; }
private static void GetAllTanks(Plataform plataform) { var cacheDirectory = ConfigurationManager.AppSettings["CacheDirectory"]; var fetcher = new Fetcher(cacheDirectory) { WebCacheAge = TimeSpan.FromMinutes(15), WebFetchInterval = TimeSpan.FromSeconds(1), ApplicationId = ConfigurationManager.AppSettings["WgApi"] }; var tanks = fetcher.GetTanks(Plataform.PC).ToArray(); var connectionString = ConfigurationManager.ConnectionStrings["Main"].ConnectionString; var recorder = new DbRecorder(connectionString); recorder.Set(tanks); }
public static ICloudBooster GetBooster(Plataform plataform) { ICloudBooster webDriverBooster = null; switch (plataform) { case Plataform.Mixcloud: webDriverBooster = new MixcloudWebDriverBooster(ConfigurationFactory.GetConfiguration()); break; case Plataform.Soundcloud: //webDriverBooster = new SoundcloudWebDriverBooster(); break; } return(webDriverBooster); }
public Putter(Plataform plataform, string apiKey) { switch (plataform) { case Plataform.XBOX: _baseUrl = "https://wotclans.com.br"; break; case Plataform.PS: _baseUrl = "https://ps.wotclans.com.br"; break; default: throw new ArgumentOutOfRangeException(nameof(plataform), plataform, "Not supported."); } _apiKey = apiKey; }
private static void PutTanksReferencesOnPlataform(Plataform plataform, DateTime?lastReferences, DbProvider provider, MailSender mailSender, string resultDirectory, FtpPutter ftpPutter, int utcShiftToCalculate) { Debug.Assert(lastReferences != null, nameof(lastReferences) + " != null"); Log.Debug($"Referências no site {plataform}: {lastReferences.Value:yyyy-MM-dd ddd}"); var cd = DateTime.UtcNow.AddHours(utcShiftToCalculate); var previousMonday = cd.PreviousDayOfWeek(DayOfWeek.Monday); Log.Debug($"Segunda-Feira anterior: {previousMonday:yyyy-MM-dd ddd}; Current: {cd:o}"); if (previousMonday <= lastReferences.Value) { return; } // Preciso gerar referências e subir var references = provider .GetTanksReferences(plataform, previousMonday).ToArray(); var referencesDir = Path.Combine(resultDirectory, "Tanks"); var leaders = new ConcurrentBag <Leader>(); Parallel.For(0, references.Length, new ParallelOptions { MaxDegreeOfParallelism = 4 }, (i) => { var r = references[i]; var tankFile = r.Save(referencesDir); ftpPutter.PutTankReference(tankFile); Log.Info($"Escrito e feito upload da referência {tankFile}"); foreach (var leader in r.Leaders) { leaders.Add(leader); } }); var json = JsonConvert.SerializeObject(leaders.ToArray(), Formatting.Indented); var leadersFile = Path.Combine(referencesDir, $"{previousMonday:yyyy-MM-dd}.Leaders.json"); File.WriteAllText(leadersFile, json, Encoding.UTF8); ftpPutter.PutTankReference(leadersFile); mailSender.Send($"Upload das Referências {plataform} para {previousMonday:yyyy-MM-dd} Ok", $"Leaderboard: https://{(plataform == Plataform.PS ? "ps." : "")}wotclans.com.br/Leaderboard/All"); }
// Start is called before the first frame update void Start() { _tileRot = Quaternion.identity; _world = new Queue <Plataform>(10); Plataform plataform = default; for (int i = 0; i < 10; i++) { _offset = new Vector3(0f, 0f, (2 * i)); plataform = Instantiate(_pltfrm, _offset, _tileRot); plataform.transform.SetParent(transform); _world.Enqueue(plataform); } }
private static void EnableDisableClan(Plataform plataform, long clanId, bool enable, DisabledReason disabledReason, SqlTransaction t) { const string sql = "update Main.Clan set [Enabled] = @enableDisable, DisabledReason = @disabledReason where (ClanId = @clanId) and (PlataformId = @plataformId);"; using (var cmd = new SqlCommand(sql, t.Connection, t)) { cmd.CommandType = CommandType.Text; cmd.CommandTimeout = 5 * 60; cmd.Parameters.AddWithValue("@clanId", clanId); cmd.Parameters.AddWithValue("@plataformId", (int)plataform); cmd.Parameters.AddWithValue("@enableDisable", enable); cmd.Parameters.AddWithValue("@disabledReason", (int)disabledReason); cmd.ExecuteNonQuery(); } }
private static void PutMoEOnPlataform(Plataform plataform, DateTime?moeLastDate, DbProvider provider, MailSender mailSender, string resultDirectory, FtpPutter ftpPutter) { Log.Debug($"Verificando atualização de MoE em {plataform}"); Debug.Assert(moeLastDate != null, nameof(moeLastDate) + " != null"); Log.DebugFormat("Site Date: {0:yyyy-MM-dd}", moeLastDate.Value); var dbDate = provider.GetMoe(plataform).First().Date; Log.DebugFormat("DB Date: {0:yyyy-MM-dd}", dbDate); var date = moeLastDate.Value.AddDays(1); while (date <= dbDate) { Log.InfoFormat("Calculando e fazendo upload para {0:yyyy-MM-dd}...", date); var moes = provider.GetMoe(plataform, date).ToDictionary(t => t.TankId); if (moes.Count > 0) { var json = JsonConvert.SerializeObject(moes, Formatting.Indented); var file = Path.Combine(resultDirectory, "MoE", $"{date:yyyy-MM-dd}.moe.json"); File.WriteAllText(file, json, Encoding.UTF8); Log.DebugFormat("Salvo o MoE em '{0}'", file); ftpPutter.PutMoe(file); Log.Debug("Feito uploado do MoE"); mailSender.Send($"Upload das MoE {plataform} para {date:yyyy-MM-dd} Ok", $"MoE: https://{(plataform == Plataform.PS ? "ps." : "")}wotclans.com.br/Tanks/MoE"); } else { Log.ErrorFormat("Os MoEs para {0:yyyy-MM-dd} retornaram 0 tanques!", date); } date = date.AddDays(1); } Log.Debug($"Verificação do MoE completa para {plataform}."); }
/// <summary> /// Retorna o nome do clã, ou nulo caso ele não exista /// </summary> private static string GetClanTag(Plataform plataform, long clanId, SqlTransaction t) { const string sql = "select ClanTag from Main.Clan where (PlataformId = @plataformId) and (ClanId = @clanId);"; using (var cmd = new SqlCommand(sql, t.Connection, t)) { cmd.CommandTimeout = 5 * 60; cmd.Parameters.AddWithValue("@plataformId", (int)plataform); cmd.Parameters.AddWithValue("@clanId", clanId); using (var reader = cmd.ExecuteReader()) { if (reader.Read()) { return(reader.GetNonNullValue <string>(0)); } } } return(null); }
protected Plataform GetPlataform(string s, Plataform defaultPlataform, out string clean) { if (string.IsNullOrWhiteSpace(s)) { clean = string.Empty; return(defaultPlataform); } s = s.Trim('\"', ' ', '\t', '\r', '\n', '\'', '`', '´'); s = s.RemoveDiacritics().ToLowerInvariant(); if (s.StartsWith("ps.")) { clean = s.Substring(3); return(Plataform.PS); } else if (s.StartsWith("ps4.")) { clean = s.Substring(4); return(Plataform.PS); } else if (s.StartsWith("xbox.")) { clean = s.Substring(5); return(Plataform.XBOX); } else if (s.StartsWith("x.")) { clean = s.Substring(2); return(Plataform.XBOX); } else if (s.StartsWith("p.")) { clean = s.Substring(2); return(Plataform.PS); } clean = s; return(defaultPlataform); }
private Tank[] GetTanks(Plataform plataform) { lock (_tankListLock) { if (DateTime.UtcNow > (plataform == Plataform.PS ? _tanksListValidUntilPs : _tanksListValidUntilXbox)) { var provider = new DbProvider(_connectionString); if (plataform == Plataform.PS) { _tanksPS = provider.EnumTanks(Plataform.PS).OrderByDescending(t => t.Tier).ThenBy(t => t.TankId).ToArray(); _tanksListValidUntilPs = DateTime.UtcNow.AddMinutes(30); } else { _tanksXbox = provider.EnumTanks(Plataform.XBOX).OrderByDescending(t => t.Tier).ThenBy(t => t.TankId).ToArray(); _tanksListValidUntilXbox = DateTime.UtcNow.AddMinutes(30); } } return(plataform == Plataform.PS ? _tanksPS : _tanksXbox); } }
private static void HandleWn8ExpectedValues(Plataform plataform, DbProvider provider, string resultDirectory, FtpPutter ftpPutter, DbRecorder recorder, Fetcher fetcher) { // Aproveito e pego e salvo os dados de WN8 if ((recorder != null) && (fetcher != null)) { Log.Info($"Pegando dados de WN8 para {plataform}..."); recorder.Set(fetcher.GetXvmWn8ExpectedValuesAsync().Result); Log.Info("Dados de WN8 obtidos e salvos."); } var wn8 = provider.GetWn8ExpectedValues(plataform); 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); ftpPutter.PutMoe(file); Log.Debug($"Feito uploado do WN8 para {plataform}"); } }
public ActionResult Save(Plataform computador) { if (!ModelState.IsValid) { var viewModel = new PlataformssFormViewModel { Plataform = computador }; return(View("ComputadorForm", viewModel)); } if (computador.Id == 0) { _context.Computadores.Add(computador); } else { var computadorInDb = _context.Computadores.Single(c => c.Id == computador.Id); computadorInDb.Name = computador.Name; } _context.SaveChanges(); return(RedirectToAction("Index")); }