示例#1
0
        /// <summary>
        /// Envia um convite de amizade do usuário userModel para o usuário com ID da guid recebida
        /// </summary>
        /// <param name="userModel">Usuário logado (usuário que enviou o convite)</param>
        /// <param name="friendID">ID do usuário a receber solicitação de amizade</param>
        /// <param name="error">Controle de erro</param>
        /// <returns>True se enviou solicitação com sucesso ou false</returns>
        public static bool InviteFriend(UserModel userModel, Guid friendID, out ErrorEnum error)
        {
            //Verifica se convite já não foi enviado
            DBConfigurations database = new DBConfigurations();

            error = ErrorEnum.NoErrors;
            try
            {
                //Se convite não existir, envia
                if (!FriendshipManager.AreFriends(userModel.ID, friendID))
                {
                    var newFriendship = new Friendships
                    {
                        User_A   = userModel.ID,
                        User_B   = friendID,
                        Approved = false
                    };
                    database.Friendships.Add(newFriendship);
                    database.SaveChanges();
                    return(true);
                }
                //Se existir, retorna falso
                else
                {
                    error = ErrorEnum.ResendSolicitation;
                    return(false);
                }
            }
            catch (Exception)
            {
                error = ErrorEnum.ExceptionError;
                return(false);
            }
        }
示例#2
0
        /// <summary>
        /// Efetua a pesquisa de possíveis conexões do usuário a partir dos filtros recebidos
        /// </summary>
        /// <param name="model">Model do usuário logado</param>
        /// <param name="city">Cidade passada como parâmetro na pesquisa</param>
        /// <param name="years">Idade passada como parâmetro na pesquisa</param>
        /// <param name="name">Nome passado como parâmetro na pesquisa</param>
        /// <param name="email">Email passado como parâmetro na pesquisa</param>
        /// <param name="error">Variável de controle</param>
        /// <returns>Lista com as 100 primeiras opções de amizade.</returns>
        public static List <UserModel> RetrieveNoFriends(UserModel model, string city, int?years, string name, string email, out ErrorEnum error)
        {
            var listRelatedFriends = new List <Users>();

            error = ErrorEnum.NoErrors;

            try
            {
                if ((name.Trim().Length > 0) && (email.Trim().Length > 0))
                {
                    listRelatedFriends = FriendshipManager.SearchNameEmail(name, email);
                }

                else if ((name.Trim().Length > 0))
                {
                    listRelatedFriends = FriendshipManager.SearchName(name);
                }

                else if ((email.Trim().Length > 0))
                {
                    listRelatedFriends = FriendshipManager.SearchEmail(email);
                }

                else
                {
                    listRelatedFriends = FriendshipManager.SearchNoFilters(city, years, model.City, model.Birth.Year);
                }

                //Remove ele mesmo da lista
                bool containsItem = listRelatedFriends.Any(item => item.ID == model.ID);
                if (containsItem)
                {
                    listRelatedFriends.Remove(
                        (from friend in listRelatedFriends
                         where friend.ID == model.ID
                         select friend).First()
                        );
                }

                //Remove os que já são amigos da lista
                var listAux = new List <Users>();
                foreach (var friend in listRelatedFriends)
                {
                    if (!FriendshipManager.AreFriends(model.ID, friend.ID))
                    {
                        listAux.Add(friend);
                    }
                }

                return(Conversor.ListUserToModel(listAux));
            }
            catch (Exception)
            {
                error = ErrorEnum.ExceptionError;
                return(null);
            }
        }