/// <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); } }
/// <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); } }