public async Task <IActionResult> AlterarRelacionamento(ListaAmigos amigos) { UsuarioADE usuario = await ObterUsuarioLogado(); await _servicoListaAmigos.AtualizarAsync(usuario, amigos); return(RedirectToAction("Index", "Perfis", new { area = "Principal" })); }
public async Task <IActionResult> CadastrarRelacionamento(string idUsuario, string view = "Index") { UsuarioADE usuario = await ObterUsuarioLogado(); ListaAmigos amigos = new ListaAmigos(usuario.Id, idUsuario, EnumTipoRelacionamento.Amigo); await _servicoListaAmigos.CadastrarAsync(amigos); return(RedirectToAction(view, "Perfis", new { area = "Principal" })); }
public async Task <IActionResult> AlterarRelacionamentoJson(ListaAmigos amigos) { UsuarioADE usuario = await ObterUsuarioLogado(); try { await _servicoListaAmigos.AtualizarAsync(usuario, amigos); return(Json(new { Sucesso = "Relacionamento alterado" })); } catch (Exception ex) { await LogError("Erro ao alterar relacionamento", "Alterar relacionamento", EnumTipoLog.ListaPerfis); return(Json(new { Erro = "Erro ao alterar relacionamento" })); } }
public async Task <IActionResult> CadastrarRelacionamentoJson(string idUsuario) { try { UsuarioADE usuario = await ObterUsuarioLogado(); ListaAmigos amigos = new ListaAmigos(usuario.Id, idUsuario, EnumTipoRelacionamento.Amigo); await _servicoListaAmigos.CadastrarAsync(amigos); return(Json(new { Sucesso = "Contato cadastrado" })); } catch (Exception ex) { await LogError("Erro ao cadastrar contato", "Cadastrar relacionamento", EnumTipoLog.ListaPerfis); return(Json(new { Erro = "Erro ao cadastrar contato" })); } }
public async Task <IActionResult> AdicionarOuRemoverRelacionamentoJson(string idUsuario) { UsuarioADE usuario = await ObterUsuarioLogado(); UsuarioADE amigo = await ObterUsuarioPorEmailOuId(idUsuario); ListaAmigos amizade = new ListaAmigos(); try { try { amizade = await _servicoListaAmigos.FiltrarUltimo(x => x.IdUsuario == usuario.Id && x.IdAmigo == idUsuario); bool Amigo = amizade != null; if (Amigo) { await _servicoListaAmigos.RemoverAsync(usuario, amizade); return(Json(new { Sucesso = "Relacionamento removido com sucesso", Tipo = "remocao" })); } else { ListaAmigos amigos = new ListaAmigos(usuario.Id, idUsuario, EnumTipoRelacionamento.Amigo); await _servicoListaAmigos.CadastrarAsync(amigos); return(Json(new { Sucesso = "Contato cadastrado", Tipo = "adicao" })); } } catch (Exception) { ListaAmigos amigos = new ListaAmigos(usuario.Id, idUsuario, EnumTipoRelacionamento.Amigo); await _servicoListaAmigos.CadastrarAsync(amigos); return(Json(new { Sucesso = "Contato cadastrado", Tipo = "adicao" })); } } catch (Exception ex) { await LogError("Erro ao cadastrar contato", "Cadastrar relacionamento", EnumTipoLog.ListaPerfis); return(Json(new { Erro = "Erro ao cadastrar contato" })); } }
public async Task <IActionResult> RemoverRelacionamento(string idUsuario, string view = "Index") { UsuarioADE usuario = await ObterUsuarioLogado(); UsuarioADE amigo = await ObterUsuarioPorEmailOuId(idUsuario); ListaAmigos amizade = new ListaAmigos(); try { amizade = await _servicoListaAmigos.BuscarUm(x => x.IdUsuario == usuario.Id && x.IdAmigo == amigo.Id); await _servicoListaAmigos.RemoverAsync(usuario, amizade); } catch (Exception ex) { await LogError("Erro ao Remover contato", "Remover relacionamento", EnumTipoLog.ListaPerfis); return(Json(new { Erro = "Erro ao Remover contato" })); } return(RedirectToAction(view, "Perfis", new { area = "Principal" })); }
public ListaAmigos Get(Int64 id) { #region clases/variaveis /// <summary> /// Variaveis e classes utilizadas /// </summary> string msg; Crypt vlToken = new Crypt(); Dictionary <double, Amigos> lisFriendOrder = new Dictionary <double, Amigos>(); BaseDados dbData = new BaseDados(); RegraNegocio rn = new RegraNegocio(); Amigos friendTime = null; Amigos friend = null; #endregion #region retornoGet /// <summary> ///Identifica e guarda o amigo que esta fazendo a solicitação /// </summary> try { friendTime = dbData.Busca(id); } catch { // Registrar uma linha de erro no log caso falhe o acesso pelo Token. msg = string.Empty; msg = "Token invalid: " + id; Log(msg, "CalculoHistoricoLog"); throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Unauthorized)); } /// <summary> /// Essa rotina ira calcular a distancia de todos amigos diferente do amigo que solicitou a busca /// </summary> int tot = dbData.totalDados(); int i = 1; while (i <= tot) { try { friend = dbData.Busca2(i); } catch { msg = string.Empty; msg = "Error at find a friend"; Log(msg, "CalculoHistoricoLog"); throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Unauthorized)); } if (friend.Token != vlToken.EncDec(id.ToString(), true).ToString()) { double distancia = rn.DistanciaAmigos(friendTime.latitude, friendTime.longitude, friend.latitude, friend.longitude); lisFriendOrder.Add(distancia, friend); msg = string.Empty; msg = "Calculo de distancia entro o " + friendTime.Name + " com o " + friend.Name + ", total of : " + distancia.ToString() + " KM"; Log(msg, "CalculoHistoricoLog"); } i++; } /// <summary> /// Lista que retona apenas os 3 amigos mais proximos, baseado no calculo de distancia. /// </summary> int c = 1; ListaAmigos liFriend = new ListaAmigos(); liFriend.AfProximos = "Your next friends"; foreach (KeyValuePair <double, Amigos> liRemove in lisFriendOrder.OrderBy(key => key.Key)) { if (c > 3) { lisFriendOrder.Remove(liRemove.Key); } else { liFriend.Amigos.Add(liRemove.Value); } c++; } return(liFriend); #endregion }