public PersonagemViewModel ObterPorNome(string nome) { var personagemCacheado = _distributedCache.GetString(nome.ToBase64()); if (!string.IsNullOrEmpty(personagemCacheado)) { return(JsonConvert.DeserializeObject <PersonagemViewModel>(personagemCacheado)); } var request = new RestRequest("characters", Method.GET); var timeStamp = DateTime.UtcNow.Ticks.ToString(); request.AddParameter("name", nome); request.AddParameter("ts", timeStamp); request.AddParameter("apikey", _publicKey); request.AddParameter("hash", GerarHash(timeStamp, _publicKey, _privateKey)); var response = _restClient.Get(request); if (!response.IsSuccessful) { return(null); } dynamic resultado = JsonConvert.DeserializeObject(response.Content); if ((resultado.data.results as IList).Count == 0) { return(null); } PersonagemViewModel personagem = JsonConvert.DeserializeObject <PersonagemViewModel>(JsonConvert.SerializeObject(resultado.data.results[0])); _distributedCache.SetString(nome.ToBase64(), JsonConvert.SerializeObject(personagem)); return(personagem); }
public IActionResult Patch(int id, PersonagemViewModel personagemAtualizado) { try { PersonagemDomain personagemBuscado = _personagemRepository.BuscarPorId(id); PersonagemDomain personagemBuscadoNome = _personagemRepository.BuscarPorNome(personagemAtualizado.nomePersonagem); if (personagemBuscadoNome == null) { if (personagemBuscado != null) { personagemBuscado = new PersonagemDomain { nomePersonagem = personagemAtualizado.nomePersonagem, maxVida = personagemAtualizado.maxVida, maxMana = personagemAtualizado.maxMana, idClasse = personagemAtualizado.idClasse }; _personagemRepository.Atualizar(id, personagemBuscado); return(StatusCode(204)); } return(NotFound("Personagem não encontrado!")); } return(NotFound("Não foi possível atualizar, nome de personagem já existente!")); } catch (Exception codErro) { return(BadRequest(codErro)); } }
public IActionResult Post([FromForm] PersonagemViewModel model) { string sql = ""; if (model.Id != 0) { sql = @"UPDATE personagem SET nivel = @nivel, agilidade = @agilidade, ataque = @ataque, carisma = @carisma, defesa = @defesa, destreza = @destreza, inteligencia = @inteligencia, sorte = @sorte, vida = @vida where Id = @Id"; } else { sql = "INSERT INTO personagem(nome, raca, classe, nivel, agilidade, ataque, carisma, defesa, destreza, inteligencia, sorte, vida) VALUES(@nome, @raca, @classe, @nivel, @agilidade, @ataque, @carisma, @defesa, @destreza, @inteligencia, @sorte, @vida);"; } using (var conn = _conexao.AbrirConexao()) { conn.Execute(sql, model); } return(RedirectToAction("Index")); }
public PersonagemViewModel ObterPorId(long id) { var personagemCacheado = _distributedCache.GetString(id.ToString()); if (!string.IsNullOrEmpty(personagemCacheado)) { return(JsonConvert.DeserializeObject <PersonagemViewModel>(personagemCacheado)); } var request = new RestRequest("characters/{id}", Method.GET); var timeStamp = DateTime.UtcNow.Ticks.ToString(); request.AddUrlSegment("id", id); request.AddParameter("ts", timeStamp); request.AddParameter("apikey", _publicKey); request.AddParameter("hash", GerarHash(timeStamp, _publicKey, _privateKey)); var response = _restClient.Get(request); if (!response.IsSuccessful) { return(null); } dynamic resultado = JsonConvert.DeserializeObject <dynamic>(response.Content); PersonagemViewModel personagem = JsonConvert.DeserializeObject <PersonagemViewModel>(JsonConvert.SerializeObject(resultado.data.results[0])); _distributedCache.SetString(personagem.Id.ToString(), JsonConvert.SerializeObject(personagem)); return(personagem); }
public IActionResult Put([FromBody] PersonagemViewModel vm) { if (!ModelState.IsValid) { NotificarErros(); return(Response(vm)); } _servicosApp.Atualizar(vm); return(Response(vm)); }
public async Task <ActionResult> EditAsync(int id) { HttpClient httpClient = new HttpClient(); HttpResponseMessage response = await httpClient.GetAsync(uriBase + id.ToString()); string serialized = await response.Content.ReadAsStringAsync(); PersonagemViewModel p = await Task.Run(() => JsonConvert.DeserializeObject <PersonagemViewModel>(serialized)); return(View(p)); }
public async Task <ActionResult> EditAsync(PersonagemViewModel p) { HttpClient httpClient = new HttpClient(); var content = new StringContent(JsonConvert.SerializeObject(p)); content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); HttpResponseMessage response = await httpClient.PutAsync(uriBase, content); TempData["Mensagem"] = string.Format("Personagem {0}, classe {1} atualizado com sucesso!", p.Nome, p.Classe); return(RedirectToAction("Index")); }
public async Task <ActionResult> CreateAsync(PersonagemViewModel p) { HttpClient httpClient = new HttpClient(); var content = new StringContent(JsonConvert.SerializeObject(p)); content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); HttpResponseMessage response = await httpClient.PostAsync(uriBase, content); string serialized = await response.Content.ReadAsStringAsync(); await Task.Run(() => JsonConvert.DeserializeObject <List <PersonagemViewModel> >(serialized)); TempData["Mensagem"] = string.Format("Personagem {0} Salvo com sucesso!", p.Nome); return(RedirectToAction("Index")); }
void IBaseServicosApp <PersonagemViewModel> .Inserir(PersonagemViewModel viewModel) { var personagem = _mapper.Map <Personagem>(viewModel); _servicos.Inserir(personagem); }