Exemple #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);
            }
        }
Exemple #2
0
        /// <summary>
        /// Retorna uma lista de caronas dos amigos do usuário
        /// </summary>
        /// <param name="userID">Usuário a ter as caronas de amigos pesquisada</param>
        /// <param name="from">Filtro de pesquisa - Data inicial</param>
        /// <param name="to">Filtro de pesquisa - Data final</param>
        /// <returns>Lista com caronas para o periodo selecionado</returns>
        public static List <RidesModel> RetrieveFriendsRides(Guid userID, DateTime?from, DateTime?to)
        {
            var listFriends      = FriendshipManager.RetrieveFriendsID(userID);
            var ridesFromFriends = RidesManager.RetrieveRidesFromList(listFriends, from, to);

            return(ridesFromFriends);
        }
Exemple #3
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);
            }
        }
Exemple #4
0
        /// <summary>
        /// Retorna uma lista com todos os amigos de determinado usuário
        /// </summary>
        /// <param name="userID">ID do usuário a ser efetuada a pesquisa</param>
        /// <returns>Lista com todos os amigos do usuário</returns>
        public static List <UserModel> RetrieveFriends(Guid userID)
        {
            DBConfigurations database = new DBConfigurations();
            var friendships           = FriendshipManager.RetrieveFriendsID(userID);

            var listFriends = (from user in database.Users where friendships.Contains(user.ID) select user).ToList();

            var listFriendsModel = new List <UserModel>();

            foreach (var friend in listFriends)
            {
                listFriendsModel.Add(Conversor.UserDTOToModel(friend));
            }
            return(listFriendsModel);
        }
Exemple #5
0
        /// <summary>
        /// Retorna um dictionary contendo como informação uma lista de amigos e se a amizade existe ou o convite de amizade não foi
        /// confirmado
        /// </summary>
        /// <param name="userID">ID do usuário a ter a pesquisa efetuada</param>
        /// <returns>Dictionary com relacionamentos</returns>
        public static Dictionary <UserModel, bool> RetrieveFriendsRelations(Guid userID)
        {
            DBConfigurations database = new DBConfigurations();
            var friendships           = (from friend in database.Friendships
                                         where (friend.User_A == userID)
                                         select friend.User_B).ToList();

            var listFriends = (from user in database.Users where friendships.Contains(user.ID) select user).ToList();

            var dictionarymodel = new Dictionary <UserModel, bool>();

            foreach (var friend in listFriends)
            {
                dictionarymodel.Add(Conversor.UserDTOToModel(friend), FriendshipManager.AreFriendsAccepted(userID, friend.ID));
            }
            return(dictionarymodel);
        }
Exemple #6
0
        /// <summary>
        /// Realiza consulta para trazer os dados do usuário no banco de dados e armazenar o resultado em uma
        /// variável de seção.
        /// </summary>
        /// <param name="userID">ID do usuário logado (Guid)</param>
        /// <param name="error">Enum de retorno de erros</param>
        /// <returns></returns>
        public static UserModel RetrieveUser(Guid userID, out ErrorEnum error)
        {
            DBConfigurations database = new DBConfigurations();

            error = ErrorEnum.NoErrors;

            try
            {
                var userDTO   = (from user in database.Users where user.ID == userID select user).First();
                var userModel = Conversor.UserDTOToModel(userDTO);

                #region Messages

                var messagesDTO = UserManager.GetMessages(userModel.ID);
                userModel.MessagesFromMe = new List <Messages>();
                userModel.MessagesToMe   = new List <Messages>();

                foreach (var message in messagesDTO)
                {
                    if (message.SenderID == userModel.ID)
                    {
                        userModel.MessagesFromMe.Add(message);
                    }
                    else
                    {
                        userModel.MessagesToMe.Add(message);
                    }
                }
                #endregion

                #region Rides

                userModel.DonorRides    = RidesManager.GetDonorRides(userModel.ID);
                userModel.ReceiverRides = RidesManager.GetReceiverRides(userModel.ID);
                userModel.OpenRequests  = RidesManager.GetRidesRequests(userModel.ID);

                #endregion

                #region BankAccount

                var userBankAccount = UserBankManager.GetUserBankAccount(userDTO.UserBankID);
                userModel.BankAccount.Account = userBankAccount.Account;
                userModel.BankAccount.Agency  = userBankAccount.Agency;
                userModel.BankAccount.BankID  = userBankAccount.BankID;
                userModel.BankAccount.ID      = userBankAccount.ID;

                #endregion

                #region Image

                userModel.FileContentResult = ImagesManager.RetrieveImage(userModel.ID);

                #endregion

                #region Friends Requests

                userModel.FriendsRequests = FriendshipManager.GetFriendsRequests(userModel.ID);

                #endregion

                #region ListNotifications

                userModel.ListNotifications = NotificationsManager.GetUserNotifications(userModel.ID);
                userModel.RidesRequests     = RidesRequestManager.GetAllRequestsByDriver(userModel.ID);

                #endregion

                return(userModel);
            }
            catch (Exception)
            {
                error = ErrorEnum.ExceptionError;
                return(null);
            }
        }