Пример #1
0
        public async Task <IActionResult> AlterarRelacionamento(ListaAmigos amigos)
        {
            UsuarioADE usuario = await ObterUsuarioLogado();

            await _servicoListaAmigos.AtualizarAsync(usuario, amigos);

            return(RedirectToAction("Index", "Perfis", new { area = "Principal" }));
        }
Пример #2
0
        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" }));
        }
Пример #3
0
        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" }));
            }
        }
Пример #4
0
        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" }));
            }
        }
Пример #5
0
        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" }));
            }
        }
Пример #6
0
        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
        }